BGE: negative lamp fix for GLSL mode.

The files I used for test are here: http://blenderecia.orgfree.com/blender/tmp/neg_light.zip
This commit is contained in:
Dalai Felinto
2009-12-31 18:52:06 +00:00
parent b5c250c729
commit b8a13162cf

View File

@@ -1655,11 +1655,16 @@ static KX_LightObject *gamelight_from_blamp(Object *ob, Lamp *la, unsigned int l
lightobj.m_nodiffuse = (la->mode & LA_NO_DIFF) != 0;
lightobj.m_nospecular = (la->mode & LA_NO_SPEC) != 0;
if (la->mode & LA_NEG)
{
lightobj.m_red = -lightobj.m_red;
lightobj.m_green = -lightobj.m_green;
lightobj.m_blue = -lightobj.m_blue;
bool glslmat = converter->GetGLSLMaterials();
// in GLSL NEGATIVE LAMP is handled inside the lamp update function
if(glslmat==0) {
if (la->mode & LA_NEG)
{
lightobj.m_red = -lightobj.m_red;
lightobj.m_green = -lightobj.m_green;
lightobj.m_blue = -lightobj.m_blue;
}
}
if (la->type==LA_SUN) {
@@ -1671,7 +1676,7 @@ static KX_LightObject *gamelight_from_blamp(Object *ob, Lamp *la, unsigned int l
}
gamelight = new KX_LightObject(kxscene, KX_Scene::m_callbacks, rendertools,
lightobj, converter->GetGLSLMaterials());
lightobj, glslmat);
BL_ConvertLampIpos(la, gamelight, converter);