|
What you describe is exactly right. The specular color is added at the end
of the texturing stage. OpenGL exposes this functionality with the
GL_EXT_secondary_color extension. Unfortunately this isn't a very well
supported extension right now, but I've asked NVIDIA about it and the
drivers that are coming with the GeForce256 should support it, as well as
the GL_EXT_fog_coord extension so that's at least something. In the mean
time the replacement for the effect is to use an additional texture that
contains the specular highlight. This second method is actually becoming
pretty common and I believe it is referred to as a gloss map. The problem
with using the vertices for the specular highlight becomes obvious when you
think about what a small highlight in the center of a triangle would look
like. If the highlight doesn't touch any of the vertices it disappears, and
then reappears as it moves across the surface of the object and touches
other vertices. The texturing solution doesn't have this problem, but does
use more fill rate. Fortunately with fill rates going through the roof this
isn't an incredible problem.
Response provided by Tom Hubina
|
|