Bug #129606, was updated on 2001-Jan-21 13:31
Here is a current snapshot of the bug.
Project: Direct Rendering Infrastructure
Category: Core OpenGL
Bug Group: Rendering Error
Submitted by: joshagam
Assigned to : nobody
Summary: Possibly incorrect alpha in lighting
Details: The OpenGL redbook and bluebook both indicate that the alpha of
the various lighting components (ambient, specular, diffuse, etc.) are all
summed together, but in DRI/Mesa/etc., it only uses the alpha component
from the diffuse material parameter, and it also seems to just use that
parameter (rather than calculating it as part of the lighting equations).
That is, rather than treating the alpha component like the other color
components, Mesa's lighting equations seem to just grab the diffuse
parameter's alpha component and call it a day.
I can't find any official documentation stating that the alpha component is
to be treated the same as the red, green and blue compoents, but the
documentation would indicate that it is, and there are a signifigant number
of alpha effects (soap bubbles, etc.) which rely on the alpha component
being treated this way which aren't easy to emulate through other means.
As a simple example, to have a transparent but reflective soap bubble,
you'd have diffuse at, say, 1,1,1,0.1 but specular at 1,1,1,1, so that the
bubble itself is mostly transparent, but the hilight is opaque. Similarly,
there are a lot of neat effects you can have by putting a non-1 alpha
component into various lights.
Is this an erroneous shortcut being taken in Mesa, or is the OpenGL
documentation vague enough that either behavior is considered acceptable?
Thanks in advance.
For detailed info, follow this link: