mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-25 11:10:47 +00:00
Change highpal maps to 6-bit and add corresponding scale and bias to bypass linear interpolation around the borders.
git-svn-id: https://svn.eduke32.com/eduke32@1783 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
87b71fd3da
commit
32d58b3839
2 changed files with 14 additions and 4 deletions
|
@ -157,7 +157,9 @@ typedef struct s_prrograminfo {
|
||||||
} _prprograminfo;
|
} _prprograminfo;
|
||||||
|
|
||||||
#define PR_INFO_LOG_BUFFER_SIZE 8192
|
#define PR_INFO_LOG_BUFFER_SIZE 8192
|
||||||
#define PR_HIGHPALOOKUP_BIT_DEPTH 7
|
|
||||||
|
// Think about changing highPal[Scale|Bias] in the program bit if you change this
|
||||||
|
#define PR_HIGHPALOOKUP_BIT_DEPTH 6
|
||||||
#define PR_HIGHPALOOKUP_DIM (1 << PR_HIGHPALOOKUP_BIT_DEPTH)
|
#define PR_HIGHPALOOKUP_DIM (1 << PR_HIGHPALOOKUP_BIT_DEPTH)
|
||||||
#define PR_HIGHPALOOKUP_DATA_SIZE (4 * PR_HIGHPALOOKUP_DIM * \
|
#define PR_HIGHPALOOKUP_DATA_SIZE (4 * PR_HIGHPALOOKUP_DIM * \
|
||||||
PR_HIGHPALOOKUP_DIM * \
|
PR_HIGHPALOOKUP_DIM * \
|
||||||
|
|
|
@ -319,9 +319,12 @@ _prprogrambit prprogrambits[PR_BIT_COUNT] = {
|
||||||
"uniform sampler3D highPalookupMap;\n"
|
"uniform sampler3D highPalookupMap;\n"
|
||||||
"\n",
|
"\n",
|
||||||
// frag_prog
|
// frag_prog
|
||||||
|
" float highPalScale = 0.9921875; // for 6 bits\n"
|
||||||
|
" float highPalBias = 0.00390625;\n"
|
||||||
|
"\n"
|
||||||
" if (isLightingPass == 0)\n"
|
" if (isLightingPass == 0)\n"
|
||||||
" result.rgb = texture3D(highPalookupMap, result.rgb).rgb;\n"
|
" result.rgb = texture3D(highPalookupMap, result.rgb * highPalScale + highPalBias).rgb;\n"
|
||||||
" diffuseTexel.rgb = texture3D(highPalookupMap, diffuseTexel.rgb).rgb;\n"
|
" diffuseTexel.rgb = texture3D(highPalookupMap, diffuseTexel.rgb * highPalScale + highPalBias).rgb;\n"
|
||||||
"\n",
|
"\n",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -3988,6 +3991,10 @@ static void polymer_drawmdsprite(spritetype *tspr)
|
||||||
foundpalskin = 1;
|
foundpalskin = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If we have a global palette tint, the palskin won't do us any good
|
||||||
|
if (curbasepal)
|
||||||
|
foundpalskin = 0;
|
||||||
|
|
||||||
if (!foundpalskin && usinghighpal) {
|
if (!foundpalskin && usinghighpal) {
|
||||||
// We don't have a specific skin defined for this palette
|
// We don't have a specific skin defined for this palette
|
||||||
// Use the base skin instead and plug in our highpalookup map
|
// Use the base skin instead and plug in our highpalookup map
|
||||||
|
@ -4181,7 +4188,8 @@ static void polymer_getbuildmaterial(_prmaterial* material, int16_t tile
|
||||||
|
|
||||||
// PR_BIT_HIGHPALOOKUP_MAP
|
// PR_BIT_HIGHPALOOKUP_MAP
|
||||||
if (pr_highpalookups && prhighpalookups[curbasepal][pal].map &&
|
if (pr_highpalookups && prhighpalookups[curbasepal][pal].map &&
|
||||||
hicfindsubst(tilenum, 0, 0) && (hicfindsubst(tilenum, pal, 0)->palnum != pal))
|
hicfindsubst(tilenum, 0, 0) &&
|
||||||
|
(curbasepal || (hicfindsubst(tilenum, pal, 0)->palnum != pal)))
|
||||||
{
|
{
|
||||||
material->highpalookupmap = prhighpalookups[curbasepal][pal].map;
|
material->highpalookupmap = prhighpalookups[curbasepal][pal].map;
|
||||||
pal = 0;
|
pal = 0;
|
||||||
|
|
Loading…
Reference in a new issue