Patch-Based Recursive Catmull-Clark Subdivision on the GPU

Daniel Mlakar

Supervisor(s): Markus Steinberger

TU Graz

Abstract: Catmull-Clark subdivision is an algorithm that takes a coarse mesh of a 3D model as input and outputs a smooth mesh. It has many different applications from level of detail rendering to feature film production. Starting from the coarse control mesh a series of increasingly smooth meshes is produced in an iterative way until some stopping criterion is met. Each level of subdivision depends on the previous level or, to be more precise, the positions of the new vertices are determined by its local neighborhood in the previous mesh. This property leads to patch-based approaches. In most applications Catmull-Clark subdivision is a preprocessing step and therefore has to be fast. In this work we present a parallel patch-based approach which utilizes the GPU. Patch based approaches have the advantage of enabling good possibilities for parallelization such as subdividing multiple patches to different levels at the same time. We also do not have to do preprocessing steps as some other approaches do. We use a dynamic scheduling framework which enables us to write different procedures to subdivide different types of patches. Therefore we can optimize each procedure's code by taking away the generality which would be needed if patches with different topology are subdivided by the same procedure. Good performance is reached by using matrix multiplication for the subdivision of regular quad-patches.
Keywords: Geometry Processing, Graphics Hardware, Real-time Graphics
Full text:
Year: 2017