From 74ec00ddaf801ea843e2857e52d8f2b36133a18f Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Fri, 1 Jun 2018 18:27:14 -0500 Subject: [PATCH] OpenGL2: Fix holodeck doors being black and not fading out On Windows the opaque textures on the holodeck doors model were drawn solid black and did not fade out. Set up ref entity lightDir and modelLightDir as unit vectors. I am guessing the vector lengths are being used as a divisor in a GLSL shader or something. Also clear directedLight so the same fields are set for RF_FULLBRIGHT as all other ref entities. --- code/renderergl1/tr_light.c | 5 ++++- code/renderergl2/tr_light.c | 9 ++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/code/renderergl1/tr_light.c b/code/renderergl1/tr_light.c index b2c80c24..2848c21b 100644 --- a/code/renderergl1/tr_light.c +++ b/code/renderergl1/tr_light.c @@ -309,7 +309,10 @@ void R_SetupEntityLighting( const trRefdef_t *refdef, trRefEntity_t *ent ) { ((byte *)&ent->ambientLightInt)[2] = 0x7F; ((byte *)&ent->ambientLightInt)[3] = 0xFF; - ent->lightDir[0] = ent->lightDir[1] = ent->lightDir[2] = 0; + ent->directedLight[0] = ent->directedLight[1] = ent->directedLight[2] = 0; + + ent->lightDir[0] = ent->lightDir[1] = 0; + ent->lightDir[2] = 1; return; } #endif diff --git a/code/renderergl2/tr_light.c b/code/renderergl2/tr_light.c index 4455b295..860e9df4 100644 --- a/code/renderergl2/tr_light.c +++ b/code/renderergl2/tr_light.c @@ -340,7 +340,14 @@ void R_SetupEntityLighting( const trRefdef_t *refdef, trRefEntity_t *ent ) { ((byte *)&ent->ambientLightInt)[2] = 0x7F; ((byte *)&ent->ambientLightInt)[3] = 0xFF; - ent->lightDir[0] = ent->lightDir[1] = ent->lightDir[2] = 0; + ent->directedLight[0] = ent->directedLight[1] = ent->directedLight[2] = 0; + + ent->lightDir[0] = ent->lightDir[1] = 0; + ent->lightDir[2] = 1; + + ent->modelLightDir[0] = DotProduct( ent->lightDir, ent->e.axis[0] ); + ent->modelLightDir[1] = DotProduct( ent->lightDir, ent->e.axis[1] ); + ent->modelLightDir[2] = DotProduct( ent->lightDir, ent->e.axis[2] ); return; } #endif