Skip to content

Commit 0f79288

Browse files
committed
r_showLightGrid: access grid values directly
Don't use R_LightForPoint which has some levels of tweaking and interpolation.
1 parent f82f640 commit 0f79288

1 file changed

Lines changed: 14 additions & 5 deletions

File tree

src/engine/renderer/tr_backend.cpp

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2181,7 +2181,7 @@ static void RB_RenderDebugUtils()
21812181

21822182
// set uniforms
21832183
gl_genericShader->SetUniform_AlphaTest( GLS_ATEST_NONE );
2184-
SetUniform_ColorModulateColorGen( gl_genericShader, colorGen_t::CGEN_VERTEX, alphaGen_t::AGEN_VERTEX );
2184+
SetUniform_ColorModulateColorGen( gl_genericShader, colorGen_t::CGEN_VERTEX, alphaGen_t::AGEN_IDENTITY );
21852185
SetUniform_Color( gl_genericShader, Color::Black );
21862186

21872187
GL_State( GLS_DEFAULT );
@@ -2207,8 +2207,6 @@ static void RB_RenderDebugUtils()
22072207
for ( y = 0; y < tr.world->lightGridBounds[ 1 ]; y++ ) {
22082208
for ( x = 0; x < tr.world->lightGridBounds[ 0 ]; x++ ) {
22092209
vec3_t origin;
2210-
Color::Color ambientColor;
2211-
Color::Color directedColor;
22122210
vec3_t lightDir;
22132211

22142212
VectorCopy( tr.world->lightGridOrigin, origin );
@@ -2221,8 +2219,19 @@ static void RB_RenderDebugUtils()
22212219
continue;
22222220
}
22232221

2224-
R_LightForPoint( origin, ambientColor.ToArray(),
2225-
directedColor.ToArray(), lightDir );
2222+
// read out grid...
2223+
int gridIndex = x + tr.world->lightGridBounds[ 0 ] * ( y + tr.world->lightGridBounds[ 1 ] * z );
2224+
const bspGridPoint1_t *gp1 = tr.world->lightGridData1 + gridIndex;
2225+
const bspGridPoint2_t *gp2 = tr.world->lightGridData2 + gridIndex;
2226+
Color::Color generalColor = Color::Adapt( gp1->color );
2227+
float ambientScale = 2.0f * unorm8ToFloat( gp1->ambientPart );
2228+
float directedScale = 2.0f - ambientScale;
2229+
Color::Color ambientColor = generalColor * ambientScale;
2230+
Color::Color directedColor = generalColor * directedScale;
2231+
lightDir[ 0 ] = snorm8ToFloat( gp2->direction[ 0 ] - 128 );
2232+
lightDir[ 1 ] = snorm8ToFloat( gp2->direction[ 1 ] - 128 );
2233+
lightDir[ 2 ] = snorm8ToFloat( gp2->direction[ 2 ] - 128 );
2234+
22262235
VectorNegate( lightDir, lightDir );
22272236

22282237
length = 8;

0 commit comments

Comments
 (0)