mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'fade-strength' into 'master'
Alpha value for fade colormaps + colormap bug See merge request KartKrew/Kart!477
This commit is contained in:
commit
83988a1cd8
3 changed files with 15 additions and 16 deletions
|
|
@ -284,7 +284,7 @@ struct FSurfaceInfo
|
|||
typedef struct FSurfaceInfo FSurfaceInfo;
|
||||
|
||||
#define GL_DEFAULTMIX 0x00000000
|
||||
#define GL_DEFAULTFOG 0xFF000000
|
||||
#define GL_DEFAULTFOG 0x19000000
|
||||
|
||||
//Hurdler: added for backward compatibility
|
||||
enum hwdsetspecialstate
|
||||
|
|
|
|||
|
|
@ -715,14 +715,15 @@ static GLRGBAFloat shader_defaultcolor = {1.0f, 1.0f, 1.0f, 1.0f};
|
|||
"float colorBrightness = sqrt((final_color.r * final_color.r) + (final_color.g * final_color.g) + (final_color.b * final_color.b));\n" \
|
||||
"float fogBrightness = sqrt((fade_color.r * fade_color.r) + (fade_color.g * fade_color.g) + (fade_color.b * fade_color.b));\n" \
|
||||
"float colorIntensity = 0.0;\n" \
|
||||
"if (fogBrightness > colorBrightness) {\n" \
|
||||
"if (colorBrightness < fogBrightness) {\n" \
|
||||
"colorIntensity = 1.0 - min(final_color.r, min(final_color.g, final_color.b));\n" \
|
||||
"colorIntensity = abs(colorIntensity - (1.0 - fogBrightness));\n" \
|
||||
"colorIntensity = abs(colorIntensity - (1.0 - max(fade_color.r, max(fade_color.g, fade_color.b))));\n" \
|
||||
"} else {\n" \
|
||||
"colorIntensity = max(final_color.r, max(final_color.g, final_color.b));\n" \
|
||||
"colorIntensity = abs(colorIntensity - (fogBrightness));\n" \
|
||||
"colorIntensity = abs(colorIntensity - min(fade_color.r, min(fade_color.g, fade_color.b)));\n" \
|
||||
"}\n" \
|
||||
"colorIntensity *= darkness;\n" \
|
||||
"colorIntensity *= fade_color.a * 10.0;\n" \
|
||||
"if (abs(final_color.r - fade_color.r) <= colorIntensity) {\n" \
|
||||
"final_color.r = fade_color.r;\n" \
|
||||
"} else if (final_color.r < fade_color.r) {\n" \
|
||||
|
|
|
|||
22
src/r_data.c
22
src/r_data.c
|
|
@ -615,6 +615,7 @@ lighttable_t *R_CreateLightTable(extracolormap_t *extra_colormap)
|
|||
{
|
||||
double cmaskr, cmaskg, cmaskb, cdestr, cdestg, cdestb, cdestbright;
|
||||
double maskamt = 0, othermask = 0;
|
||||
double fmaskamt = 0, fothermask = 0;
|
||||
|
||||
UINT8 cr = R_GetRgbaR(extra_colormap->rgba),
|
||||
cg = R_GetRgbaG(extra_colormap->rgba),
|
||||
|
|
@ -622,8 +623,8 @@ lighttable_t *R_CreateLightTable(extracolormap_t *extra_colormap)
|
|||
ca = R_GetRgbaA(extra_colormap->rgba),
|
||||
cfr = R_GetRgbaR(extra_colormap->fadergba),
|
||||
cfg = R_GetRgbaG(extra_colormap->fadergba),
|
||||
cfb = R_GetRgbaB(extra_colormap->fadergba);
|
||||
// cfa = R_GetRgbaA(extra_colormap->fadergba); // unused in software
|
||||
cfb = R_GetRgbaB(extra_colormap->fadergba),
|
||||
cfa = R_GetRgbaA(extra_colormap->fadergba);
|
||||
|
||||
UINT8 fadestart = extra_colormap->fadestart,
|
||||
fadedist = extra_colormap->fadeend - extra_colormap->fadestart;
|
||||
|
|
@ -654,14 +655,11 @@ lighttable_t *R_CreateLightTable(extracolormap_t *extra_colormap)
|
|||
cdestb = cfb;
|
||||
cdestbright = sqrt((cfr*cfr) + (cfg*cfg) + (cfb*cfb));
|
||||
|
||||
// fade alpha unused in software
|
||||
// maskamt = (double)(cfa/24.0l);
|
||||
// othermask = 1 - maskamt;
|
||||
// maskamt /= 0xff;
|
||||
fmaskamt = (double)(cfa/24.0l);
|
||||
fothermask = 1 - fmaskamt;
|
||||
//fmaskamt /= 0xff;
|
||||
|
||||
// cdestr *= maskamt;
|
||||
// cdestg *= maskamt;
|
||||
// cdestb *= maskamt;
|
||||
(void)fothermask; // unused, but don't feel like commenting it out
|
||||
|
||||
/////////////////////
|
||||
// This code creates the colormap array used by software renderer
|
||||
|
|
@ -701,16 +699,16 @@ lighttable_t *R_CreateLightTable(extracolormap_t *extra_colormap)
|
|||
if (cbrightness < cdestbright)
|
||||
{
|
||||
cbest = 255.0l - min(r, min(g, b));
|
||||
cdist = 255.0l - cdestbright;
|
||||
cdist = 255.0l - max(cdestr, max(cdestg, cdestb));
|
||||
}
|
||||
else
|
||||
{
|
||||
cbest = max(r, max(g, b));
|
||||
cdist = cdestbright;
|
||||
cdist = min(cdestr, min(cdestg, cdestb));
|
||||
}
|
||||
|
||||
// Add/subtract this value during fading.
|
||||
brightChange[i] = fabs(cbest - cdist) / (double)fadedist;
|
||||
brightChange[i] = (fabs(cbest - cdist) / (double)fadedist) * fmaskamt;
|
||||
}
|
||||
|
||||
// Now allocate memory for the actual colormap array itself!
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue