Game Development Reference
In-Depth Information
Figure 15.6 Ten-vertex stencil for new vertex assuming end-points have valence six.
calculate the location of the added vertex based solely on this
extraordinary vertex. This seems intuitively strange, but the result is very
effective. One of the authors of the original paper, Denis Zorin, justifies the
choice of weighting on his website at www.mrl.nyu.edu/dzorin. If both end-
points are extraordinary, then we calculate the location of the added
vertex as the average of the position calculated using each extraordinary
vertex.
The scheme used is:
Valence 3:
v : 4 ;
e 0 :
12 ;
5
e 1 :- 12 ;
e 2 :- 12
Valence 4:
v : 4 ;
e 0 : 8 ;
e 1 : 0, e 2 :- 8 ;
e 3 : 0
1
4 + cos(2
i / N )+ 2 cos(4
i / N )
Valence 5 and 7 or more:
v : 4 ;
e i :
N
where N is the valence.
Border vertices are handled differently from other vertices, taking all the
weighting from adjacent border points. The new edge vertex is calculated
using
V =
16 a +
9
16 b -
9
16 c -
1
16 d
1
Using this technique for border vertices ensures that the mesh doesn't
pull away from any boundary edges.