The surge of interest in 3D geometric data processing arises from the increasing demand for algorithms capable of analyzing and manipulating complex 3D geometry across various applications, including computational design, physical simulation, shape analysis, and virtual reality. Recent advancements in machine learning and data-driven approaches have further expanded the field's applications to areas like computer vision and AI-driven asset creation. Despite the growing influence of geometric data processing, most geometry processing algorithms are implemented using serial processes on the CPU. With more careful design and implementation, however, the latent parallelism in geometric data processing algorithms can be unlocked, enabling dramatic acceleration on highly parallel hardware such as the GPU.
In this dissertation, we argue that data structures and programming models inherited from serial/limited-parallelism processing of unstructured geometric data are not well-suited for efficient execution on the GPU. Instead, we propose the creation of tailored data structures and programming models designed explicitly for GPU hardware, aiming to achieve significant speedups in geometric data processing tasks. The rationale behind new data structures lies in the fundamental differences in the hardware architectures of GPUs and CPUs. Traditional CPU-optimized data structures often fail to exploit the massive parallelism of GPUs effectively, leading to suboptimal performance. Similarly, new programming models abstract the intricacies of low-level implementation details and GPU hardware optimization allowing users to focus on solving their computational problems efficiently.
In this dissertation, we focus primarily on the explicit representation of geometric data as unstructured triangle surface meshes. We introduce high-performance data structures tailored for both static and dynamic local triangle mesh processing on the GPU. These data structures effectively capture the locality of mesh topology, optimize memory bandwidth usage, and eliminate the need for any CPU-GPU data transfer. Our data structures support generic triangle meshes without stringent requirements on mesh quality and facilitate a wide range of static and dynamic local mesh operators commonly found in CPU-based libraries. We propose different mesh processing optimizations, e.g., confining all topology operations within the GPU's shared memory, and relying on speculative processing for dynamic update operations. We also design intuitive programming models that abstract the complexity of these data structures, providing users with a clean interface without sacrificing performance.
Furthermore, we present a comprehensive system design that integrates these data structures and programming models, enabling end-to-end execution of various geometric data processing applications on the GPU. We conduct thorough evaluations and benchmarks, comparing our system against well-optimized GPU parallel data structures and CPU-based frameworks. Our evaluations cover a range of applications including geodesic distance computation, bilateral filtering, mesh smoothing, surface tracking, isotropic remeshing, and Delaunay edge flip. In static applications, we achieve notable speedups ranging from 4-15x over existing GPU parallel mesh data structures. For dynamic applications, our system sets new standards for GPU-based dynamic mesh processing, outperforming state-of-the-art multithreaded CPU alternatives by an order of magnitude on complex applications. Our system, along with its applications, is made openly accessible as an open-source project.