Lighting the Patches

If you recall, the N-Patch is defined by 10 control points, three from the original triangle vertices and seven that the TRUFORM engine calculates. These control points act as the vertices of individual sub-triangles, yet the seven that the TRUFORM engine creates initially do not have one piece of information that the original vertices have: normal information.

As we mentioned before, the normal information is used in a type of shading known as Gouraud shading to light an object (Gouraud shading is what is used today). Since the three vertices originally on our triangle are rather spread apart, Gouraud shading of the triangle results in blending and ultimately unrealistic lighting patterns. One solution to this is Phong or per-pixel shading which can calculate the light characteristics of each pixel on the triangle, but the creation of N-Patches allows another way to achieve lighting more accurate than Gouraud shading techniques

In order to achieve better lighting effects, TRUFORM creates new normals at the midpoint of each N-Patch mesh's side. This calculation is done by averaging the vertex normals at both ends of a side and then reflecting the averaged normal across a plane that is perpendicular to the side. This is best illustrated, as below.

From these new normals, at the midpoint of each edge, the tessellated sub-triangles can then be given normal information for each vertex, allowing a much higher level of lighting clarity to be achieved. Think about it this way: the new triangle, described by many smaller triangles each lit in its own way, will look better than the large original triangle. It is by Gouraud shading each smaller triangle that a near Phong shading level can be brought to an object.

Ok, a bit confusing, right? Well, fear not because all that really matters is the end result, which turns out to be rather impressive. Characters, as demonstrated below, look smoother, more lifelike, and are much better lit than before.

A Quake III Arena character rendered conventionally

A Quake III Arena character rendered with TRUFORM

A Quake III Arena character rendered conventionally

A Quake III Arena character rendered with TRUFORM

And remember that face we saw at the beginning of this article? Well take a look what happens when TRUFORM is applied to it. Quite impressive, considering that the face is still constructed out of the same triangle information in both pictures.

Face above rendered on a conventional video card
Face above rendered with TRUFORM
ATI's Solution: TRUFORM Applying TRUFORM Technology
Comments Locked


View All Comments

Log in

Don't have an account? Sign up now