ATI TRUFORM Technology - Powering the next generation Radeonby Matthew Witheiler on May 29, 2001 6:00 AM EST
- Posted in
ATI's Solution: TRUFORM
Briefly, what TRUFORM technology does is take triangle information from a game, internally convert the triangles into curved surfaces, and then make new triangles out of these that can be displayed on the scene. But there is a lot more to it than that. Better review your multivariable calculus skills and dust off you old textbooks, because this may get a bit confusing.
Converting a simple linear triangle into a curved cubic surface and back to a linear triangle again is not a simple task, but this is exactly what TRUFORM does using a special feature to be implemented in ATI's "next generation T&L engine" (read: Radeon II).
It works like this. When a triangle is passed to the graphics chip to be rendered, it sends six "pieces" of information. It sends the vertices of the triangle (3 of them to make the triangle) and the normals at these vertices (3 of them, one for each vertex). Using this information, all graphics cards in use now create the triangle (connect the dots) and use the information stored at the normals to shade and light the triangle (the normals indicate how light should reflect off the triangle). TRUFORM uses a different approach.
Once the triangle information is passed to the processor (including the vertex and normal information), TRUFORM begins to work by creating N-Patches to form an N-Patch mesh. The N-Patch mesh is a curved surface described by linear triangle information. N-Patches work by placing two control points on each side of the triangle, for the formation of six new vertices. The control points are created on a separate plane that can rest above or below the original triangle. Using the information stored in the normal of the original triangle vertex, the location of the control point can be determined, as shown by the picture below
It is helpful to think about it in a less mathematical sense. Since the normal at a vertex describes how light should reflect off the surface at and around that point, it can also be thought of as a surface quality. The way that a light bounces off of an object describes its shape and effectively describes the curvature of the shape. For example, a light shining directly on a sphere will always reflect light in the center and get gradually less reflective as we move out. This same information can be used to say that a sphere is round and curved, simply because of the way light bounces off of it.
Once the polygon is completely N-Patched, a curved surface made of flat triangles is created. There are 8 total triangles meshed together to form a surface much like the original one, however instead of lying flat in the x-y plane, the object now also occupies space in the z-plane. A glance below helps illustrate this point.
Since all of this occurs in the TRUFORM capable T&L engine, no performance is lost in the creation of the new surfaces.
Once the surface is curved, it is then chopped into segments of smaller triangles in a process known as tessellation. The triangle is split to a level either set globally throughout a game or individually on a specific object, a process which essentially increases the triangle (polygon) count on the object. The surface can be split as many times as desired, and an increased number of splits results in an increased image quality. It is with these splits that TRUFORM creates a renderable set of triangles out of the curved surface it just made.
Once again, since the tessellation process occurs in the TRUFORM T&L segment of the ATI chip, no performance is lost. Also, since the texture information for this new, super triangle is exactly the same texture information needed for the original triangle, no additional information needs to be passed over the memory bus.
What is the result of TRUFORM? In the end, it produces an object that looks as if it has been described with many more polygons that it actually has, meaning that the object's edges look smoother, more detailed, and more lifelike.