Subdivision for Line Drawings Bert Freudenberg Otto-von-Guericke-Universit¨ at Magdeburg
Overview Overview 1. Introduction 2. Subdivision 3. Silhouette Propagation 4. Drawing by Subdivision 5. Results 6. Conclusion 1
Introduction Introduction • Subdivision surfaces – general surfaces representation
Introduction Introduction • Subdivision surfaces – general surfaces representation • Non-photorealistic rendering – here: line drawings
Introduction Introduction • Subdivision surfaces – general surfaces representation • Non-photorealistic rendering – here: line drawings • no explicit connection yet 2
Subdivision Subdivision • Geometry representation
Subdivision Subdivision • Geometry representation • Interpolating or approximating
Subdivision Subdivision • Geometry representation • Interpolating or approximating • Arbitrary mesh 3
Subdivision: Modified Butterfly Subdivision: Modified Butterfly
Subdivision: Modified Butterfly Subdivision: Modified Butterfly 4
Subdivision: Control mesh Subdivision: Control mesh 5
Subdivision: Subdivided once Subdivision: Subdivided once 6
Subdivision: Subdivided twice Subdivision: Subdivided twice 7
Subdivision: Subdivided three times Subdivision: Subdivided three times 8
Subdivision: Line drawings Subdivision: Line drawings • Silhouettes – border from a specific viewpoint – adjacent to front-facing and back-facing polygon
Subdivision: Line drawings Subdivision: Line drawings • Silhouettes – border from a specific viewpoint – adjacent to front-facing and back-facing polygon • Creases – sharp features on surface – inherent to subdivision model 9
Subdivision: Level 0 Subdivision: Level 0 10
Subdivision: Level 1 Subdivision: Level 1 11
Subdivision: Level 2 Subdivision: Level 2 12
Subdivision: Level 3 Subdivision: Level 3 13
Subdivision: Line drawings Subdivision: Line drawings Problem: triangle count quadruples in each refinement step • Rapid determination of silhouettes • Fast drawing of silhouettes and creases 14
Silhouette Propagation Silhouette Propagation • New method for determining silhouettes
Silhouette Propagation Silhouette Propagation • New method for determining silhouettes • Idea: propagate silhouettes while refining the mesh 15
Silhouette Propagation: silhouette triangles Silhouette Propagation: silhouette triangles 16
Silhouette Propagation: triangles refined Silhouette Propagation: triangles refined 17
Silhouette Propagation: refined again Silhouette Propagation: refined again 18
Silhouette Propagation Silhouette Propagation • New method for determining silhouettes • Idea: propagate silhouettes while refining the mesh
Silhouette Propagation Silhouette Propagation • New method for determining silhouettes • Idea: propagate silhouettes while refining the mesh – silhouette band
Silhouette Propagation Silhouette Propagation • New method for determining silhouettes • Idea: propagate silhouettes while refining the mesh – silhouette band – update while subdividing 19
Silhouette Propagation: before subdivision Silhouette Propagation: before subdivision 20
Silhouette Propagation: subdivided Silhouette Propagation: subdivided 21
Silhouette Propagation: new silhouette Silhouette Propagation: new silhouette 22
Silhouette Propagation Silhouette Propagation • New method for determining silhouettes • Idea: propagate silhouettes while refining the mesh – silhouette band – update while subdividing
Silhouette Propagation Silhouette Propagation • New method for determining silhouettes • Idea: propagate silhouettes while refining the mesh – silhouette band – update while subdividing • Problem: subdivision itself is expensive
Silhouette Propagation Silhouette Propagation • New method for determining silhouettes • Idea: propagate silhouettes while refining the mesh – silhouette band – update while subdividing • Problem: subdivision itself is expensive • Applications: – dynamic subdivision – off-line rendering 23
Drawing by Subdivision Drawing by Subdivision • New method for accelerating drawing • Idea: subdivide in 2D instead of 3D 24
Drawing by Subdivision: Mesh Drawing by Subdivision: Mesh 25
Drawing by Subdivision: One 2D subdivision Drawing by Subdivision: One 2D subdivision 26
Drawing by Subdivision: No 2D subdivision Drawing by Subdivision: No 2D subdivision 27
Drawing by Subdivision: Three 2D subdivisions Drawing by Subdivision: Three 2D subdivisions 28
Drawing by Subdivision Drawing by Subdivision • New method for accelerating drawing • Idea: subdivide in 2D instead of 3D
Drawing by Subdivision Drawing by Subdivision • New method for accelerating drawing • Idea: subdivide in 2D instead of 3D – collect edges
Drawing by Subdivision Drawing by Subdivision • New method for accelerating drawing • Idea: subdivide in 2D instead of 3D – collect edges – make chains
Drawing by Subdivision Drawing by Subdivision • New method for accelerating drawing • Idea: subdivide in 2D instead of 3D – collect edges – make chains – sudivide chains
Drawing by Subdivision Drawing by Subdivision • New method for accelerating drawing • Idea: subdivide in 2D instead of 3D – collect edges – make chains – sudivide chains • Problem: accuracy
Drawing by Subdivision Drawing by Subdivision • New method for accelerating drawing • Idea: subdivide in 2D instead of 3D – collect edges – make chains – sudivide chains • Problem: accuracy • Solution: perform a few 3D refinement steps first 29
Drawing by Subdivision: No 3D subdivision Drawing by Subdivision: No 3D subdivision 30
Drawing by Subdivision: One 3D subdivision Drawing by Subdivision: One 3D subdivision 31
Drawing by Subdivision: Two 3D subdivisions Drawing by Subdivision: Two 3D subdivisions 32
Results Results • Implemented in Squeak
Results Results • Implemented in Squeak – open source Smalltalk system
Results Results • Implemented in Squeak – open source Smalltalk system – omni-platform, multi-media
Results Results • Implemented in Squeak – open source Smalltalk system – omni-platform, multi-media – interpreted (JIT coming)
Results Results • Implemented in Squeak – open source Smalltalk system – omni-platform, multi-media – interpreted (JIT coming) • factor 2–4 speedup for silhouette propagation over brute-force
Results Results • Implemented in Squeak – open source Smalltalk system – omni-platform, multi-media – interpreted (JIT coming) • factor 2–4 speedup for silhouette propagation over brute-force • factor 10 speedup for 2D over 3D subdivision 33
Results Results 34
Results Results 35
Conclusion Conclusion • Subdivision is good for NPR
Conclusion Conclusion • Subdivision is good for NPR • Exploit features of surface representations ⇒ silhouette propagation
Conclusion Conclusion • Subdivision is good for NPR • Exploit features of surface representations ⇒ silhouette propagation • Simplify where possible ⇒ 2D subdivision for drawing 36
Extensions Extensions • hidden line removal ⇒ visibility propagation
Extensions Extensions • hidden line removal ⇒ visibility propagation • overshooting when drawing ⇒ chordal parametrization of curves 37
The End The End Questions? 38
Recommend
More recommend