diff options
-rw-r--r-- | code/renderer/tr_flares.c | 6 | ||||
-rw-r--r-- | code/renderer/tr_shader.c | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/code/renderer/tr_flares.c b/code/renderer/tr_flares.c index 51181c0..0779e48 100644 --- a/code/renderer/tr_flares.c +++ b/code/renderer/tr_flares.c @@ -354,13 +354,17 @@ void RB_RenderFlare( flare_t *f ) { VectorScale(f->color, f->drawIntensity * tr.identityLight * intensity, color); // Calculations for fogging - if(f->fogNum) + if(f->fogNum < tr.world->numfogs) { tess.numVertexes = 1; VectorCopy(f->origin, tess.xyz[0]); tess.fogNum = f->fogNum; RB_CalcModulateColorsByFog(fogFactors); + + // We don't need to render the flare if colors are 0 anyways. + if(!fogFactors[0] && !fogFactors[1] && !fogFactors[2]) + return; } iColor[0] = color[0] * fogFactors[0]; diff --git a/code/renderer/tr_shader.c b/code/renderer/tr_shader.c index a489459..dc5b7d7 100644 --- a/code/renderer/tr_shader.c +++ b/code/renderer/tr_shader.c @@ -3018,7 +3018,10 @@ static void CreateExternalShaders( void ) { int index; for(index = 0; index < tr.flareShader->numUnfoggedPasses; index++) + { tr.flareShader->stages[index]->adjustColorsForFog = ACFF_NONE; + tr.flareShader->stages[index]->stateBits |= GLS_DEPTHTEST_DISABLE; + } } tr.sunShader = R_FindShader( "sun", LIGHTMAP_NONE, qtrue ); |