Rendering Point Clouds with Compute Shaders and Vertex Order Optimization

Kavli Affiliate: Michael Wimmer

| First 5 Authors: Markus Schütz, Bernhard Kerbl, Michael Wimmer, ,

| Summary:

While commodity GPUs provide a continuously growing range of features and
sophisticated methods for accelerating compute jobs, many state-of-the-art
solutions for point cloud rendering still rely on the provided point primitives
(GL_POINTS, POINTLIST, …) of graphics APIs for image synthesis. In this
paper, we present several compute-based point cloud rendering approaches that
outperform the hardware pipeline by up to an order of magnitude and achieve
significantly better frame times than previous compute-based methods. Beyond
basic closest-point rendering, we also introduce a fast, high-quality variant
to reduce aliasing. We present and evaluate several variants of our proposed
methods with different flavors of optimization, in order to ensure their
applicability and achieve optimal performance on a range of platforms and
architectures with varying support for novel GPU hardware features. During our
experiments, the observed peak performance was reached rendering 796 million
points (12.7GB) at rates of 62 to 64 frames per second (50 billion points per
second, 802GB/s) on an RTX 3090 without the use of level-of-detail structures.
We further introduce an optimized vertex order for point clouds to boost the
efficiency of GL_POINTS by a factor of 5x in cases where hardware rendering is
compulsory. We compare different orderings and show that Morton sorted buffers
are faster for some viewpoints, while shuffled vertex buffers are faster in
others. In contrast, combining both approaches by first sorting according to
Morton-code and shuffling the resulting sequence in batches of 128 points leads
to a vertex buffer layout with high rendering performance and low sensitivity
to viewpoint changes.

| Search Query: ArXiv Query: search_query=au:”Michael Wimmer”&id_list=&start=0&max_results=10

Read More

Leave a Reply