Alan Willard Interview – What Is Tessellation?
At a top-level, Willard explains that surfaces and walls (think of these as a flat surface) are built out of “quads.” Quads consist of two triangles that are “butted-up together” to make a square. This is how 3D graphics are built.
When we asked for a top-level definition of tessellation, Willard explained (emphasis is ours):
“Tessellation is a way of doubling [the triangles] on the graphics hardware – so what was two triangles becomes four, what was eight becomes sixteen, and so on. When we do that, that allows us to do things like displacement or smoothing and increase the apparent detail. This not only makes the surface look higher resolution, [but also adds] bumps and hills and valleys that weren't there before. You get a much higher fidelity surface.”
This topic was first brought to Epic Games by nVidia nearing the end of the development cycle for Unreal Engine 3. Some readers may remember the Samaritan demo, a video showcasing rocky extrusion from a human character's face. This effect was produced using displacement mapping that ultimately gets rendered by the GPU, assisting in the dicing of objects into more triangles. Dicing objects in this fashion allows for more curvature, bumps, gouges, and so forth. Willard outlines boulders as an easy example, as seen here:
We asked whether tessellation could be impacted by camera angle or distance, curious as to techniques to create false depth to surfaces without consuming too many system resources. Willard educated us on techniques:
“Epic biases displacement in tessellation based on camera distance. A small object far away doesn't need to spend performance for [tessellation]. Think of a wall as a flat surface. You can do a lot of shader tricks to make it look better – what we call 'bump offset,' where we shift the location of pixels based on the camera angle – and that can give you the sense that the bricks have depth and are coming out of the surface. What you'll never get is a silhouette off of that kind of technique. Displacement and tessellation allow us to increase triangle density and then push and pull those triangles in, out, to the sides to get those shapes to come off of that surface. Lighting and shadowing can work with those shapes to sell the final look.”
In a practical application, this is noticeable when observing a flat wall in-game that has a brick texture applied to it; Epic could extrude the wall's triangles, producing an appearance that the wall is modeled with depth corresponding to the protruding bricks.
NVidia separately made clear that tessellation is often heavily automated by the underlying framework, but still requires fine-tuning by technical artists in-house. The automation of tessellation helps streamline production of high-fidelity, realistic graphics and avoids increasing development overhead.
Tessellation is a GPU-bound item. Modern architectures – Fermi, Kepler, and Maxwell included – include dedicated tessellation units that allow for independent processing of tessellated objects. Learn more about underlying GPU hardware here. Impact on hardware will depend based on the game, engine, and implementation of tessellation. In our benchmark of GTA V's tessellation, it becomes clear that impact can sometimes be negligible -- but there may not be much tessellating going on in GTA V compared to, for instance, a more intensive PC title.
Previous Epic Games content includes our discussion on the legitimacy of virtual reality and its inherent design challenges, discussed with Chance Ivey, and the “science” of level design with Jim Brown.
Unreal Engine 4 can be downloaded for free here.
- Steve “Lelldorianx” Burke.