mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-16 09:21:36 +00:00
Polymodes: properly calc start/end fog dist for r_usenewshading=2, vis=0, shade>0
So there's no "jump" from vis!=0 to vis=0 making the texture appear brighter. git-svn-id: https://svn.eduke32.com/eduke32@3959 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
ec2514a91d
commit
66d126e9ff
1 changed files with 17 additions and 4 deletions
|
@ -519,8 +519,8 @@ static void fogcalc_old(int32_t shade, int32_t vis)
|
||||||
|
|
||||||
// For GL_LINEAR fog:
|
// For GL_LINEAR fog:
|
||||||
#define FOGDISTCONST 600
|
#define FOGDISTCONST 600
|
||||||
#define FULLVIS_BEGIN 2.9e38
|
#define FULLVIS_BEGIN 2.9e30
|
||||||
#define FULLVIS_END 3.0e38
|
#define FULLVIS_END 3.0e30
|
||||||
|
|
||||||
static inline void fogcalc(int32_t tile, int32_t shade, int32_t vis, int32_t pal)
|
static inline void fogcalc(int32_t tile, int32_t shade, int32_t vis, int32_t pal)
|
||||||
{
|
{
|
||||||
|
@ -541,8 +541,19 @@ static inline void fogcalc(int32_t tile, int32_t shade, int32_t vis, int32_t pal
|
||||||
|
|
||||||
if (combvis == 0)
|
if (combvis == 0)
|
||||||
{
|
{
|
||||||
fogresult = FULLVIS_BEGIN;
|
if (shade > 0)
|
||||||
fogresult2 = FULLVIS_END;
|
{
|
||||||
|
// beg = -D*shade, end = D*(NUMSHADES-1-shade)
|
||||||
|
// => end/beg = -(NUMSHADES-1-shade)/shade
|
||||||
|
fogresult = -FULLVIS_BEGIN;
|
||||||
|
fogresult2 = FULLVIS_BEGIN * (float)(numshades-1-shade)/shade;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fogresult = FULLVIS_BEGIN;
|
||||||
|
fogresult2 = FULLVIS_END;
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -574,6 +585,8 @@ void calc_and_apply_fog_factor(int32_t tile, int32_t shade, int32_t vis, int32_t
|
||||||
if (nofog)
|
if (nofog)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// NOTE: for r_usenewshading==2, the fog being/ending distance results are
|
||||||
|
// unused.
|
||||||
fogcalc(tile, shade, vis, pal);
|
fogcalc(tile, shade, vis, pal);
|
||||||
bglFogfv(GL_FOG_COLOR, fogcol);
|
bglFogfv(GL_FOG_COLOR, fogcol);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue