History log of /frameworks/base/opengl/libagl/light.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e304bdd5ee5ed0b0d37fe388021c9cd138feda7f 03-Feb-2010 Mathias Agopian <mathias@google.com> fix [2133133] Software OpenGL ES Lighting is buggy (GL Gears washed out bug)

A typo caused GL_AMBIENT_AND_DIFFUSE to only set the the ambient color.

Fix another typo which caused the viewer position to be wrong for
specular highlights.

Switch back to eye-space lighting, since there are still some issues
with some demos (San Angeles in particular).
/frameworks/base/opengl/libagl/light.cpp
c0dea964913268bd64009e657635e617f3e0c21c 11-Aug-2009 Martin Storsjo <martin@martin.st> Calculate specular lighting correctly

Since the lighting calculations are done in object space, the vector
from the object to the viewer also needs to be transformed to object
space.
/frameworks/base/opengl/libagl/light.cpp
cede1ed3e1721dc4a697a540388ef0f4b51c60eb 03-Jun-2009 Mathias Agopian <mathias@google.com> fix [1610840] Positional light doesn't work correctly on emulator

This bug was introduced when lighting computations was changed from eye-space to object-space.
The light position need to be transformed back to object-space each time the modelview matrix changes which requires us to compute the inverse of the modelview matrix. This computation was done with the assumption that normals where transformed (which was the case when the computation was made in eye-space), however, normals only require the inverse of the upper 3x3 matrix while transforming positions requires the inverse of the whole matrix.
This caused the interesting behavior that lights were more-or-less transformed properly, but not translated at all, which caused improper lighting with directional lights in particular.

There was also another smaller bug affecting directional lights: when vertices are read, only the active component are read, the other ones are ignored, later, the transformation operations are set up to ignore the unset values, howver, in the case of lighting, we use the vertex in object space (that is, before it is transformed), and therefore were using uninitalized values; in particular w.
/frameworks/base/opengl/libagl/light.cpp
7c7dface993a66778c506179ae11cadd6a88f7b1 03-Jun-2009 Mathias Agopian <mathias@google.com> fix a bug in GL lighting where the specular component could be ommited when vertex material was disabled.

the specular enable flag wasn't computed in that case.
/frameworks/base/opengl/libagl/light.cpp
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/opengl/libagl/light.cpp
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/opengl/libagl/light.cpp
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/opengl/libagl/light.cpp
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/opengl/libagl/light.cpp