Right now, hardware lighting isn't nearly as important as hardware transformations. In the future this might change, but for now, what is this? Well hardware lighting is done per-vertex and quite honestly, this can result is some pretty terrible image quality if used improperly. Per-vertex lighting means that objects are given X amount of light per triangle (it is calculated at each vertex and so you have 3 different intensities of lighting centering on the middle of the triangle). To get an idea of hardware light and how it would look, let us consider Quake III. Now the characters in Q3 consist of about 1000 polygons (give or take). So assume that you light the characters with hardware lighting. Because the character uses so many polygons, each triangle is very small and so you won't really notice the way the lighting is done. This is a situation where hardware lighting is good and really helps to improve performance. Now if you were to use hardware lighting on walls, the effects would be disastrous. Take a simple square wall. Usually something like this would be made of two triangles (large or small depending on the size of the wall). As light would travel down the wall you would see the entire triangle light up, and you'd see very defined edges on the triangle. So what can be done to avoid this?

The lighting problem is solved in two ways. Currently, we rarely use hardware lighting (especially on flat surfaces). We use what are known as lighting maps, or textures of light that are rendered with an additional pass onto the walls and other objects. The results in very high quality lighting, but as said, it requires an addition pass to render. The other solution is to make everything consist of many triangles. By doing so, all of the triangles become small enough that it is hard to notice the edges. The only problem with this is that you must render a great deal more triangles, thus taxing the transformation engine and reducing the complexity of other objects that could take advantage of the higher level of detail. Truth be told, even when something such as a flat wall uses an acceptable level of triangles, you can still see that per-vertex lighting is being used. Of course this is if you really look, and chances are that in more games you'll be moving so quickly that you won't even notice (if the game has an acceptable level of triangles in the walls, something no game currently comes close to). Here is an example of hardware lighting when using a acceptable level of triangles on a flat surface.



T&L is really an interesting, yet very complex aspect of graphics acceleration. It can and will make a world of difference in the complexity of games. It is unquestionably a necessary step in the evolution of 3D hardware. It is very interesting to look at the different problems associated with it, as we just have, and see what developers can do to work around this. It should be interesting to see over the next few years what approaches different developers take on the different issues. Really though, from a gamers perspective, it only matters that we are seeing yet another leap in terms of graphics rendering. T&L is unquestionably going to bring a massive increase in games' graphical complexity, but it will be over time. We are now only entering the first generation of onboard T&L that is targeted at the consumer/hardcore market. There are many advancements to be made in T&L. It isn't a situation of that once you have it; just make it faster as has been with 3D accelerators in the past. There are many more issues that come up and many more things that can be done to improve on T&L. Whatever happens though, the one thing we know for sure is that we're all going to benefit.