Title: Subdivision Surface
1Subdivision Surface
- Jun Murakawa
- 830 Advanced Topic presentation
- May 12, 2005
2Outline
- Motivation
- What is subdivision surface?
- Subdivision schemes
- Loop scheme
- Implementation
- Demo
- Whats next?
- References
3Motivation (1)
- Flat polygons are efficient to render through
pipeline. - Phong shading gives smooth shaded colors on the
surface.
4Motivation (2)
However, polygon edges always exist and are
especially visible at silhouettes. We want
perfectly smooth surface!
5Motivation (3)
- Polynomial curve/surface representation
- Bézier
- B-Spline
- NURBS
Perfectly smooth surface patches, but have severe
topological restrictions. Need smooth surfaces
for arbitrary topology meshes.
6What is subdivision surface?
- Initial control mesh
- Successive refinement by subdivision
- Smooth limit surface
7Advantages of subdivision surface
- Arbitrary topology
- Scalability
- Uniform representation
- Numerical stability
- Code simplicity
8How to subdivide?
Triangle
Quadrilateral
9Subdivision schemes
10Loop scheme
- Splitting Add edge points to all edges
- Averaging Each vertex is moved with a weighted
average or neighbor vertices - Reconnect edges
111. Edge point
A new edge point
122. Averaging
For a vertex v which has n neighboring vertices
New vertex position
Where,
133. Reconnect edges
14Implementation
- Top level mesh
- Requirements
- No more than two polygons share an edge
- All polygons sharing a vertex form an open or
closed neighborhood of the vertex - Efficient adjacency query
- Representation
- Winged edge, Quad edge, Half edge
- Polygon based
15Half Edge data structure
It can answer following adjacency questions (and
more) for O(1). Which vertices are adjacent to
this vertex? Which faces use this vertex? Which
faces border this edge?
16Adjacency query example
Which vertices are adjacent to vertex 0?
vertex0 -gt edge1 edge1 -gt vertex1 edge1 -gt edge2
(pair) edge2 -gt vetex2 edge2 -gt edge3
(next) edge3 -gt vertex3
17Hierarchical meshes
- Represent all levels of meshes generated by
subdivision - Quad tree
- Array
- Enable multi-resolution modeling
18Quad tree
Level 0 initial mesh
Level 1 subdivided
Level 2 subdivided
19Demo (1)
Level 0
Level 1
20Demo (2)
Level 2
Level 1
21Whats next?
- Multi-resolution modeling
- Operations such as cut and paste
- Hardware implementation
- Directly evaluate a limit surface from the top
level mesh - Triangle/Quad mixed mesh
22References (1)
- Subdivision Surface
- Zorin, D. Shroder, P. Subdivision for Modeling
and Animation. SIGGRAPH 2000 Course Notes - http//www.mrl.nyu.edu/publications/subdiv-course2
000/ - Farin, G. Curves and surfaces for CAGD. Fifth
edition. 1999. - Loop, C. Smooth Subdivision Surfaces Based on
Triangles. Masters thesis, University of Utah,
Department of Mathematics, 1987.
23References (2)
- Lib3ds 3ds file loader
- http//lib3ds.sourceforge.net/
- Half edge data structure
- http//www.flipcode.com/articles/article_halfedge.
shtml