Surface curvature is used in a number of areas in computer graphics including mesh simplification, surface modeling and denoising, feature detection, and non-photorealistic line drawing techniques. Most applications must estimate surface curvature, due to the use of discrete models such as triangular meshes. Until recently, curvature estimation has been limited to CPU algorithms, forcing object geometry to reside in main memory. More computational work is being done directly on the GPU, and it is increasingly common for object geometry to only exist in GPU memory. Examples include vertex skinned animations, isosurfaces from GPU-based surface reconstruction algorithms, or triangular meshes generated by hardware tessellation units.;All of these types of geometry can be large in size and transferring the data to the CPU is cost prohibitive in interactive applications, especially if the mesh changes every frame. Thus, for static models, CPU algorithms for curvature estimation are a reasonable choice, but for models where the object geometry only resides on the GPU, CPU algorithms limit performance. I introduce a GPU algorithm for estimating curvature in real-time on arbitrary triangular meshes residing in GPU memory. I test my algorithm in a line drawing system with a vertex-skinned animation system and a GPU-based isosurface extraction system.
展开▼