Griffin, Wesley, Yu Wang, David Berrios, and Marc Olano. 2012.
Real-Time GPU Surface Curvature Estimation on Deforming Meshes and Volumetric Datasets.
Visualization and Computer Graphics, IEEE Transactions on 18 (10): 1603-1613.
Manuscript received 21 Apr. 2011; revised 20 Nov. 2011; accepted 22 Mar. 2012; published online 10 Apr. 2012.
Code and Data Sets
- CUDA Code
- HLSL Code
- Lee Perry-Smith: 3D Head Scan
- Doug James and Christopher Twigg: Skinning Mesh Animations
- Stefan Rottger: The Volume Library
Surface curvature is used in a number of areas in computer graphics, including
texture synthesis and shape representation, mesh simplification, surface
modeling, and non-photorealistic line drawing. Most real-time applications must
estimate curvature on a triangular mesh. This estimation has been limited to
CPU algorithms, forcing object geometry to reside in main memory. However, as
more computational work is done directly on the GPU, it is increasingly common
for object geometry to exist only in GPU memory. Examples include vertex
skinned animations and isosurfaces from GPU-based surface reconstruction
algorithms. For static models, curvature can be pre-computed and CPU algorithms
are a reasonable choice. For deforming models where the geometry only resides
on the GPU, transferring the deformed mesh back to the CPU limits performance.
We introduce a GPU algorithm for estimating curvature in real-time on arbitrary
triangular meshes. We demonstrate our algorithm with curvature-based NPR
feature lines and a curvature-based approximation for ambient occlusion. We
show curvature computation on volumetric datasets with a GPU isosurface
extraction algorithm and vertex-skinned animations. We present a graphics
pipeline and CUDA implementation. Our curvature estimation is up to ~18x faster
than a multi-threaded CPU benchmark.