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:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user