Previous | Next --- Slide 66 of 70
Back to Lecture Thumbnails
diegom

This was answered in lecture but yeah I agree that this is an explicit representation. Even though not as strongly "explicit" as something like a point cloud, after choosing an averaging rule for the vertices, you have a deterministic procedure to compute points.

ceviri

Isn't this pretty computationally intensive?

Sybil

Don't you also have to store all the new points on each iteration too? There could be some large storage overhead

yuanj1

If represented in Big O, how expensive will the computation be?

Bananya

And I feel the subdivision process cannot be paralleled too, would it be another efficiency concern?

keenan

Great questions. A few comments (in no particular order):

  • Usually the subdivision control cage is quite coarse (10s-100s of polygons), so even if you apply no fancy techniques or acceleration, applying a few rounds of subdivision gives you something that is not much bigger than an ordinary mesh (10ks-100ks of polygons).
  • For real-time graphics, there have been a bunch of techniques for (very closely) approximating the limit subdivision surface by various kinds of spline patches. For instance, in regular regions of a Catmull-Clark mesh (no irregular vertices), the limit surface is just a standard bi-cubic Bezier patch which is trivial to evaluate. This paper from folks at Microsoft and NVIDIA gives a practical scheme for real-time rendering of more general subdivision surfaces.
  • For high-quality rendering, one strategy is to subdivide until polygons are smaller than a pixel. This is the basic idea behind the Reyes rendering algorithm used by Pixar's Academy Award-winning Renderman software.
  • Subdivision is actually quite easy to parallelize, since each point on the limit surface depends only on a small "stencil" of vertices from the original mesh. For instance, in a regular region, the limit Bezier patch depends only on 4x4 neighborhoods of vertices.
  • In particular, Pixar provides an open source library for fast evaluation of subdivision surfaces, including GPU acceleration, called OpenSubdiv. This would be a great starting point if you ever need to develop "real" applications that use sub-D's.
  • Amazingly enough, you can exactly evaluate Catmull-Clark subdivision surfaces at arbitrary parameter values without explicitly constructing the subdivided mesh. See this paper.