From 18972ded298b2a47035e5dcf40e2391d717d9d76 Mon Sep 17 00:00:00 2001 From: Zack Middleton Date: Tue, 10 Jun 2014 21:21:32 -0500 Subject: OpenGL2 don't try to dlight surfaces that had all dlights culled In the renderers, dlightbits are never cleared from world surfaces. The dlight image does not repeat, so if it draws on extra surfaces it's not visible. However if using a repeating image (tr.defaultImage instead of tr.dlightImage); * In OpenGL1 image is only drawn on surfaces close to dlight origin. * In OpenGL2 image is draw on surfaces clearly outside the dlight radius, including past non-dlighted surfaces. It seems there was a similar issue with pshadowBits. So update surface dlightBits even if 0, like already done for pshadowBits. This causes only surfaces close to origin to be affected. (Though it is a little farther than in OpenGL1.) I have no idea why this isn't a problem in OpenGL1. --- src/renderergl2/tr_world.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/renderergl2/tr_world.c b/src/renderergl2/tr_world.c index 6608d70b..9547c2e4 100644 --- a/src/renderergl2/tr_world.c +++ b/src/renderergl2/tr_world.c @@ -331,7 +331,7 @@ static void R_AddWorldSurface( msurface_t *surf, int dlightBits, int pshadowBits } // check for dlighting - if ( dlightBits ) { + /*if ( dlightBits ) */{ dlightBits = R_DlightSurface( surf, dlightBits ); dlightBits = ( dlightBits != 0 ); } -- cgit