[iortcw] 64/497: All: Rend2: Set cap on ambient and direct light

Simon McVittie smcv at debian.org
Fri Sep 8 10:36:21 UTC 2017


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to annotated tag 1.42d
in repository iortcw.

commit 26f1a720db2145f90e3c9c18a03079b309b3b669
Author: M4N4T4RMS at gmail.com <M4N4T4RMS at gmail.com@e65d2741-a53d-b2dc-ae96-bb75fa5e4c4a>
Date:   Wed Mar 12 05:12:34 2014 +0000

    All: Rend2: Set cap on ambient and direct light
---
 MP/code/rend2/tr_shade.c | 15 +++++++++++++++
 SP/code/rend2/tr_shade.c | 15 +++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/MP/code/rend2/tr_shade.c b/MP/code/rend2/tr_shade.c
index 1a2e8e1..c429e5c 100644
--- a/MP/code/rend2/tr_shade.c
+++ b/MP/code/rend2/tr_shade.c
@@ -1288,11 +1288,26 @@ static void RB_IterateStagesGeneric( shaderCommands_t *input )
 		if (pStage->rgbGen == CGEN_LIGHTING_DIFFUSE)
 		{
 			vec4_t vec;
+			vec_t cap = 1.0f / (1 << tr.overbrightBits);
 
 			VectorScale(backEnd.currentEntity->ambientLight, 1.0f / 255.0f, vec);
+			if ((vec[0] > cap) || (vec[1] > cap) || (vec[2] > cap))
+			{
+				vec_t hi = MAX(vec[0], vec[1]);
+				hi = MAX(hi, vec[2]);
+				
+				VectorScale(vec, cap / hi, vec);
+			}
 			GLSL_SetUniformVec3(sp, UNIFORM_AMBIENTLIGHT, vec);
 
 			VectorScale(backEnd.currentEntity->directedLight, 1.0f / 255.0f, vec);
+			if ((vec[0] > cap) || (vec[1] > cap) || (vec[2] > cap))
+			{
+				vec_t hi = MAX(vec[0], vec[1]);
+				hi = MAX(hi, vec[2]);
+				
+				VectorScale(vec, cap / hi, vec);
+			}
 			GLSL_SetUniformVec3(sp, UNIFORM_DIRECTEDLIGHT, vec);
 			
 			VectorCopy(backEnd.currentEntity->lightDir, vec);
diff --git a/SP/code/rend2/tr_shade.c b/SP/code/rend2/tr_shade.c
index 28b1589..58788d3 100644
--- a/SP/code/rend2/tr_shade.c
+++ b/SP/code/rend2/tr_shade.c
@@ -1282,11 +1282,26 @@ static void RB_IterateStagesGeneric( shaderCommands_t *input )
 		if (pStage->rgbGen == CGEN_LIGHTING_DIFFUSE)
 		{
 			vec4_t vec;
+			vec_t cap = 1.0f / (1 << tr.overbrightBits);
 
 			VectorScale(backEnd.currentEntity->ambientLight, 1.0f / 255.0f, vec);
+			if ((vec[0] > cap) || (vec[1] > cap) || (vec[2] > cap))
+			{
+				vec_t hi = MAX(vec[0], vec[1]);
+				hi = MAX(hi, vec[2]);
+				
+				VectorScale(vec, cap / hi, vec);
+			}
 			GLSL_SetUniformVec3(sp, UNIFORM_AMBIENTLIGHT, vec);
 
 			VectorScale(backEnd.currentEntity->directedLight, 1.0f / 255.0f, vec);
+			if ((vec[0] > cap) || (vec[1] > cap) || (vec[2] > cap))
+			{
+				vec_t hi = MAX(vec[0], vec[1]);
+				hi = MAX(hi, vec[2]);
+				
+				VectorScale(vec, cap / hi, vec);
+			}
 			GLSL_SetUniformVec3(sp, UNIFORM_DIRECTEDLIGHT, vec);
 			
 			VectorCopy(backEnd.currentEntity->lightDir, vec);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/iortcw.git



More information about the Pkg-games-commits mailing list