Sign in with
Sign up | Sign in

Tessellation - Needed Or Preemptive?

R600: Finally DX10 Hardware from ATI
By

The Concept

Natalya Tatarchuk from ATI's 3D applications research lab gave several addresses during the Tunis event. One of these sessions was strictly on tessellation. I wondered then how it could be possible to devote an entire hour and a half to a presentation on making more polygons.

Source: "Subdivision for Modeling and Animation," Zorin and Schröder, 2000 http://www.multires.caltech.edu/pubs/sig00notes.pdf (Warning: This is a 27 MB download)

The concept of tessellation involves the breaking down of polygon meshes into higher poly meshes. From the image above, taking a simple polygon mesh and breaking each polygon down into smaller units allows the surface of the object/model to become smoother and lifelike. So what is the cost of amplifying a model's surface via tessellation instead of just rendering the high-poly mesh? Well, that is what kept me in my seat for the rest of the presentation. The following example used a frame from "Shrek."

Source: ATI [Yee04, PDI/Dreamworks]

The differences between trying to render "Shrek" using a high poly and a low poly with tessellation and displacement mapping are startling! While the movie industry has plenty of time on their hands to render one frame, those of us in the gaming arena want at least 60 of them in one second or less. The following chart shows the differences between typical game models and the CG animated characters we see in movies.

Pre-Frame Shrek Typical Game Hollywood vs. your PC
Content Size 100 M polygons 200-500 K polygons 200x to 500x more
Animation Quality 350 bones skinned on the CPU 32-40 bones skinned on the GPU Up to 10x more
Rendering Time 8,000 seconds a frame on a P4 0.015 seconds or less per frame 533,333x more

The two scenarios are amazingly different. A lot of research has looked into better methods for subdividing polygons. Do a search for the following items: N-Patches, Catmull-Clark, B-Spline and NURBs. The fact that a lot of the work required in a high-poly mesh can be done in a lot less time utilizing the power of a GPU is amazing. The only way tessellation could be done with DX9 hardware was to pass it over and over through the pipeline or just cram a high-poly mesh through it.

React To This Article