diff --git a/code/renderer/tr_light.cpp b/code/renderer/tr_light.cpp index 6a29f9e..0337056 100644 --- a/code/renderer/tr_light.cpp +++ b/code/renderer/tr_light.cpp @@ -112,10 +112,8 @@ static void R_SetupEntityLightingGrid( trRefEntity_t *ent ) { float factor; byte *data; vec3_t normal; - #if idppc - float d0, d1, d2, d3, d4, d5; - #endif - factor = 1.0; + + factor = 1.0f; data = gridData; for ( j = 0 ; j < 3 ; j++ ) { if ( i & (1<ambientLight[0] += factor * d0; - ent->ambientLight[1] += factor * d1; - ent->ambientLight[2] += factor * d2; - - ent->directedLight[0] += factor * d3; - ent->directedLight[1] += factor * d4; - ent->directedLight[2] += factor * d5; - #else ent->ambientLight[0] += factor * data[0]; ent->ambientLight[1] += factor * data[1]; ent->ambientLight[2] += factor * data[2]; @@ -149,7 +136,6 @@ static void R_SetupEntityLightingGrid( trRefEntity_t *ent ) { ent->directedLight[0] += factor * data[3]; ent->directedLight[1] += factor * data[4]; ent->directedLight[2] += factor * data[5]; - #endif const float lat = (float)data[7] * (2.0f * M_PI / 256.0f); const float lon = (float)data[6] * (2.0f * M_PI / 256.0f); @@ -164,7 +150,7 @@ static void R_SetupEntityLightingGrid( trRefEntity_t *ent ) { VectorMA( direction, factor, normal, direction ); } - if ( totalFactor > 0 && totalFactor < 0.99 ) { + if ( totalFactor > 0.0f && totalFactor < 0.99f ) { totalFactor = 1.0f / totalFactor; VectorScale( ent->ambientLight, totalFactor, ent->ambientLight ); VectorScale( ent->directedLight, totalFactor, ent->directedLight ); diff --git a/code/renderer/tr_local.h b/code/renderer/tr_local.h index 51d7e1a..5e7d0cf 100644 --- a/code/renderer/tr_local.h +++ b/code/renderer/tr_local.h @@ -776,11 +776,12 @@ typedef struct { int numfogs; fog_t *fogs; - vec3_t lightGridOrigin; - vec3_t lightGridSize; - vec3_t lightGridInverseSize; - int lightGridBounds[3]; - byte *lightGridData; + vec3_t lightGridOrigin; // center of the voxel at (0, 0, 0) + vec3_t lightGridSize; // world units per voxel + vec3_t lightGridInverseSize; // reciprocal world units per voxel + int lightGridBounds[3]; // voxel counts + byte *lightGridData; // 8 bytes per voxel: ambient RGB, light RGB + longitude + latitude + // indexing: x + y*w + z*w*h int numClusters; int clusterBytes;