Subdivision Surfaces

Loop Subdivision

Algorithm Overview

The Subdivision Algorithm

The position of the even vertices is obtained as follows for regular vertices, left image and for irregular vertices, right image:

The weighting coefficient \(\beta\) for smoothing irregular vertices is given by: \[ \begin{align} &\text{Loop's formula}\\ &\beta = \frac{1}{n}\left(\frac{5}{8}-(\frac{3}{8}+\frac{1}{4}\cos \frac{2\pi}{n})^2 \right) \end{align} \] or \[ \begin{align} &\text{Warren's formula}\\ &\beta = \begin{cases} \frac{3}{8n} & \quad n > 3\\ \frac{5}{16} & \quad n = 3 \end{cases} \end{align} \]

The image below explains the smoothing step for odd vertices.

Smoothing boundary even and odd vertices works as follows for odd vertices (left) and even vertices (right):

Implementation Details

Loop subdivison is commonly performed in two steps:

After the topological subdivision the odd vertices have an initial position. Odd vertices are obtain by splitting an edge at the midpoint, that is the initial position of an edge vertex is the average of the position of the endpoints of the edge. This initial position is used to smooth odd vertices for convenience as follows:



The JavaScript Code