Merge "libagl: Transform the vertex if using eye space lighting with point lights"

This commit is contained in:
Mathias Agopian 2012-09-19 19:31:52 -07:00 committed by android code review
commit 8a2b54235a

View File

@ -381,7 +381,14 @@ void lightVertex(ogles_context_t* c, vertex_t* v)
// compute vertex-to-light vector // compute vertex-to-light vector
if (ggl_unlikely(l.position.w)) { if (ggl_unlikely(l.position.w)) {
// lightPos/1.0 - vertex/vertex.w == lightPos*vertex.w - vertex // lightPos/1.0 - vertex/vertex.w == lightPos*vertex.w - vertex
#if !OBJECT_SPACE_LIGHTING
vec4_t o;
const transform_t& mv = c->transforms.modelview.transform;
mv.point4(&mv, &o, &v->obj);
vss3(d.v, l.objPosition.v, o.w, o.v);
#else
vss3(d.v, l.objPosition.v, v->obj.w, v->obj.v); vss3(d.v, l.objPosition.v, v->obj.w, v->obj.v);
#endif
sqDist = dot3(d.v, d.v); sqDist = dot3(d.v, d.v);
vscale3(d.v, d.v, gglSqrtRecipx(sqDist)); vscale3(d.v, d.v, gglSqrtRecipx(sqDist));
} else { } else {