![]() |
Estimating elements of discrete differential geometry on the GPU Harlen Costa Batagelo Department of Industrial Automation and Computer Engineering (DCA) |
The estimation of differential geometry quantities from discrete surfaces has been widely used in geometric modeling and computer vision applications such as object segmentation, shape analysis and anisotropic mesh fairing. Besides the estimation of vertex normals and tangents, today's real-time shader techniques may require the per-vertex computation of 2nd or 3rd order differential quantities of meshes, such as the tensor of curvature and tensor of curvature derivative. In particular, principal directions and curvatures are required for shaders that simulate silhouettes of mesostructure details. In non-photorealistic rendering, the computation of “suggestive contours” may be obtained from using the tensor of curvature derivative. Also, hatching based on object-space coherence may rely on the principal directions to improve the perception of shape. The estimation of elements of discrete differential geometry may also be used in the context of interaction by direct manipulation. For instance, in a 3D painting application, the principal directions may help the user in guiding the brush on the surface. Moreover, the curvatures may be used in the evaluation of the gravity function of a surface snapping technique. We have developed a GPU-friendly technique for the estimation of 2nd and 3rd order elements of differential geometry from arbitrary triangle meshes or point clouds with 1-ring connectivity information. The technique is scaled to SM 3.0 GPUs using a general-purpose stream processing approach, and can be used to compute the tensor of curvature, principal curvatures, principal directions, Gaussian curvature, mean curvature and tensor of curvature derivative. Since it works in real-time, it can be used with meshes under non-rigid body transformations. Downloads Estimating Curvatures and their Derivatives on Meshes of Arbitrary Topology from Sampling Directions (3.17 MB, in PDF) Demonstration with source code (13.3 MB) Minimum requirements and licensing The executable requires MS DirectX 9.0c Runtime and a graphics board with support to Shader Model 3.0 and floating point render targets. The source code was created with MS Visual Studio .NET 2002 and is released under the LGPL license: Copyright (C) 2007 Harlen Costa Batagelo Screenshots
|