Tweak the dither math.
This commit is contained in:
parent
a0521259a7
commit
05b33078fb
5 changed files with 12 additions and 6 deletions
|
|
@ -120,7 +120,7 @@ nosave int mfx_palnum = 0;
|
|||
nosave float mfx_palsat = 1.;
|
||||
nosave float mfx_palpow = 1.;
|
||||
nosave int mfx_paldither = 3;
|
||||
nosave int mfx_paldepth = 6;
|
||||
nosave int mfx_paldepth = 8;
|
||||
|
||||
nosave string mfx_presetname = "Unnamed";
|
||||
|
||||
|
|
|
|||
|
|
@ -78,6 +78,7 @@ MFX_PALETTE61="RGB3";
|
|||
MFX_PALETTE62="RGB4";
|
||||
MFX_PALETTE63="RGB5";
|
||||
MFX_PALETTE64="RGB6";
|
||||
MFX_DITHER0="No Dither";
|
||||
MFX_DITHER1="Checkerboard";
|
||||
MFX_DITHER2="Bayer 2x2";
|
||||
MFX_DITHER3="Bayer 4x4";
|
||||
|
|
|
|||
|
|
@ -107,6 +107,7 @@ OptionValue "MFXPalette"
|
|||
|
||||
OptionValue "MFXDither"
|
||||
{
|
||||
-1, "$MFX_DITHER0"
|
||||
0, "$MFX_DITHER1"
|
||||
1, "$MFX_DITHER2"
|
||||
2, "$MFX_DITHER3"
|
||||
|
|
@ -318,6 +319,6 @@ OptionMenu "MFXOptionsMenu"
|
|||
MFXSlider "$MFX_PALSAT", "mfx_palsat", 0, 2, 0.01, 2
|
||||
MFXSlider "$MFX_PALPOW", "mfx_palpow", 0, 2, 0.01, 2
|
||||
Option "$MFX_PALDITHER", "mfx_paldither", "MFXDither"
|
||||
MFXSlider "$MFX_PALDEPTH", "mfx_paldepth", 1, 6, 1, 0
|
||||
MFXSlider "$MFX_PALDEPTH", "mfx_paldepth", 1, 16, 1, 0
|
||||
SafeCommand "$MFX_RESET", "event resetmfxvars 7"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,8 +35,8 @@ void main()
|
|||
float dth = texelFetch(DitherTexture,dcoord,0).x*.9375+.03125;
|
||||
vec3 thr = vec3(step(dth,cf.r),step(dth,cf.g),step(dth,cf.b));
|
||||
res.rgb = mix(cl,ch,thr);
|
||||
vec3 lc = clamp(floor(res.rgb*64.),0.,63.);
|
||||
ivec2 lcoord = ivec2(lc.r,lc.g+lc.b*64);
|
||||
vec3 lc = clamp(floor(res.rgb*63.),0.,63.);
|
||||
ivec2 lcoord = ivec2(int(lc.r),int(lc.g)+int(lc.b)*64);
|
||||
lcoord.x += 64*palnum;
|
||||
res.rgb = texelFetch(PalLUTTexture,lcoord,0).rgb;
|
||||
FragColor = res;
|
||||
|
|
|
|||
|
|
@ -164,9 +164,13 @@ Class MariFXHandler : StaticEventHandler
|
|||
Shader.SetUniform2f(p,"mfx_palette","sfact",mfx_retroenable?bresl:rresl);
|
||||
Shader.SetUniform1f(p,"mfx_palette","palsat",mfx_palsat);
|
||||
Shader.SetUniform1f(p,"mfx_palette","palpow",mfx_palpow);
|
||||
Shader.SetUniform1i(p,"mfx_palette","paldepth",mfx_paldepth);
|
||||
Shader.SetUniform1i(p,"mfx_palette","paldepth",int(2.**mfx_paldepth)-1);
|
||||
switch ( mfx_paldither )
|
||||
{
|
||||
case 0:
|
||||
Shader.SetUniform1i(p,"mfx_palette","dsize",2);
|
||||
Shader.SetUniform1i(p,"mfx_palette","doffset",0);
|
||||
break;
|
||||
case 1:
|
||||
Shader.SetUniform1i(p,"mfx_palette","dsize",2);
|
||||
Shader.SetUniform1i(p,"mfx_palette","doffset",2);
|
||||
|
|
@ -184,7 +188,7 @@ Class MariFXHandler : StaticEventHandler
|
|||
Shader.SetUniform1i(p,"mfx_palette","doffset",16);
|
||||
break;
|
||||
default:
|
||||
Shader.SetUniform1i(p,"mfx_palette","dsize",2);
|
||||
Shader.SetUniform1i(p,"mfx_palette","dsize",1);
|
||||
Shader.SetUniform1i(p,"mfx_palette","doffset",0);
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue