aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--code/renderer/tr_flares.c6
-rw-r--r--code/renderer/tr_shader.c3
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 );