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.
- Was It Worth The Wait?
- Food For Thought: Reasons For This Design
- Meet The Entire Family
- Command Processor (CP)
- Setup Engine
- Ultra-Threaded Dispatch Processor
- SIMD Arrays
- Texture Units
- Memory Read/Write Cache
- Render Back-Ends - AA To Z
- Z Buffers And HiZ
- Memory Interface And Distribution
- Tessellation - Needed Or Preemptive?
- Real World For Games
- AVIVO-A Lot Of New Hardware
- AVIVO-A Lot Of New Hardware (Continued)
- Show Me The Benchmarks!
- Test Setup
- Benchmarks Results
- F.E.A.R. - XP Pro
- Dude! Where's My Driver?
- 3DMark05 - Vista Ultimate
- Doom 3 - Vista Ultimate
- Pricing, Game Bundles And Availability