Original Link: http://www.anandtech.com/show/773



By the looks of it today, the future holds exciting times for 3D gaming. Realizing the limitations faced with immediate mode renderers, the two major players left in the high performance video card market have begun to shift focus from speed to quality. This represents quite a major deviation from the previous school of thought, where frames per second was king. Indeed, frame rate remains an important aspect of 3D gaming, however card producers are finally reaching a point where the question becomes how much is too much. When the current generation of high performance video cards can play even today's most advanced games at 60+ frames per second at 1600x1200x32, it seems arbitrary to push cards to go faster. Add to this the fact that going much faster requires a whole new approach to rendering and/or the implementation of a new memory technology and it becomes clear why we are seeing a paradigm shift among video card producers; a shift that is allowing frame rate to take a back seat to image quality and realism.

NVIDIA was the first card manufacturers to emphasize image improving features over frame rate with their GeForce3 product. Sure, the GeForce3 is faster than previous NVIDIA products, but the speed gap between the GeForce3 and the previous generation GeForce2 Ultra is not as large as we have seen with other new generation products such as the TNT2 Ultra vs GeForce DDR. As a result of this, focus needed to be shifted away from frame rate and into another aspect of game play, and the release of DX8 and upcoming high-end games gave NVIDIA the perfect opportunity to shift attention to image quality.

The technologies implemented on the GeForce3 to improve image quality have recently become buzz words in the computer world. Techniques such as per-pixel shading and Quincunx antialiasing promise to bring future games running on a GeForce3 superior image quality without any sacrifice in speed (read more about it in our NVIDIA's GeForce3: "NV20" Revealed article). With the GeForce3, NVIDIA seems to be making a statement that there is more to a graphics card than just the maximum amount of frames it can output per second.

Three months after the GeForce3's official launch, today we get a glimpse of how ATI intends to address image quality in their future products. Coined TRUFORM, it can be expected that ATI's "next generation chip" (presumably the Radeon II) will include the technology that could mean drastic improvements in image quality in not only new but also existing games.



A Bit of Background

In order to understand what TRUFORM technology does for gaming, it is necessary to take a look at how current games are designed and rendered.

3D game scenes, characters, and objects are all created out of triangles meshed together to create polygons. It is easy to understand how simple 3D objects, such as a pyramid, are created out of interacting triangles, with each side one large triangle and the square base a composition of two triangles.


A simple pyramid

Other objects are created in the same manner, with interacting triangles placed together to make other, more complex, shapes as shown below.


3D model of a face

In the case of our pyramid, no more and no less than six triangles need to be used to achieve the desired effect: less than six triangles would not create the pyramid shape (given the 2 base triangles and the 4 triangular sides) and more than six triangles would result in no visual difference. Not so simple geometric structures, on the other hand, can be created with as few or as many polygons as desired with noticeable changes in visual quality.

In the case of the sample sphere above, as few as 8 triangles can be meshed together to create a spherical looking object of sorts (that actually turns out to be two pyramids meeting at the bases). Increasing the triangle count, or segments of the sphere, results in a more realistic looking object, as in the real world our sample sphere can only be approximated correctly with an infinite amount of polygons.

4 segment sphere
Triangles are too large to form sphere shape
12 segment sphere
Note rough edges and poor lighting pattern
100 segment sphere
Note realistic look to edges and good lighting pattern

As you can see, increasing the polygon count on the sphere increased it realism, transforming it from the intersecting pyramids created with 8 triangles into the smooth sphere generated with 100 segments.

Naturally, the same attributes that were present in our sphere are also present with more advanced structures, such as a character in a game. When developers and artists get together to create game characters, scenes, objects and more, they must keep a close eye out for how many triangles (or polygons) a scene will consist of. This is because the higher the polygon count in a scene, the more work the video card has to do in order to render, transform, and light the scene. Increased polygon count requires both increased bandwidth to transfer the triangles to the graphics chip and also increased memory for the storage of these triangles. Plus there is the fact that a graphics chip can only process so many triangles per clock cycle.

The artists must strike a balance between the number of triangles used to describe a scene and the amount of visual realism present in it. Once again, ideally an infinite number of triangles would be used to describe a scene, since this would best approximate the real world, however this is impossible. Since games must be designed around the hardware that is running them, and in order to sell a title a game must run on more than just the most powerful system available, most games heavily limit the number of polygons in a scene, like Quake III Arena which averages around 10,000 polygons per scene.

It all boils down to the fact that when it comes to polygon count, the more the merrier but hardware limitations hold artists back. When the strive is to increase image quality in game-play, increased polygon (or triangle) counts seem to be the perfect answer. There is, however, a better one.



More Detail: Curved Surfaces

The answer to image quality problems has recently been solved in another fashion: with the use of curved surfaces. The stunning computer graphics seen in movies such as Toy Story 2, A Bug's Life, and the upcoming Final Fantasy movie are all created using curved surfaces. The reason that these graphics look so much more realistic is due to the fact that creating 3D images out of linear 2D polygons creates a sense of blockyness that is not present when creating shapes out of curved (cubic) surfaces.

Ideally, to get real-time rendered games to look like the prerendered scenes of computer graphic movies, curved surface rendering will have to be implemented in video card technology. In theory, artists could do this now, but the problem comes not with creating images from curved surfaces but with displaying them on your home computer.

All graphics cards available to the home user are designed to render collections of polygons, not curved surfaces. Since the two rendering formats are incompatible, any game designed from curved surfaces will not work on a card set to render polygons. Likewise, any card set to render curved surfaces can not render scenes designed around polygons (in other words, every game made for the home computer).

This is where ATI comes in. Since it would be impossible to implement and sell a consumer-level curve-based rendering system, they decided to borrow aspects of both curved surface and polygon models.



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.


Tessellation

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.



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


Applying TRUFORM Technology

One thing to note is that TRUFORM technology is not ATI specific by any means: it is ATI's implementation of N-Patch technology included in Microsoft's DirectX 8 and OpenGL. It was put here for a reason- N-Patching allows a whole new visual world to be entered.

On the programing side, applying TRUFORM technology to a new or existing game actually only requires one line of code: the rest of done in the T&L part of ATI's chip. Also, since the character and scene information remains the same using TRUFORM or not, no new characters or scenes need be modeled.

This creates a very interesting application to TRUFORM technology, and one that will surely gain the attention of many. Since TRUFORM uses the information that is already there to make games look better, it can be applied to every 3D game on the market. This means that everything you currently play has the potential to look better on a card with TRUFORM technology.

There is currently some debate as to how TRUFORM should be implemented in current games, and the argument is centered around whether the user should have the control to turn TRUFORM on or whether the developer should be the only one who has that power. If things go as we would like, the next generation ATI card will have a driver-accessable feature to enable TRUFORM as well as the degree of tessellation that the triangle is broken into. The problem with this is that some visual anomalies may result from using TRUFORM on polygons that is should not be. Although easy to control when in the hands of the developer, as he or she can turn or alter the TRUFORM level on individual objects, creating a user accessible setting would force TRUFORM on objects that may not need it. Still, a user accessible setting would bring quite a bit of excitement with it, especially if the visual problems are rare.

Speaking of visual problems, ATI has found a way to get rid of some problems that originally had the potential to occur when using N-Patches. Since the edges are essentially smoothed out, image problems were experienced in smooth surfaces where the edge is supposed to be hard, for example a gun in the belt of a character. To prevent this problem, N-Patching will not occur in where two normals are at 90 degrees or one another, a situation that indicates that an edge should be sharp.



Conclusion

So, with a little bit of magic, ATI's TRUFORM technology has the potential to increase image quality of future and past games without any decrease in performance. A miracle, right? Let's hope so.

There are still some things that need to happen in order for TRUFORM to deliver as promised. First off, there must be developer support for it. Saying that it is a supported DirectX 8 and OpenGL feature may not be enough, because if no one programs with TRUFORM in mind, the benefits of the technology will be limited. Sure it will look cool to apply it to games, but it will look much better to see a game designed with TRUFORM as a majority technology. ATI assures us that developers are enthusiastic about their newest technology, but we will have to wait an see before we can judge its adoption to new games.

As far as improving older games goes, one of two things needs to happen. Either the developer of the game needs to patch their game to enable TRUFORM properly (remember it is just one line of code) or a setting needs to be made available in the drivers. We would rather have the latter, with control of TRUFORM given to the user, and imagine that many of you feel the same way. Hopefully, ATI will decide to give us this privilege and that the image problems associated with TRUFORMing objects that need not be are minor.

The best thing that TRUFORM has going for it is the fact that enabling the technology in future ATI products will not hinder performance at all. In fact, it will finally allow the T&L engine to do what it is good at: transform, light, and clip triangles. Add to this the obvious visual quality improvements that come with TRUFORM technology and it seems that we may have something to get excited about. Although the calculations are complex, and understanding the technology is a bit confusing, TRUFORM boils down to better image quality without a sacrifice in speed. And isn't that all that really matters?

Log in

Don't have an account? Sign up now