mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 11:10:47 +00:00
Polymost: introduce r_usenewshading 3 and make it the default.
With this mode, the near distance of the linear fog is always 0, unlike being negative with r_usenewshading 2. git-svn-id: https://svn.eduke32.com/eduke32@4393 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
21de8bb53a
commit
7a3776dfac
4 changed files with 13 additions and 13 deletions
|
@ -199,7 +199,7 @@ int32_t loadsetup(const char *fn)
|
||||||
if (readconfig(fp, "r_shadescale", val, VL) > 0)
|
if (readconfig(fp, "r_shadescale", val, VL) > 0)
|
||||||
shadescale = clampd(Bstrtod(val, NULL), 0.0, 10.0);
|
shadescale = clampd(Bstrtod(val, NULL), 0.0, 10.0);
|
||||||
if (readconfig(fp, "r_usenewshading", val, VL) > 0)
|
if (readconfig(fp, "r_usenewshading", val, VL) > 0)
|
||||||
r_usenewshading = clamp(atoi_safe(val), 0, 2);
|
r_usenewshading = clamp(atoi_safe(val), 0, 3);
|
||||||
if (readconfig(fp, "r_usetileshades", val, VL) > 0)
|
if (readconfig(fp, "r_usetileshades", val, VL) > 0)
|
||||||
r_usetileshades = !!atoi_safe(val);
|
r_usetileshades = !!atoi_safe(val);
|
||||||
# ifdef POLYMER
|
# ifdef POLYMER
|
||||||
|
|
|
@ -8985,7 +8985,7 @@ int32_t drawrooms(int32_t daposx, int32_t daposy, int32_t daposz,
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
case REND_POLYMOST:
|
case REND_POLYMOST:
|
||||||
// NOTE: In Polymost, the fragment depth depends on the x screen size!
|
// NOTE: In Polymost, the fragment depth depends on the x screen size!
|
||||||
if (r_usenewshading==2)
|
if (r_usenewshading >= 2)
|
||||||
globalvisibility = scale(g_visibility<<2, xdimen, 1680);
|
globalvisibility = scale(g_visibility<<2, xdimen, 1680);
|
||||||
else
|
else
|
||||||
globalvisibility = scale(g_visibility<<2, xdimen, 1100);
|
globalvisibility = scale(g_visibility<<2, xdimen, 1100);
|
||||||
|
|
|
@ -5096,7 +5096,7 @@ static int32_t polymer_bindmaterial(_prmaterial material, int16_t* lights,
|
||||||
#ifdef PR_LINEAR_FOG
|
#ifdef PR_LINEAR_FOG
|
||||||
if (programbits & prprogrambits[PR_BIT_FOG].bit)
|
if (programbits & prprogrambits[PR_BIT_FOG].bit)
|
||||||
{
|
{
|
||||||
bglUniform1iARB(prprograms[programbits].uniform_linearFog, r_usenewshading==2);
|
bglUniform1iARB(prprograms[programbits].uniform_linearFog, r_usenewshading >= 2);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
// PR_BIT_GLOW_MAP
|
// PR_BIT_GLOW_MAP
|
||||||
|
|
|
@ -110,7 +110,7 @@ static double dxb1[MAXWALLSB], dxb2[MAXWALLSB];
|
||||||
float shadescale = 1.0f;
|
float shadescale = 1.0f;
|
||||||
int32_t shadescale_unbounded = 0;
|
int32_t shadescale_unbounded = 0;
|
||||||
|
|
||||||
int32_t r_usenewshading = 2;
|
int32_t r_usenewshading = 3;
|
||||||
int32_t r_usetileshades = 1;
|
int32_t r_usetileshades = 1;
|
||||||
|
|
||||||
static double gviewxrange, ghoriz;
|
static double gviewxrange, ghoriz;
|
||||||
|
@ -484,7 +484,7 @@ void polymost_glinit()
|
||||||
////////// VISIBILITY FOG ROUTINES //////////
|
////////// VISIBILITY FOG ROUTINES //////////
|
||||||
extern char nofog; // in windows/SDL layers
|
extern char nofog; // in windows/SDL layers
|
||||||
|
|
||||||
// only for r_usenewshading!=2 (not preferred)
|
// only for r_usenewshading < 2 (not preferred)
|
||||||
static void fogcalc_old(int32_t shade, int32_t vis)
|
static void fogcalc_old(int32_t shade, int32_t vis)
|
||||||
{
|
{
|
||||||
float f;
|
float f;
|
||||||
|
@ -526,7 +526,7 @@ static inline void fogcalc(int32_t tile, int32_t shade, int32_t vis, int32_t pal
|
||||||
(!usemodels || md_tilehasmodel(tile, pal) < 0))
|
(!usemodels || md_tilehasmodel(tile, pal) < 0))
|
||||||
shade >>= 1;
|
shade >>= 1;
|
||||||
|
|
||||||
if (r_usenewshading!=2)
|
if (r_usenewshading < 2)
|
||||||
{
|
{
|
||||||
fogcalc_old(shade, vis);
|
fogcalc_old(shade, vis);
|
||||||
return;
|
return;
|
||||||
|
@ -539,7 +539,7 @@ static inline void fogcalc(int32_t tile, int32_t shade, int32_t vis, int32_t pal
|
||||||
|
|
||||||
if (combvis == 0)
|
if (combvis == 0)
|
||||||
{
|
{
|
||||||
if (shade > 0)
|
if (r_usenewshading == 2 && shade > 0)
|
||||||
{
|
{
|
||||||
// beg = -D*shade, end = D*(NUMSHADES-1-shade)
|
// beg = -D*shade, end = D*(NUMSHADES-1-shade)
|
||||||
// => end/beg = -(NUMSHADES-1-shade)/shade
|
// => end/beg = -(NUMSHADES-1-shade)/shade
|
||||||
|
@ -555,7 +555,7 @@ static inline void fogcalc(int32_t tile, int32_t shade, int32_t vis, int32_t pal
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
fogresult = -(FOGDISTCONST * shade)/combvis;
|
fogresult = (r_usenewshading == 3) ? 0 : -(FOGDISTCONST * shade)/combvis;
|
||||||
fogresult2 = (FOGDISTCONST * (numshades-1-shade))/combvis;
|
fogresult2 = (FOGDISTCONST * (numshades-1-shade))/combvis;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -568,7 +568,7 @@ void calc_and_apply_fog(int32_t tile, int32_t shade, int32_t vis, int32_t pal)
|
||||||
fogcalc(tile, shade, vis, pal);
|
fogcalc(tile, shade, vis, pal);
|
||||||
bglFogfv(GL_FOG_COLOR, fogcol);
|
bglFogfv(GL_FOG_COLOR, fogcol);
|
||||||
|
|
||||||
if (r_usenewshading!=2)
|
if (r_usenewshading < 2)
|
||||||
{
|
{
|
||||||
bglFogf(GL_FOG_DENSITY, fogresult);
|
bglFogf(GL_FOG_DENSITY, fogresult);
|
||||||
return;
|
return;
|
||||||
|
@ -583,12 +583,12 @@ 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
|
// NOTE: for r_usenewshading >= 2, the fog beginning/ending distance results are
|
||||||
// unused.
|
// unused.
|
||||||
fogcalc(tile, shade, vis, pal);
|
fogcalc(tile, shade, vis, pal);
|
||||||
bglFogfv(GL_FOG_COLOR, fogcol);
|
bglFogfv(GL_FOG_COLOR, fogcol);
|
||||||
|
|
||||||
if (r_usenewshading!=2)
|
if (r_usenewshading < 2)
|
||||||
{
|
{
|
||||||
bglFogf(GL_FOG_DENSITY, fogresult*factor);
|
bglFogf(GL_FOG_DENSITY, fogresult*factor);
|
||||||
return;
|
return;
|
||||||
|
@ -4949,7 +4949,7 @@ int32_t polymost_printext256(int32_t xpos, int32_t ypos, int16_t col, int16_t ba
|
||||||
bglDepthMask(GL_FALSE); // disable writing to the z-buffer
|
bglDepthMask(GL_FALSE); // disable writing to the z-buffer
|
||||||
|
|
||||||
bglPushAttrib(GL_POLYGON_BIT|GL_ENABLE_BIT);
|
bglPushAttrib(GL_POLYGON_BIT|GL_ENABLE_BIT);
|
||||||
// XXX: Don't fogify the OSD text in Mapster32 with r_usenewshading=2.
|
// XXX: Don't fogify the OSD text in Mapster32 with r_usenewshading >= 2.
|
||||||
bglDisable(GL_FOG);
|
bglDisable(GL_FOG);
|
||||||
// We want to have readable text in wireframe mode, too:
|
// We want to have readable text in wireframe mode, too:
|
||||||
bglPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
bglPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
|
||||||
|
@ -5164,7 +5164,7 @@ void polymost_initosdfuncs(void)
|
||||||
{ "r_texturemaxsize","changes the maximum OpenGL texture size limit",(void *) &gltexmaxsize, CVAR_INT | CVAR_NOSAVE, 0, 4096 },
|
{ "r_texturemaxsize","changes the maximum OpenGL texture size limit",(void *) &gltexmaxsize, CVAR_INT | CVAR_NOSAVE, 0, 4096 },
|
||||||
{ "r_texturemiplevel","changes the highest OpenGL mipmap level used",(void *) &gltexmiplevel, CVAR_INT, 0, 6 },
|
{ "r_texturemiplevel","changes the highest OpenGL mipmap level used",(void *) &gltexmiplevel, CVAR_INT, 0, 6 },
|
||||||
{ "r_texturemode", "changes the texture filtering settings", (void *) &gltexfiltermode, CVAR_INT|CVAR_FUNCPTR, 0, 5 },
|
{ "r_texturemode", "changes the texture filtering settings", (void *) &gltexfiltermode, CVAR_INT|CVAR_FUNCPTR, 0, 5 },
|
||||||
{ "r_usenewshading", "visibility code: 0: Polymost, 2: Classic", (void *) &r_usenewshading, CVAR_INT, 0, 2 },
|
{ "r_usenewshading", "visibility code: 0: Polymost, 2: Classic", (void *) &r_usenewshading, CVAR_INT, 0, 3 },
|
||||||
{ "r_usetileshades", "enable/disable Polymost tile shade textures", (void *) &r_usetileshades, CVAR_INT | CVAR_INVALIDATEART, 0, 2 },
|
{ "r_usetileshades", "enable/disable Polymost tile shade textures", (void *) &r_usetileshades, CVAR_INT | CVAR_INVALIDATEART, 0, 2 },
|
||||||
{ "r_vbocount","sets the number of Vertex Buffer Objects to use when drawing models",(void *) &r_vbocount, CVAR_INT, 1, 256 },
|
{ "r_vbocount","sets the number of Vertex Buffer Objects to use when drawing models",(void *) &r_vbocount, CVAR_INT, 1, 256 },
|
||||||
{ "r_vbos"," enable/disable using Vertex Buffer Objects when drawing models",(void *) &r_vbos, CVAR_BOOL, 0, 1 },
|
{ "r_vbos"," enable/disable using Vertex Buffer Objects when drawing models",(void *) &r_vbos, CVAR_BOOL, 0, 1 },
|
||||||
|
|
Loading…
Reference in a new issue