I agree with you that phong is better than gourad, but this is a debate and it doesn’t have a correct answer.
You have to appreciate that introducing more complicated hardware will have trade features for “something else”. What that something else is up the the hardware designer’s.
This is a crude argument, but think about the philosophy behind a lot of the RISC chips: they’re designed to be lean and mean, and thus run at a faster clock rate. True, Intel and AMD have been able to crank up the clock rate of their complicated processors, but at the expense of adding a tonne of remarkably clever hardware tricks. Alpha, on the other hand, have long had (or, USED to have) a very lean chip that ran at blazing clock speeds. Which is better? A more complicated chip that either runs at a slower clock speed, or a more complicated chip that exhausts much of its transistor budget trying to hide its complexity (but thus becomes more expensvie to build), or a simpler chip that runs at blazing clock rates and is much cheaper, thus opening the possibility of having MANY simpler chips? It’s all a trade…
The VAX architecture used to add features at the drop of a hat, including (if I recall correctly) a single instruction to calculate the CRC of a word. That follows the philosphy of adding more complicated hardware to solve problems that could be solved by a collection of simpler hardware. The VAX used to have a tonne of instructiosn taht were too specialised and were hardly used.
True, phong shading might not be considered to be “too specialised”, but its expense MIGHT be better used elsewhere. Chips typically have transistor budgets, and the engineers have to work out how best to utilise it. Do you spend a considerable part of your transistor count on a new shade model in hardware, or do you use it to add more texturing units? For a application that wants a better shade model, but also requires several texture layers, more texture units might be better. Sure, it’ll need a higher resolution mesh than what you’re suggusting, but on the other hand it might be able to draw the scene in only one pass. Which is the better trade? Higher resolution mesh, or multiple passes? But the budget isn’t just limited to transistors: the cards also have to be sold. If you have a cheaper chip that doesn’t have phong shading, but a kick-ass polygon count, then you might be able to have more than one chip on a card. Alternatively, you might be able to sell consumer level cards with more video memory thus limiting the amount of texture thrashing in a game.
My argument is: sure, phong shading is great, and it’s a fine argument to say we should all be striding boldly forward to new technlogical heights. But, I argue, needlessly adding features is NOT THE BEST APPROACH. The shader model CAN be improved by increasing the resolution of the mesh. Indeed, as Bob points out, this is better for the object’s silouhette. If phong shading isn’t implemented in hardware, than this allows scope as a given price point to add other features like more graphics pipes and video memory. Which is better? Just because phong shading is a technologically superior shade model to gourad, doesn’t NECESSARILY mean it should be implemented, and just because it explicitly SOLVES the problem doesn’t make it necessarily a better solution, either.
[This message has been edited by john (edited 08-20-2000).]