Suggestive Contours with Geometry Shader Based on Suggestive
Suggestive Contours with Geometry Shader Based on Suggestive Contours for Conveying Shape SIGGRAPH 2003 Sungbae Kim Master Student College of Computing Georgia Tech
Conveying shape with lines Contours and Suggesstive Contours [De. Carlo et al. 2003]
Related work Contour (also called silhouette) Rusinkiewicz, SIGGRAPH 2005 Course note Crease Ridges and valleys (also called crest)
Suggestive Contours z Contours have shape cue z Contours in nearby viewpoints also have shape cue Suggestive Contours z Contours + Suggestive Contours q : contour p : suggestive contour Should appear suddenly [De. Carlo et al. 2003]
How to find contours z. Draw lines where N(P)∙V(P) = 0
How to find SC z. Contours in nearby viewpoints local minima n∙v Kr = 0 && Dw. Kr > 0 [De. Carlo et al. 2003]
How to find contours in mesh u. Compute Per vertex u. Draw zero crossing Rusinkiewicz, SIGGRAPH 2005 Course note
How to compute Kr=0 in mesh Primary direction 1 u. K 1, K 2 can be pre-computed per vertex u. Compute Per vertex u. Draw zero crossing Kr > 0 w Primary direction 2 Kr < 0
How to compute Dw. Kr > 0 in mesh Rusinkiewicz, SIGGRAPH 2005 Course note Primary direction 1 : e 1 u. P, Q, S, T can be pre-computed per vertex u. Compute Per vertex u. Interpolation Kr > 0 v Dw. Kr > 0 w u Kr=0 Primary direction 2 : e 2 Kr < 0
Implementation CPU - Intel Core 2 Duo 2. 0 GHz, RAM - 2 GB, VIDEO Card – NVIDIA Quadro FX 570 M
Implementation Challenges z. Calculation values from mesh y. Primary directions y. Primary curvatures y. Derivatives of curvatures (P, Q, R, S) Use Tri. Mesh library z. Cg is very easy z. Geometry shader
Geometry Shader z z Operation Per Primitives (line, triangle, line with adjacency, triangle with adjacency, etc. ) Generating new primitives such as line, triangle Few references Several examples from NVIDIA triangle with adjacency Draw edges between front and back face My motivation Example from NVIDIA Open. GL SDK 10
Using GPU z. Pre-compute curvatures, dcurvatures in CPU when loading mesh z. View-dependent calculation and line generation in Vertex & Geometry shader y. Use texture coordinates as input arguments z. Too many vertices, normals, faces, texture coordinates y. Use buffer object
Remove hidden lines z Using z-buf z 2 -pass rendering y 1 st pass : Setting depth values by Rendering mesh y 2 nd pass : line drawing
Results vertices : 48484 triangles : 96964 51 fps Horse
Results vertices : 72027 triangles : 144046 34 fps Bunny
Results vertices : 262909 triangles : 525814 10 fps Lucy
Results vertices : 237018 triangles : 474048 3. 5 fps Angel
Results vertices : 437645 triangles : 871414 6 fps Dragon
Results vertices : 543652 triangles : 1087116 4 fps Happy Buddha
- Slides: 20