MariENB Skyrim 2.7.0
This commit is contained in:
parent
b7c83e4151
commit
3024ce66bc
20 changed files with 426 additions and 888 deletions
|
|
@ -1 +1 @@
|
||||||
2.6.0sk "Suddenly Volumes"
|
2.7.0sk "Retro Retirement"
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,10 @@
|
||||||
[EFFECT.TXT]
|
[EFFECT.TXT]
|
||||||
TECHNIQUE=0
|
TECHNIQUE=0
|
||||||
Enable Block GFX=false
|
Enable Oil Filter=false
|
||||||
Emulated Resolution Width=0.0
|
Enable FXAA=false
|
||||||
Emulated Resolution Height=0.0
|
FXAA Span Max=4.0
|
||||||
Palette Type=3
|
FXAA Reduce Mul=16.0
|
||||||
CGA Palette=0
|
FXAA Reduce Min=128.0
|
||||||
EGA Palette=0
|
|
||||||
VGA Palette=6
|
|
||||||
Dithering Pattern=2
|
|
||||||
Contrast Modifier=1.2
|
|
||||||
Saturation Modifier=0.8
|
|
||||||
Dither Offset=-0.05
|
|
||||||
Dither Range=0.1
|
|
||||||
Enable Chroma Key=false
|
Enable Chroma Key=false
|
||||||
Chroma Key Red=1.0
|
Chroma Key Red=1.0
|
||||||
Chroma Key Green=0.0
|
Chroma Key Green=0.0
|
||||||
|
|
@ -21,6 +14,10 @@ Chroma Key Depth Horizontal Tilt Center=0.5
|
||||||
Chroma Key Depth Vertical Tilt Center=0.5
|
Chroma Key Depth Vertical Tilt Center=0.5
|
||||||
Chroma Key Depth Horizontal Tilt=0.0
|
Chroma Key Depth Horizontal Tilt=0.0
|
||||||
Chroma Key Depth Vertical Tilt=0.0
|
Chroma Key Depth Vertical Tilt=0.0
|
||||||
|
Enable Curvature=false
|
||||||
|
Curve Chromatic Aberration=0.62
|
||||||
|
Curve Zooming=50.34
|
||||||
|
Curve Distortion=0.0
|
||||||
Enable Blur=true
|
Enable Blur=true
|
||||||
Blur Sampling Range=0.17
|
Blur Sampling Range=0.17
|
||||||
Enable Sharp=true
|
Enable Sharp=true
|
||||||
|
|
@ -45,26 +42,37 @@ Border Blur Contrast=2.25
|
||||||
Border Blur Intensity=1.52
|
Border Blur Intensity=1.52
|
||||||
Border Blur Shift=0.0
|
Border Blur Shift=0.0
|
||||||
Border Blur Radius=1.0
|
Border Blur Radius=1.0
|
||||||
Enable Oil=false
|
Enable Color Matrix=false
|
||||||
Oil Radius=1.0
|
Color Matrix Red Red=1.0
|
||||||
Oil Smoothing Radius=1.0
|
Color Matrix Red Green=0.0
|
||||||
Enable ASCII=false
|
Color Matrix Red Blue=0.0
|
||||||
ASCII Monochrome=true
|
Color Matrix Green Red=0.0
|
||||||
ASCII Blend=0.0
|
Color Matrix Green Green=1.0
|
||||||
Enable Dot Matrix=false
|
Color Matrix Green Blue=0.0
|
||||||
Dot Size=1
|
Color Matrix Blue Red=0.0
|
||||||
Dot Blend=0.4
|
Color Matrix Blue Green=0.0
|
||||||
Dot Intensity=2.41
|
Color Matrix Blue Blue=1.0
|
||||||
Dot Contrast=1.25
|
Normalize Matrix=false
|
||||||
Enable Curvature=false
|
Enable Hue-Saturation=false
|
||||||
Curve Chromatic Aberration=0.62
|
Overlap=0.0
|
||||||
Curve Zooming=50.34
|
Global Hue=0.0
|
||||||
Curve Distortion=0.0
|
Global Saturation=0.0
|
||||||
Selected Filter=1
|
Global Value=0.0
|
||||||
Van Gogh Sky=false
|
Red Hue=0.0
|
||||||
Van Gogh Animation Speed=0.0
|
Red Saturation=0.0
|
||||||
Enable Oil Filter=false
|
Red Value=0.0
|
||||||
Enable FXAA=false
|
Yellow Hue=0.0
|
||||||
FXAA Span Max=4.0
|
Yellow Saturation=0.0
|
||||||
FXAA Reduce Mul=16.0
|
Yellow Value=0.0
|
||||||
FXAA Reduce Min=128.0
|
Green Hue=0.0
|
||||||
|
Green Saturation=0.0
|
||||||
|
Green Value=0.0
|
||||||
|
Cyan Hue=0.0
|
||||||
|
Cyan Saturation=0.0
|
||||||
|
Cyan Value=0.0
|
||||||
|
Blue Hue=0.0
|
||||||
|
Blue Saturation=0.0
|
||||||
|
Blue Value=0.0
|
||||||
|
Magenta Hue=0.0
|
||||||
|
Magenta Saturation=0.0
|
||||||
|
Magenta Value=0.0
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,11 @@ Grain Pass 2 Magnification 2=9.42
|
||||||
Grain Pass 2 Magnification 3=6.29
|
Grain Pass 2 Magnification 3=6.29
|
||||||
Grain Contrast=6.61
|
Grain Contrast=6.61
|
||||||
Apply Grain Before Tone Mapping=true
|
Apply Grain Before Tone Mapping=true
|
||||||
|
Enable Dirt=false
|
||||||
|
Dirt Coord Factor=0.34
|
||||||
|
Dirt Luminance Factor=-0.37
|
||||||
|
Dirt Coord Zoom=3.38
|
||||||
|
Dirt Luminance Zoom=1.19
|
||||||
Enable Adaptation=true
|
Enable Adaptation=true
|
||||||
Adaptation Min Night=0.32
|
Adaptation Min Night=0.32
|
||||||
Adaptation Min Day=0.61
|
Adaptation Min Day=0.61
|
||||||
|
|
@ -82,38 +87,6 @@ Uncharted2 Linear White Night=14.32
|
||||||
Uncharted2 Linear White Day=19.109999
|
Uncharted2 Linear White Day=19.109999
|
||||||
Uncharted2 Linear White Interior Night=14.339999
|
Uncharted2 Linear White Interior Night=14.339999
|
||||||
Uncharted2 Linear White Interior Day=18.869997
|
Uncharted2 Linear White Interior Day=18.869997
|
||||||
SweetFX Gamma Night=1.0
|
|
||||||
SweetFX Gamma Day=1.0
|
|
||||||
SweetFX Gamma Interior Night=1.0
|
|
||||||
SweetFX Gamma Interior Day=1.0
|
|
||||||
SweetFX Exposure Night=0.0
|
|
||||||
SweetFX Exposure Day=0.0
|
|
||||||
SweetFX Exposure Interior Night=0.0
|
|
||||||
SweetFX Exposure Interior Day=0.0
|
|
||||||
SweetFX Saturation Night=0.0
|
|
||||||
SweetFX Saturation Day=0.0
|
|
||||||
SweetFX Saturation Interior Night=0.0
|
|
||||||
SweetFX Saturation Interior Day=0.0
|
|
||||||
SweetFX Bleach Night=0.0
|
|
||||||
SweetFX Bleach Day=0.0
|
|
||||||
SweetFX Bleach Interior Night=0.0
|
|
||||||
SweetFX Bleach Interior Day=0.0
|
|
||||||
SweetFX Defog Night=0.0
|
|
||||||
SweetFX Defog Day=0.0
|
|
||||||
SweetFX Defog Interior Night=0.0
|
|
||||||
SweetFX Defog Interior Day=0.0
|
|
||||||
SweetFX Defog Color Red Night=0.0
|
|
||||||
SweetFX Defog Color Green Night=0.0
|
|
||||||
SweetFX Defog Color Blue Night=1.0
|
|
||||||
SweetFX Defog Color Red Day=0.0
|
|
||||||
SweetFX Defog Color Green Day=0.0
|
|
||||||
SweetFX Defog Color Blue Day=1.0
|
|
||||||
SweetFX Defog Color Red Interior Night=0.0
|
|
||||||
SweetFX Defog Color Green Interior Night=0.0
|
|
||||||
SweetFX Defog Color Blue Interior Night=1.0
|
|
||||||
SweetFX Defog Color Red Interior Day=0.0
|
|
||||||
SweetFX Defog Color Green Interior Day=0.0
|
|
||||||
SweetFX Defog Color Blue Interior Day=1.0
|
|
||||||
Enable RGB Grading=true
|
Enable RGB Grading=true
|
||||||
Grading Intensity Night Red=0.97
|
Grading Intensity Night Red=0.97
|
||||||
Grading Intensity Night Green=0.96
|
Grading Intensity Night Green=0.96
|
||||||
|
|
@ -187,16 +160,8 @@ LUT Blend Night=0.25
|
||||||
LUT Blend Day=0.28
|
LUT Blend Day=0.28
|
||||||
LUT Blend Interior Night=0.22
|
LUT Blend Interior Night=0.22
|
||||||
LUT Blend Interior Day=0.26
|
LUT Blend Interior Day=0.26
|
||||||
Enable ENB Palette=false
|
|
||||||
Palette Blend=1.0
|
|
||||||
Enable Technicolor=true
|
Enable Technicolor=true
|
||||||
Technicolor Blend=0.6
|
Technicolor Blend=0.6
|
||||||
Enable Post Dither=true
|
Enable Post Dither=true
|
||||||
Dither Pattern=2
|
Dither Pattern=2
|
||||||
Display Bloom=false
|
Display Bloom=false
|
||||||
Enable Dirt=false
|
|
||||||
Dirt Factor=0.35
|
|
||||||
Dirt Coord Factor=0.34
|
|
||||||
Dirt Luminance Factor=-0.37
|
|
||||||
Dirt Coord Zoom=3.38
|
|
||||||
Dirt Luminance Zoom=1.19
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,37 @@ Edgevision Fade Intensity Interior Day=590.840027
|
||||||
Edgevision Contrast=0.25
|
Edgevision Contrast=0.25
|
||||||
Edgevision Intensity=8.0
|
Edgevision Intensity=8.0
|
||||||
Edgevision Radius=1.0
|
Edgevision Radius=1.0
|
||||||
|
Invert Edgevision=false
|
||||||
|
Blend Edgevision=false
|
||||||
|
Enable Edge Detect=false
|
||||||
|
Edge Detect Contrast=0.85
|
||||||
|
Edge Detect Intensity=0.25
|
||||||
|
Edge Detect Radius=1.0
|
||||||
|
Invert Edge Detect=false
|
||||||
|
Blend Edge Detect=false
|
||||||
|
Enable Linevision=false
|
||||||
|
Linevision Fade Contrast Night=1.24
|
||||||
|
Linevision Fade Contrast Day=1.12
|
||||||
|
Linevision Fade Contrast Interior Night=1.41
|
||||||
|
Linevision Fade Contrast Interior Day=1.33
|
||||||
|
Linevision Fade Intensity Night=692.630005
|
||||||
|
Linevision Fade Intensity Day=793.580017
|
||||||
|
Linevision Fade Intensity Interior Night=484.679993
|
||||||
|
Linevision Fade Intensity Interior Day=590.840027
|
||||||
|
Linevision Contrast=1.0
|
||||||
|
Linevision Intensity=1.0
|
||||||
|
Linevision Radius=1.0
|
||||||
|
Linevision Threshold=0.1
|
||||||
|
Invert Linevision=false
|
||||||
|
Blend Linevision=false
|
||||||
|
Enable Custom Fog=false
|
||||||
|
Fog Contrast=1.0
|
||||||
|
Fog Intensity=1.0
|
||||||
|
Fog Shift=0.0
|
||||||
|
Fog ColorX=1.0
|
||||||
|
Fog ColorY=1.0
|
||||||
|
Fog ColorZ=1.0
|
||||||
|
Limbo Mode=false
|
||||||
Enable SSAO=false
|
Enable SSAO=false
|
||||||
SSAO Radius=0.05
|
SSAO Radius=0.05
|
||||||
SSAO Noise=0
|
SSAO Noise=0
|
||||||
|
|
@ -44,6 +75,7 @@ SSAO Fade Intensity Interior Night=481.650024
|
||||||
SSAO Fade Intensity Interior Day=573.030029
|
SSAO Fade Intensity Interior Day=573.030029
|
||||||
SSAO Intensity=1.25
|
SSAO Intensity=1.25
|
||||||
SSAO Contrast=0.65
|
SSAO Contrast=0.65
|
||||||
|
SSAO Shift=-0.25
|
||||||
SSAO Blending=0.8
|
SSAO Blending=0.8
|
||||||
SSAO Blur=true
|
SSAO Blur=true
|
||||||
SSAO Bilateral Factor=1500.0
|
SSAO Bilateral Factor=1500.0
|
||||||
|
|
@ -132,56 +164,3 @@ Grading Value Contrast Day=0.78
|
||||||
Grading Value Contrast Interior Night=0.58
|
Grading Value Contrast Interior Night=0.58
|
||||||
Grading Value Contrast Interior Day=0.64
|
Grading Value Contrast Interior Day=0.64
|
||||||
Colorize After HSV=true
|
Colorize After HSV=true
|
||||||
Invert Edgevision=false
|
|
||||||
Enable Edge Detect=false
|
|
||||||
Edge Detect Contrast=0.85
|
|
||||||
Edge Detect Intensity=0.25
|
|
||||||
Edge Detect Radius=1.0
|
|
||||||
Invert Edge Detect=false
|
|
||||||
Enable Linevision=false
|
|
||||||
Linevision Fade Contrast Night=1.24
|
|
||||||
Linevision Fade Contrast Day=1.12
|
|
||||||
Linevision Fade Contrast Interior Night=1.41
|
|
||||||
Linevision Fade Contrast Interior Day=1.33
|
|
||||||
Linevision Fade Intensity Night=692.630005
|
|
||||||
Linevision Fade Intensity Day=793.580017
|
|
||||||
Linevision Fade Intensity Interior Night=484.679993
|
|
||||||
Linevision Fade Intensity Interior Day=590.840027
|
|
||||||
Linevision Contrast=1.0
|
|
||||||
Linevision Intensity=1.0
|
|
||||||
Linevision Radius=1.0
|
|
||||||
Linevision Threshold=0.1
|
|
||||||
Invert Linevision=false
|
|
||||||
Enable Spooky Fog=false
|
|
||||||
Limbo Contrast=0.65
|
|
||||||
Limbo Intensity=10.0
|
|
||||||
Enable Cardboard=false
|
|
||||||
Cardboard Fade Contrast Night=1.82
|
|
||||||
Cardboard Fade Contrast Day=1.86
|
|
||||||
Cardboard Fade Contrast Interior Night=2.9
|
|
||||||
Cardboard Fade Contrast Interior Day=3.0
|
|
||||||
Cardboard Fade Intensity Night=700.0
|
|
||||||
Cardboard Fade Intensity Day=800.0
|
|
||||||
Cardboard Fade Intensity Interior Night=500.0
|
|
||||||
Cardboard Fade Intensity Interior Day=600.0
|
|
||||||
Cardboard Contrast=1.0
|
|
||||||
Cardboard Intensity=1.0
|
|
||||||
Invert Cardboard=false
|
|
||||||
Blend Edgevision=false
|
|
||||||
Blend Edge Detect=false
|
|
||||||
Blend Linevision=false
|
|
||||||
Limbo ColorX=1.0
|
|
||||||
Limbo ColorY=1.0
|
|
||||||
Limbo ColorZ=1.0
|
|
||||||
Blend Limbo=false
|
|
||||||
Enable Custom Fog=false
|
|
||||||
Fog Contrast=1.0
|
|
||||||
Fog Intensity=1.0
|
|
||||||
Fog Shift=0.0
|
|
||||||
Fog ColorX=1.0
|
|
||||||
Fog ColorY=1.0
|
|
||||||
Fog ColorZ=1.0
|
|
||||||
Limbo Mode=false
|
|
||||||
SSAO Shift=-0.25
|
|
||||||
Debug Mask Texture=-1
|
|
||||||
Debug Test=-1
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 24 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.4 KiB |
|
|
@ -331,68 +331,24 @@ float3 GradingGame( float3 res )
|
||||||
/* LUT colour grading */
|
/* LUT colour grading */
|
||||||
float3 GradingLUT( float3 res )
|
float3 GradingLUT( float3 res )
|
||||||
{
|
{
|
||||||
#ifdef VOLUME_LUTS
|
|
||||||
/*
|
/*
|
||||||
volume maps are SO MUCH BETTER on the shader side, no ugly
|
Volume maps are SO MUCH BETTER on the shader side, no ugly
|
||||||
interpolation hacks are needed to work around sampling quirks,
|
interpolation hacks are needed to work around sampling quirks,
|
||||||
and the code is EXTREMELY simplified as a result
|
and the code is EXTREMELY simplified as a result.
|
||||||
|
|
||||||
|
Seriously, it's just as simple as using the screen rgb values
|
||||||
|
as xyz coordinates, nothing more, it maps exactly 1:1. Additionally,
|
||||||
|
the LUTs can have any arbitrary width, height and depth.
|
||||||
|
|
||||||
|
It's also possible to use RGBA32F color on the LUT side, but that's
|
||||||
|
a bit more complicated to set up for the user. GIMP doesn't support
|
||||||
|
that format yet, dunno about Photoshop.
|
||||||
*/
|
*/
|
||||||
float3 tcl_n = tex3D(SamplerLUTN,res).rgb;
|
float3 tcl_n = tex3D(SamplerLUTN,res).rgb;
|
||||||
float3 tcl_d = tex3D(SamplerLUTD,res).rgb;
|
float3 tcl_d = tex3D(SamplerLUTD,res).rgb;
|
||||||
float3 tcl_in = tex3D(SamplerLUTIN,res).rgb;
|
float3 tcl_in = tex3D(SamplerLUTIN,res).rgb;
|
||||||
float3 tcl_id = tex3D(SamplerLUTID,res).rgb;
|
float3 tcl_id = tex3D(SamplerLUTID,res).rgb;
|
||||||
float3 tcol = tod_ind(tcl);
|
float3 tcol = tod_ind(tcl);
|
||||||
#else
|
|
||||||
#ifdef LUTMODE_LEGACY
|
|
||||||
float3 tcol = clamp(res,0.08,0.92);
|
|
||||||
tcol.rg = tcol.rg*0.5+0.25;
|
|
||||||
float2 lc1 = float2(tcol.r/16.0+floor(tcol.b*16.0)/16.0,tcol.g/64.0);
|
|
||||||
float2 lc2 = float2(tcol.r/16.0+ceil(tcol.b*16.0)/16.0,tcol.g/64.0);
|
|
||||||
float dec = (ceil(tcol.b*16.0)==16.0)?(0.0):frac(tcol.b*16.0);
|
|
||||||
/* night samples */
|
|
||||||
float3 tcl1_n = tex2D(SamplerLUT,lc1+float2(0,clut_n/64.0)).rgb;
|
|
||||||
float3 tcl2_n = tex2D(SamplerLUT,lc2+float2(0,clut_n/64.0)).rgb;
|
|
||||||
/* day samples */
|
|
||||||
float3 tcl1_d = tex2D(SamplerLUT,lc1+float2(0,clut_d/64.0)).rgb;
|
|
||||||
float3 tcl2_d = tex2D(SamplerLUT,lc2+float2(0,clut_d/64.0)).rgb;
|
|
||||||
/* interior night samples */
|
|
||||||
float3 tcl1_in = tex2D(SamplerLUT,lc1+float2(0,clut_in/64.0)).rgb;
|
|
||||||
float3 tcl2_in = tex2D(SamplerLUT,lc2+float2(0,clut_in/64.0)).rgb;
|
|
||||||
/* interior day samples */
|
|
||||||
float3 tcl1_id = tex2D(SamplerLUT,lc1+float2(0,clut_id/64.0)).rgb;
|
|
||||||
float3 tcl2_id = tex2D(SamplerLUT,lc2+float2(0,clut_id/64.0)).rgb;
|
|
||||||
#else
|
|
||||||
#ifdef LUTMODE_16
|
|
||||||
float3 tcol = clamp(res,0.08,0.92);
|
|
||||||
tcol.rg = tcol.rg*0.5+0.25;
|
|
||||||
float2 lc1 = float2(tcol.r,tcol.g/16.0+floor(tcol.b*16.0)/16.0);
|
|
||||||
float2 lc2 = float2(tcol.r,tcol.g/16.0+ceil(tcol.b*16.0)/16.0);
|
|
||||||
float dec = (ceil(tcol.b*16.0)==16.0)?(0.0):frac(tcol.b*16.0);
|
|
||||||
#endif
|
|
||||||
#ifdef LUTMODE_64
|
|
||||||
float3 tcol = clamp(res,0.02,0.98);
|
|
||||||
tcol.rg = tcol.rg*0.5+0.25;
|
|
||||||
float2 lc1 = float2(tcol.r,tcol.g/64.0+floor(tcol.b*64.0)/64.0);
|
|
||||||
float2 lc2 = float2(tcol.r,tcol.g/64.0+ceil(tcol.b*64.0)/64.0);
|
|
||||||
float dec = (ceil(tcol.b*64.0)==64.0)?(0.0):frac(tcol.b*64.0);
|
|
||||||
#endif
|
|
||||||
/* night samples */
|
|
||||||
float3 tcl1_n = tex2D(SamplerLUTN,lc1).rgb;
|
|
||||||
float3 tcl2_n = tex2D(SamplerLUTN,lc2).rgb;
|
|
||||||
/* day samples */
|
|
||||||
float3 tcl1_d = tex2D(SamplerLUTD,lc1).rgb;
|
|
||||||
float3 tcl2_d = tex2D(SamplerLUTD,lc2).rgb;
|
|
||||||
/* interior night samples */
|
|
||||||
float3 tcl1_in = tex2D(SamplerLUTIN,lc1).rgb;
|
|
||||||
float3 tcl2_in = tex2D(SamplerLUTIN,lc2).rgb;
|
|
||||||
/* interior day samples */
|
|
||||||
float3 tcl1_id = tex2D(SamplerLUTID,lc1).rgb;
|
|
||||||
float3 tcl2_id = tex2D(SamplerLUTID,lc2).rgb;
|
|
||||||
#endif
|
|
||||||
float3 tcl1 = tod_ind(tcl1);
|
|
||||||
float3 tcl2 = tod_ind(tcl2);
|
|
||||||
tcol = lerp(tcl1,tcl2,dec);
|
|
||||||
#endif
|
|
||||||
float lutblend = tod_ind(lutblend);
|
float lutblend = tod_ind(lutblend);
|
||||||
return lerp(res,tcol,lutblend);
|
return lerp(res,tcol,lutblend);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -60,88 +60,22 @@ texture2D texNoise3
|
||||||
<
|
<
|
||||||
string ResourceName = "menbnoise3.png";
|
string ResourceName = "menbnoise3.png";
|
||||||
>;
|
>;
|
||||||
#ifdef VOLUME_LUTS
|
|
||||||
texture3D texLUTN
|
texture3D texLUTN
|
||||||
<
|
<
|
||||||
#ifdef LUTMODE_16
|
string ResourceName = "menblut_night.dds";
|
||||||
string ResourceName = "menblut16v_night.dds";
|
|
||||||
#endif
|
|
||||||
#ifdef LUTMODE_64
|
|
||||||
string ResourceName = "menblut64v_night.dds";
|
|
||||||
#endif
|
|
||||||
>;
|
>;
|
||||||
texture3D texLUTD
|
texture3D texLUTD
|
||||||
<
|
<
|
||||||
#ifdef LUTMODE_16
|
string ResourceName = "menblut_day.dds";
|
||||||
string ResourceName = "menblut16v_day.dds";
|
|
||||||
#endif
|
|
||||||
#ifdef LUTMODE_64
|
|
||||||
string ResourceName = "menblut64v_day.dds";
|
|
||||||
#endif
|
|
||||||
>;
|
>;
|
||||||
texture3D texLUTIN
|
texture3D texLUTIN
|
||||||
<
|
<
|
||||||
#ifdef LUTMODE_16
|
string ResourceName = "menblut_interiornight.dds";
|
||||||
string ResourceName = "menblut16v_interiornight.dds";
|
|
||||||
#endif
|
|
||||||
#ifdef LUTMODE_64
|
|
||||||
string ResourceName = "menblut64v_interiornight.dds";
|
|
||||||
#endif
|
|
||||||
>;
|
>;
|
||||||
texture3D texLUTID
|
texture3D texLUTID
|
||||||
<
|
<
|
||||||
#ifdef LUTMODE_16
|
string ResourceName = "menblut_interiorday.dds";
|
||||||
string ResourceName = "menblut16v_interiorday.dds";
|
|
||||||
#endif
|
|
||||||
#ifdef LUTMODE_64
|
|
||||||
string ResourceName = "menblut64v_interiorday.dds";
|
|
||||||
#endif
|
|
||||||
>;
|
>;
|
||||||
#else
|
|
||||||
#ifdef LUTMODE_LEGACY
|
|
||||||
texture2D texLUT
|
|
||||||
<
|
|
||||||
string ResourceName = "menblutpreset.png";
|
|
||||||
>;
|
|
||||||
#else
|
|
||||||
texture2D texLUTN
|
|
||||||
<
|
|
||||||
#ifdef LUTMODE_16
|
|
||||||
string ResourceName = "menblut16_night.png";
|
|
||||||
#endif
|
|
||||||
#ifdef LUTMODE_64
|
|
||||||
string ResourceName = "menblut64_night.png";
|
|
||||||
#endif
|
|
||||||
>;
|
|
||||||
texture2D texLUTD
|
|
||||||
<
|
|
||||||
#ifdef LUTMODE_16
|
|
||||||
string ResourceName = "menblut16_day.png";
|
|
||||||
#endif
|
|
||||||
#ifdef LUTMODE_64
|
|
||||||
string ResourceName = "menblut64_day.png";
|
|
||||||
#endif
|
|
||||||
>;
|
|
||||||
texture2D texLUTIN
|
|
||||||
<
|
|
||||||
#ifdef LUTMODE_16
|
|
||||||
string ResourceName = "menblut16_interiornight.png";
|
|
||||||
#endif
|
|
||||||
#ifdef LUTMODE_64
|
|
||||||
string ResourceName = "menblut64_interiornight.png";
|
|
||||||
#endif
|
|
||||||
>;
|
|
||||||
texture2D texLUTID
|
|
||||||
<
|
|
||||||
#ifdef LUTMODE_16
|
|
||||||
string ResourceName = "menblut16_interiorday.png";
|
|
||||||
#endif
|
|
||||||
#ifdef LUTMODE_64
|
|
||||||
string ResourceName = "menblut64_interiorday.png";
|
|
||||||
#endif
|
|
||||||
>;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
texture2D texTonemap
|
texture2D texTonemap
|
||||||
<
|
<
|
||||||
string ResourceName = "menbfilmlut.png";
|
string ResourceName = "menbfilmlut.png";
|
||||||
|
|
@ -229,8 +163,8 @@ sampler2D _s7 = sampler_state
|
||||||
sampler2D SamplerNoise1 = sampler_state
|
sampler2D SamplerNoise1 = sampler_state
|
||||||
{
|
{
|
||||||
Texture = <texNoise1>;
|
Texture = <texNoise1>;
|
||||||
MinFilter = POINT;
|
MinFilter = LINEAR;
|
||||||
MagFilter = POINT;
|
MagFilter = LINEAR;
|
||||||
MipFilter = NONE;
|
MipFilter = NONE;
|
||||||
AddressU = Wrap;
|
AddressU = Wrap;
|
||||||
AddressV = Wrap;
|
AddressV = Wrap;
|
||||||
|
|
@ -242,7 +176,7 @@ sampler2D SamplerNoise2 = sampler_state
|
||||||
{
|
{
|
||||||
Texture = <texNoise2>;
|
Texture = <texNoise2>;
|
||||||
MinFilter = LINEAR;
|
MinFilter = LINEAR;
|
||||||
MagFilter = POINT;
|
MagFilter = LINEAR;
|
||||||
MipFilter = NONE;
|
MipFilter = NONE;
|
||||||
AddressU = Wrap;
|
AddressU = Wrap;
|
||||||
AddressV = Wrap;
|
AddressV = Wrap;
|
||||||
|
|
@ -262,7 +196,6 @@ sampler2D SamplerNoise3 = sampler_state
|
||||||
MaxMipLevel = 0;
|
MaxMipLevel = 0;
|
||||||
MipMapLodBias = 0;
|
MipMapLodBias = 0;
|
||||||
};
|
};
|
||||||
#ifdef VOLUME_LUTS
|
|
||||||
sampler3D SamplerLUTN = sampler_state
|
sampler3D SamplerLUTN = sampler_state
|
||||||
{
|
{
|
||||||
Texture = <texLUTN>;
|
Texture = <texLUTN>;
|
||||||
|
|
@ -315,71 +248,6 @@ sampler3D SamplerLUTID = sampler_state
|
||||||
MaxMipLevel = 0;
|
MaxMipLevel = 0;
|
||||||
MipMapLodBias = 0;
|
MipMapLodBias = 0;
|
||||||
};
|
};
|
||||||
#else
|
|
||||||
#ifdef LUTMODE_LEGACY
|
|
||||||
sampler2D SamplerLUT = sampler_state
|
|
||||||
{
|
|
||||||
Texture = <texLUT>;
|
|
||||||
MinFilter = LINEAR;
|
|
||||||
MagFilter = LINEAR;
|
|
||||||
MipFilter = NONE;
|
|
||||||
AddressU = Clamp;
|
|
||||||
AddressV = Clamp;
|
|
||||||
SRGBTexture = FALSE;
|
|
||||||
MaxMipLevel = 0;
|
|
||||||
MipMapLodBias = 0;
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
sampler2D SamplerLUTN = sampler_state
|
|
||||||
{
|
|
||||||
Texture = <texLUTN>;
|
|
||||||
MinFilter = LINEAR;
|
|
||||||
MagFilter = LINEAR;
|
|
||||||
MipFilter = NONE;
|
|
||||||
AddressU = Clamp;
|
|
||||||
AddressV = Clamp;
|
|
||||||
SRGBTexture = FALSE;
|
|
||||||
MaxMipLevel = 0;
|
|
||||||
MipMapLodBias = 0;
|
|
||||||
};
|
|
||||||
sampler2D SamplerLUTD = sampler_state
|
|
||||||
{
|
|
||||||
Texture = <texLUTD>;
|
|
||||||
MinFilter = LINEAR;
|
|
||||||
MagFilter = LINEAR;
|
|
||||||
MipFilter = NONE;
|
|
||||||
AddressU = Clamp;
|
|
||||||
AddressV = Clamp;
|
|
||||||
SRGBTexture = FALSE;
|
|
||||||
MaxMipLevel = 0;
|
|
||||||
MipMapLodBias = 0;
|
|
||||||
};
|
|
||||||
sampler2D SamplerLUTIN = sampler_state
|
|
||||||
{
|
|
||||||
Texture = <texLUTIN>;
|
|
||||||
MinFilter = LINEAR;
|
|
||||||
MagFilter = LINEAR;
|
|
||||||
MipFilter = NONE;
|
|
||||||
AddressU = Clamp;
|
|
||||||
AddressV = Clamp;
|
|
||||||
SRGBTexture = FALSE;
|
|
||||||
MaxMipLevel = 0;
|
|
||||||
MipMapLodBias = 0;
|
|
||||||
};
|
|
||||||
sampler2D SamplerLUTID = sampler_state
|
|
||||||
{
|
|
||||||
Texture = <texLUTID>;
|
|
||||||
MinFilter = LINEAR;
|
|
||||||
MagFilter = LINEAR;
|
|
||||||
MipFilter = NONE;
|
|
||||||
AddressU = Clamp;
|
|
||||||
AddressV = Clamp;
|
|
||||||
SRGBTexture = FALSE;
|
|
||||||
MaxMipLevel = 0;
|
|
||||||
MipMapLodBias = 0;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
sampler2D SamplerTonemap = sampler_state
|
sampler2D SamplerTonemap = sampler_state
|
||||||
{
|
{
|
||||||
Texture = <texTonemap>;
|
Texture = <texTonemap>;
|
||||||
|
|
|
||||||
|
|
@ -904,36 +904,6 @@ float lutblend_id
|
||||||
string UIName = "LUT Blend Interior Day";
|
string UIName = "LUT Blend Interior Day";
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
> = {1.0};
|
> = {1.0};
|
||||||
#ifdef LUTMODE_LEGACY
|
|
||||||
int clut_n
|
|
||||||
<
|
|
||||||
string UIName = "LUT Preset Night";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
int UIMin = 0;
|
|
||||||
int UIMax = 63;
|
|
||||||
> = {1};
|
|
||||||
int clut_d
|
|
||||||
<
|
|
||||||
string UIName = "LUT Preset Day";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
int UIMin = 0;
|
|
||||||
int UIMax = 63;
|
|
||||||
> = {1};
|
|
||||||
int clut_in
|
|
||||||
<
|
|
||||||
string UIName = "LUT Preset Interior Night";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
int UIMin = 0;
|
|
||||||
int UIMax = 63;
|
|
||||||
> = {1};
|
|
||||||
int clut_id
|
|
||||||
<
|
|
||||||
string UIName = "LUT Preset Interior Day";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
int UIMin = 0;
|
|
||||||
int UIMax = 63;
|
|
||||||
> = {1};
|
|
||||||
#endif
|
|
||||||
/* technicolor shader */
|
/* technicolor shader */
|
||||||
string str_tech = "Technicolor";
|
string str_tech = "Technicolor";
|
||||||
bool techenable
|
bool techenable
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB |
|
|
@ -31,142 +31,6 @@ float3 hsv2rgb( float3 c )
|
||||||
float3 p = abs(frac(c.x+K.xyz)*6.0-K.w);
|
float3 p = abs(frac(c.x+K.xyz)*6.0-K.w);
|
||||||
return c.z*lerp(K.x,saturate(p-K.x),c.y);
|
return c.z*lerp(K.x,saturate(p-K.x),c.y);
|
||||||
}
|
}
|
||||||
/* prepass */
|
|
||||||
float4 ReducePrepass( in float4 col, in float2 coord )
|
|
||||||
{
|
|
||||||
float3 hsv = rgb2hsv(col.rgb);
|
|
||||||
hsv.y = clamp(hsv.y*bsaturation,0.0,1.0);
|
|
||||||
hsv.z = pow(max(0,hsv.z),bgamma);
|
|
||||||
col.rgb = hsv2rgb(saturate(hsv));
|
|
||||||
if ( dither == 0 )
|
|
||||||
col += bdbump+checkers[int(coord.x%2)+2*int(coord.y%2)]*bdmult;
|
|
||||||
else if ( dither == 1 )
|
|
||||||
col += bdbump+ordered2[int(coord.x%2)+2*int(coord.y%2)]*bdmult;
|
|
||||||
else if ( dither == 2 )
|
|
||||||
col += bdbump+ordered8[int(coord.x%8)+8*int(coord.y%8)]*bdmult;
|
|
||||||
col = saturate(col);
|
|
||||||
return col;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
CGA had seven graphic modes (320x200 modes have low/high contrast versions):
|
|
||||||
- 640x200 monochrome, which doesn't really need a palette here, as it can
|
|
||||||
be done procedurally with minimum effort.
|
|
||||||
- 320x200 black/cyan/magenta/white
|
|
||||||
- 320x200 black/green/red/brown
|
|
||||||
- 320x200 black/cyan/red/white
|
|
||||||
*/
|
|
||||||
float4 ReduceCGA( in float4 color, in float2 coord )
|
|
||||||
{
|
|
||||||
float4 dac = clamp(ReducePrepass(color,coord),0.02,0.98);
|
|
||||||
float2 lc = float2((dac.r+cgapal)/7.0,
|
|
||||||
dac.g/64.0+floor(dac.b*64.0)/64.0);
|
|
||||||
return tex2D(SamplerCGA,lc);
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
EGA technically only had a fixed 16-colour palette, but when VGA came out,
|
|
||||||
it was possible to tweak the DAC, allowing for custom palettes.
|
|
||||||
AOS EGA is a palette based on my terminal colour scheme on Linux, which I
|
|
||||||
also use for AliceOS.
|
|
||||||
*/
|
|
||||||
float4 ReduceEGA( in float4 color, in float2 coord )
|
|
||||||
{
|
|
||||||
float4 dac = clamp(ReducePrepass(color,coord),0.02,0.98);
|
|
||||||
float2 lc = float2((dac.r+egapal)/2.0,
|
|
||||||
dac.g/64.0+floor(dac.b*64.0)/64.0);
|
|
||||||
return tex2D(SamplerEGA,lc);
|
|
||||||
}
|
|
||||||
/* A two bits per channel mode that can usually fit VGA mode 13h and mode x */
|
|
||||||
float4 ReduceRGB2( in float4 color, in float2 coord )
|
|
||||||
{
|
|
||||||
float4 dac = ReducePrepass(color,coord);
|
|
||||||
color.rgb = trunc(dac.rgb*4.0)/4.0;
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
The classic 16-bit colour mode everyone from my generation would remember,
|
|
||||||
especially that subtle green tint and the banding due to lack of dithering
|
|
||||||
in most games and GPUs at that time.
|
|
||||||
*/
|
|
||||||
float4 ReduceRGB565( in float4 color, in float2 coord )
|
|
||||||
{
|
|
||||||
float4 dac = ReducePrepass(color,coord);
|
|
||||||
color.rgb = trunc(dac.rgb*float3(32.0,64.0,32.0))
|
|
||||||
/float3(32.0,64.0,32.0);
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
/* Various VGA 256-colour palettes: Doom, Quake I, and the standard. */
|
|
||||||
float4 ReduceVGA( in float4 color, in float2 coord )
|
|
||||||
{
|
|
||||||
float4 dac = clamp(ReducePrepass(color,coord),0.02,0.98);
|
|
||||||
float2 lc = float2((dac.r+vgapal)/15.0,
|
|
||||||
dac.g/64.0+floor(dac.b*64.0)/64.0);
|
|
||||||
return tex2D(SamplerVGA,lc);
|
|
||||||
}
|
|
||||||
/* Retro rockets */
|
|
||||||
float4 PS_Retro( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
|
||||||
{
|
|
||||||
float2 coord = IN.txcoord.xy;
|
|
||||||
float4 res = tex2D(SamplerColorb,coord);
|
|
||||||
if ( !useblock ) return res;
|
|
||||||
float2 rresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
|
||||||
float4 tcol;
|
|
||||||
float2 bresl = rresl;
|
|
||||||
if ( bresx <= 0 || bresy <= 0 ) bresl = rresl;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ( bresx <= 1.0 ) bresl.x = rresl.x*bresx;
|
|
||||||
else bresl.x = bresx;
|
|
||||||
if ( bresy <= 1.0 ) bresl.y = rresl.y*bresy;
|
|
||||||
else bresl.y = bresy;
|
|
||||||
}
|
|
||||||
float2 ncoord = (coord-0.5)+0.5;
|
|
||||||
ncoord = floor(ncoord*bresl)/bresl;
|
|
||||||
ncoord += 0.5/bresl;
|
|
||||||
if ( bresx <= 0 || bresy <= 0 ) ncoord = coord;
|
|
||||||
tcol = tex2D(SamplerColorb,ncoord);
|
|
||||||
if ( paltype == 0 ) res = ReduceCGA(tcol,coord*bresl);
|
|
||||||
else if ( paltype == 1 ) res = ReduceEGA(tcol,coord*bresl);
|
|
||||||
else if ( paltype == 2 ) res = ReduceRGB2(tcol,coord*bresl);
|
|
||||||
else if ( paltype == 3 ) res = ReduceVGA(tcol,coord*bresl);
|
|
||||||
else if ( paltype == 4 ) res = ReduceRGB565(tcol,coord*bresl);
|
|
||||||
else res = tcol;
|
|
||||||
res.a = 1.0;
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
/* ASCII art (more like CP437 art) */
|
|
||||||
float4 PS_ASCII( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
|
||||||
{
|
|
||||||
float2 coord = IN.txcoord.xy;
|
|
||||||
float4 res = tex2D(SamplerColor,coord);
|
|
||||||
if ( !asciienable ) return res;
|
|
||||||
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
|
||||||
float2 fresl = float2(FONT_WIDTH,FONT_HEIGHT);
|
|
||||||
float2 cresl = float2(GLYPH_WIDTH,GLYPH_HEIGHT);
|
|
||||||
float2 bscl = floor(bresl/cresl);
|
|
||||||
/*
|
|
||||||
Here I use the "cheap" method, based on the overall luminance of
|
|
||||||
each glyph, rather than attempt to search for the best fitting glyph
|
|
||||||
for each cell. If you want to know why, take a look at the ASCII
|
|
||||||
filter bundled with the Dolphin emulator, and be prepared for the
|
|
||||||
resulting seconds per frame it runs at. The calculations needed for
|
|
||||||
such a filter are completely insane even for the highest-end GPUs.
|
|
||||||
*/
|
|
||||||
float3 col = tex2D(SamplerColor,floor(bscl*coord)/bscl).rgb;
|
|
||||||
int lum = clamp(luminance(col)*FONT_LEVELS,0,FONT_LEVELS);
|
|
||||||
float2 itx = floor(coord*bresl);
|
|
||||||
float2 blk = floor(itx/cresl)*cresl;
|
|
||||||
float2 ofs = itx-blk;
|
|
||||||
ofs.y += lum*cresl.y;
|
|
||||||
ofs /= fresl;
|
|
||||||
float gch = tex2D(SamplerFont,ofs).x;
|
|
||||||
if ( gch < 0.5 ) res.rgb = res.rgb*asciiblend;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ( asciimono ) res.rgb = 1.0;
|
|
||||||
else res.rgb = col;
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
float4 PS_ChromaKey( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
float4 PS_ChromaKey( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
||||||
{
|
{
|
||||||
float2 coord = IN.txcoord.xy;
|
float2 coord = IN.txcoord.xy;
|
||||||
|
|
@ -180,45 +44,6 @@ float4 PS_ChromaKey( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
||||||
return float4(maskr,maskg,maskb,1.0);
|
return float4(maskr,maskg,maskb,1.0);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
/* 2x2 RGBI dot matrix, not even close to anything that exists IRL but meh */
|
|
||||||
float4 PS_DotMatrix( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
|
||||||
{
|
|
||||||
float2 coord = IN.txcoord.xy;
|
|
||||||
float4 res = tex2D(SamplerColor,coord);
|
|
||||||
if ( !dotenable ) return res;
|
|
||||||
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
|
||||||
bresl.xy *= 1.0/(dotsize*2.0);
|
|
||||||
float4 dac = float4(res.r*0.5,res.g*0.5,res.b*0.5,
|
|
||||||
(res.r+res.g+res.b)/6.0);
|
|
||||||
/*
|
|
||||||
There are two types of CRTs: aperture grille and shadow mask.
|
|
||||||
The former is blurry and has scanlines (rather big ones, even), but
|
|
||||||
is cheap to emulate; while the latter is the one most known for its
|
|
||||||
crisp, square pixels with minimal distortion. Most individuals into
|
|
||||||
this whole "retro graphics" stuff prefer aperture grille, which
|
|
||||||
looks like shit, then again, that's the sort of visual quality they
|
|
||||||
want. The main issue with shadow mask CRTs is that it's impossible
|
|
||||||
to accurately emulate them unless done on a screen with a HUGE
|
|
||||||
resolution. After all, the subpixels need to be clearly visible, and
|
|
||||||
if on top of it you add curvature distortion, you need to reduce
|
|
||||||
moire patterns that will inevitably show up at low resolutions.
|
|
||||||
|
|
||||||
It would be more desirable to eventually have flat panels that can
|
|
||||||
display arbitrary resolutions using a form of scaling that preserves
|
|
||||||
square pixels with unnoticeable distortion (typically, with nearest
|
|
||||||
neighbour you'd get some pixels that are bigger/smaller than others
|
|
||||||
if the upscale resolution isn't an integer multiple of the real
|
|
||||||
resolution.
|
|
||||||
|
|
||||||
This 2x2 RGBI thing is a rather naïve filter I made many years ago,
|
|
||||||
it looks unlike any real CRT, but scales well. Its only problem is
|
|
||||||
moire patterns when using the default size of 2x2.
|
|
||||||
*/
|
|
||||||
float4 dots = tex2D(SamplerDots,coord*bresl)*dac;
|
|
||||||
float3 tcol = pow(max(0,dots.rgb+dots.a),dotpow)*dotmult;
|
|
||||||
res.rgb = res.rgb*(1-dotblend)+tcol*dotblend;
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
/* that's right, CRT curvature */
|
/* that's right, CRT curvature */
|
||||||
float4 PS_Curvature( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
float4 PS_Curvature( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
||||||
{
|
{
|
||||||
|
|
@ -508,12 +333,111 @@ float4 PS_FXAA( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
||||||
res.a = 1.0;
|
res.a = 1.0;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
/* Colour matrix */
|
||||||
|
float3 ColorMatrix( float3 res )
|
||||||
|
{
|
||||||
|
float3x3 cmat = float3x3(cmat_rr,cmat_rg,cmat_rb,
|
||||||
|
cmat_gr,cmat_gg,cmat_gb,
|
||||||
|
cmat_br,cmat_bg,cmat_bb);
|
||||||
|
res = mul(res,cmat);
|
||||||
|
if ( cmatnormalize )
|
||||||
|
{
|
||||||
|
float cmscale = (cmat._11+cmat._12+cmat._13+cmat._21
|
||||||
|
+cmat._22+cmat._23+cmat._31+cmat._32+cmat._33)/3.0;
|
||||||
|
res /= cmscale;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
/* Hue-Saturation filter from GIMP */
|
||||||
|
float hs_hue_overlap( float hue_p, float hue_s, float res )
|
||||||
|
{
|
||||||
|
float v = hue_p+hue_s;
|
||||||
|
res += (hshue_a+v)/2.0;
|
||||||
|
return res%1.0;
|
||||||
|
}
|
||||||
|
float hs_hue( float hue, float res )
|
||||||
|
{
|
||||||
|
res += (hshue_a+hue)/2.0;
|
||||||
|
return res%1.0;
|
||||||
|
}
|
||||||
|
float hs_sat( float sat, float res )
|
||||||
|
{
|
||||||
|
float v = hssat_a+sat;
|
||||||
|
res *= v+1.0;
|
||||||
|
return clamp(res,0.0,1.0);
|
||||||
|
}
|
||||||
|
float hs_val( float val, float res )
|
||||||
|
{
|
||||||
|
float v = (hsval_a+val)/2.0;
|
||||||
|
if ( v < 0.0 ) return res*(v+1.0);
|
||||||
|
return res+(v*(1.0-res));
|
||||||
|
}
|
||||||
|
float3 HueSaturation( float3 res )
|
||||||
|
{
|
||||||
|
float3 hsv = rgb2hsv(res);
|
||||||
|
float ch = hsv.x*6.0;
|
||||||
|
int ph = 0, sh = 0;
|
||||||
|
float pv = 0.0, sv = 0.0;
|
||||||
|
bool usesh = false;
|
||||||
|
float hues[6] = {hshue_r,hshue_y,hshue_g,hshue_c,hshue_b,hshue_m};
|
||||||
|
float sats[6] = {hssat_r,hssat_y,hssat_g,hssat_c,hssat_b,hssat_m};
|
||||||
|
float vals[6] = {hsval_r,hsval_y,hsval_g,hsval_c,hsval_b,hsval_m};
|
||||||
|
float v;
|
||||||
|
[loop] for ( float h=0.0; h<7.0; h+=1.0 )
|
||||||
|
{
|
||||||
|
float ht = h+0.5;
|
||||||
|
if ( ch < ht+hsover )
|
||||||
|
{
|
||||||
|
ph = floor(h);
|
||||||
|
if ( (hsover > 0.0) && (ch > ht-hsover) )
|
||||||
|
{
|
||||||
|
usesh = true;
|
||||||
|
sh = ph+1;
|
||||||
|
sv = (ch-ht+hsover)/(2.0*hsover);
|
||||||
|
pv = 1.0-sv;
|
||||||
|
}
|
||||||
|
else usesh = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( ph >= 6 )
|
||||||
|
{
|
||||||
|
ph = 0;
|
||||||
|
usesh = false;
|
||||||
|
}
|
||||||
|
if ( sh >= 6 ) sh = 0;
|
||||||
|
if ( usesh )
|
||||||
|
{
|
||||||
|
hsv.x = hs_hue_overlap(hues[ph]*pv,hues[sh]*sv,hsv.x);
|
||||||
|
hsv.y = hs_sat(sats[ph],hsv.y)*pv+hs_sat(sats[sh],hsv.y)*sv;
|
||||||
|
hsv.z = hs_val(vals[ph],hsv.z)*pv+hs_val(vals[sh],hsv.z)*sv;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
hsv.x = hs_hue(hues[ph],hsv.x);
|
||||||
|
hsv.y = hs_sat(sats[ph],hsv.y);
|
||||||
|
hsv.z = hs_val(vals[ph],hsv.z);
|
||||||
|
}
|
||||||
|
return hsv2rgb(hsv);
|
||||||
|
}
|
||||||
|
/* Colour Balance filter from GIMP */
|
||||||
|
/* Additional filters that don't fit in enbeffect */
|
||||||
|
float4 PS_Append( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
||||||
|
{
|
||||||
|
float2 coord = IN.txcoord.xy;
|
||||||
|
float4 res = tex2D(SamplerColor,coord);
|
||||||
|
if ( cmatenable ) res.rgb = ColorMatrix(res.rgb);
|
||||||
|
if ( hsenable ) res.rgb = HueSaturation(res.rgb);
|
||||||
|
res.rgb = max(res.rgb,0.0);
|
||||||
|
res.a = 1.0;
|
||||||
|
return res;
|
||||||
|
}
|
||||||
technique PostProcess
|
technique PostProcess
|
||||||
{
|
{
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
VertexShader = compile vs_3_0 VS_Pass();
|
VertexShader = compile vs_3_0 VS_Pass();
|
||||||
PixelShader = compile ps_3_0 PS_Kuwahara();
|
PixelShader = compile ps_3_0 PS_Append();
|
||||||
DitherEnable = FALSE;
|
DitherEnable = FALSE;
|
||||||
ZEnable = FALSE;
|
ZEnable = FALSE;
|
||||||
CullMode = NONE;
|
CullMode = NONE;
|
||||||
|
|
@ -530,7 +454,7 @@ technique PostProcess2
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
VertexShader = compile vs_3_0 VS_Pass();
|
VertexShader = compile vs_3_0 VS_Pass();
|
||||||
PixelShader = compile ps_3_0 PS_MedianSmooth();
|
PixelShader = compile ps_3_0 PS_Kuwahara();
|
||||||
DitherEnable = FALSE;
|
DitherEnable = FALSE;
|
||||||
ZEnable = FALSE;
|
ZEnable = FALSE;
|
||||||
CullMode = NONE;
|
CullMode = NONE;
|
||||||
|
|
@ -547,7 +471,7 @@ technique PostProcess3
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
VertexShader = compile vs_3_0 VS_Pass();
|
VertexShader = compile vs_3_0 VS_Pass();
|
||||||
PixelShader = compile ps_3_0 PS_FXAA();
|
PixelShader = compile ps_3_0 PS_MedianSmooth();
|
||||||
DitherEnable = FALSE;
|
DitherEnable = FALSE;
|
||||||
ZEnable = FALSE;
|
ZEnable = FALSE;
|
||||||
CullMode = NONE;
|
CullMode = NONE;
|
||||||
|
|
@ -564,7 +488,7 @@ technique PostProcess4
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
VertexShader = compile vs_3_0 VS_Pass();
|
VertexShader = compile vs_3_0 VS_Pass();
|
||||||
PixelShader = compile ps_3_0 PS_Blur();
|
PixelShader = compile ps_3_0 PS_FXAA();
|
||||||
DitherEnable = FALSE;
|
DitherEnable = FALSE;
|
||||||
ZEnable = FALSE;
|
ZEnable = FALSE;
|
||||||
CullMode = NONE;
|
CullMode = NONE;
|
||||||
|
|
@ -581,7 +505,7 @@ technique PostProcess5
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
VertexShader = compile vs_3_0 VS_Pass();
|
VertexShader = compile vs_3_0 VS_Pass();
|
||||||
PixelShader = compile ps_3_0 PS_Sharp();
|
PixelShader = compile ps_3_0 PS_Blur();
|
||||||
DitherEnable = FALSE;
|
DitherEnable = FALSE;
|
||||||
ZEnable = FALSE;
|
ZEnable = FALSE;
|
||||||
CullMode = NONE;
|
CullMode = NONE;
|
||||||
|
|
@ -598,7 +522,7 @@ technique PostProcess6
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
VertexShader = compile vs_3_0 VS_Pass();
|
VertexShader = compile vs_3_0 VS_Pass();
|
||||||
PixelShader = compile ps_3_0 PS_Shift();
|
PixelShader = compile ps_3_0 PS_Sharp();
|
||||||
DitherEnable = FALSE;
|
DitherEnable = FALSE;
|
||||||
ZEnable = FALSE;
|
ZEnable = FALSE;
|
||||||
CullMode = NONE;
|
CullMode = NONE;
|
||||||
|
|
@ -615,7 +539,7 @@ technique PostProcess7
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
VertexShader = compile vs_3_0 VS_Pass();
|
VertexShader = compile vs_3_0 VS_Pass();
|
||||||
PixelShader = compile ps_3_0 PS_ChromaKey();
|
PixelShader = compile ps_3_0 PS_Shift();
|
||||||
DitherEnable = FALSE;
|
DitherEnable = FALSE;
|
||||||
ZEnable = FALSE;
|
ZEnable = FALSE;
|
||||||
CullMode = NONE;
|
CullMode = NONE;
|
||||||
|
|
@ -632,7 +556,7 @@ technique PostProcess8
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
VertexShader = compile vs_3_0 VS_Pass();
|
VertexShader = compile vs_3_0 VS_Pass();
|
||||||
PixelShader = compile ps_3_0 PS_Vignette();
|
PixelShader = compile ps_3_0 PS_ChromaKey();
|
||||||
DitherEnable = FALSE;
|
DitherEnable = FALSE;
|
||||||
ZEnable = FALSE;
|
ZEnable = FALSE;
|
||||||
CullMode = NONE;
|
CullMode = NONE;
|
||||||
|
|
@ -649,7 +573,7 @@ technique PostProcess9
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
VertexShader = compile vs_3_0 VS_Pass();
|
VertexShader = compile vs_3_0 VS_Pass();
|
||||||
PixelShader = compile ps_3_0 PS_Retro();
|
PixelShader = compile ps_3_0 PS_Vignette();
|
||||||
DitherEnable = FALSE;
|
DitherEnable = FALSE;
|
||||||
ZEnable = FALSE;
|
ZEnable = FALSE;
|
||||||
CullMode = NONE;
|
CullMode = NONE;
|
||||||
|
|
@ -666,7 +590,7 @@ technique PostProcess10
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
VertexShader = compile vs_3_0 VS_Pass();
|
VertexShader = compile vs_3_0 VS_Pass();
|
||||||
PixelShader = compile ps_3_0 PS_ASCII();
|
PixelShader = compile ps_3_0 PS_Curvature();
|
||||||
DitherEnable = FALSE;
|
DitherEnable = FALSE;
|
||||||
ZEnable = FALSE;
|
ZEnable = FALSE;
|
||||||
CullMode = NONE;
|
CullMode = NONE;
|
||||||
|
|
@ -679,40 +603,6 @@ technique PostProcess10
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
technique PostProcess11
|
technique PostProcess11
|
||||||
{
|
|
||||||
pass p0
|
|
||||||
{
|
|
||||||
VertexShader = compile vs_3_0 VS_Pass();
|
|
||||||
PixelShader = compile ps_3_0 PS_DotMatrix();
|
|
||||||
DitherEnable = FALSE;
|
|
||||||
ZEnable = FALSE;
|
|
||||||
CullMode = NONE;
|
|
||||||
ALPHATESTENABLE = FALSE;
|
|
||||||
SEPARATEALPHABLENDENABLE = FALSE;
|
|
||||||
AlphaBlendEnable = FALSE;
|
|
||||||
StencilEnable = FALSE;
|
|
||||||
FogEnable = FALSE;
|
|
||||||
SRGBWRITEENABLE = FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
technique PostProcess12
|
|
||||||
{
|
|
||||||
pass p0
|
|
||||||
{
|
|
||||||
VertexShader = compile vs_3_0 VS_Pass();
|
|
||||||
PixelShader = compile ps_3_0 PS_Curvature();
|
|
||||||
DitherEnable = FALSE;
|
|
||||||
ZEnable = FALSE;
|
|
||||||
CullMode = NONE;
|
|
||||||
ALPHATESTENABLE = FALSE;
|
|
||||||
SEPARATEALPHABLENDENABLE = FALSE;
|
|
||||||
AlphaBlendEnable = FALSE;
|
|
||||||
StencilEnable = FALSE;
|
|
||||||
FogEnable = FALSE;
|
|
||||||
SRGBWRITEENABLE = FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
technique PostProcess13
|
|
||||||
{
|
{
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -10,35 +10,6 @@ static const float gauss4[4] =
|
||||||
{
|
{
|
||||||
0.270682, 0.216745, 0.111281, 0.036633
|
0.270682, 0.216745, 0.111281, 0.036633
|
||||||
};
|
};
|
||||||
/*
|
|
||||||
dithering threshold maps
|
|
||||||
don't touch unless you know what you're doing
|
|
||||||
*/
|
|
||||||
static const float checkers[4] =
|
|
||||||
{
|
|
||||||
1.0,0.0,
|
|
||||||
0.0,1.0
|
|
||||||
};
|
|
||||||
#define d(x) x/4.0
|
|
||||||
static const float ordered2[4] =
|
|
||||||
{
|
|
||||||
d(0),d(2),
|
|
||||||
d(4),d(2)
|
|
||||||
};
|
|
||||||
#undef d
|
|
||||||
#define d(x) x/64.0
|
|
||||||
static const float ordered8[64] =
|
|
||||||
{
|
|
||||||
d( 0),d(48),d(12),d(60),d( 3),d(51),d(15),d(63),
|
|
||||||
d(32),d(16),d(44),d(28),d(35),d(19),d(47),d(31),
|
|
||||||
d( 8),d(56),d( 4),d(52),d(11),d(59),d( 7),d(55),
|
|
||||||
d(40),d(24),d(36),d(20),d(43),d(27),d(39),d(23),
|
|
||||||
d( 2),d(50),d(14),d(62),d( 1),d(49),d(13),d(61),
|
|
||||||
d(34),d(18),d(46),d(30),d(33),d(17),d(45),d(29),
|
|
||||||
d(10),d(58),d( 6),d(54),d( 9),d(57),d( 5),d(53),
|
|
||||||
d(42),d(26),d(38),d(22),d(41),d(25),d(37),d(21)
|
|
||||||
};
|
|
||||||
#undef d
|
|
||||||
/* standard stuff */
|
/* standard stuff */
|
||||||
float4 ScreenSize;
|
float4 ScreenSize;
|
||||||
float ENightDayFactor;
|
float ENightDayFactor;
|
||||||
|
|
@ -47,26 +18,6 @@ float4 Timer;
|
||||||
/* samplers and textures */
|
/* samplers and textures */
|
||||||
texture2D texColor;
|
texture2D texColor;
|
||||||
texture2D texDepth;
|
texture2D texDepth;
|
||||||
texture2D texFont
|
|
||||||
<
|
|
||||||
string ResourceName = "menbvgaluma.png";
|
|
||||||
>;
|
|
||||||
texture2D texDots
|
|
||||||
<
|
|
||||||
string ResourceName = "menbdots.png";
|
|
||||||
>;
|
|
||||||
texture2D texCGA
|
|
||||||
<
|
|
||||||
string ResourceName = "menbcgalut.png";
|
|
||||||
>;
|
|
||||||
texture2D texEGA
|
|
||||||
<
|
|
||||||
string ResourceName = "menbegalut.png";
|
|
||||||
>;
|
|
||||||
texture2D texVGA
|
|
||||||
<
|
|
||||||
string ResourceName = "menbvgalut.png";
|
|
||||||
>;
|
|
||||||
texture2D texVignette
|
texture2D texVignette
|
||||||
<
|
<
|
||||||
#ifdef VIGNETTE_DDS
|
#ifdef VIGNETTE_DDS
|
||||||
|
|
@ -111,66 +62,6 @@ sampler2D SamplerDepth = sampler_state
|
||||||
MaxMipLevel = 0;
|
MaxMipLevel = 0;
|
||||||
MipMapLodBias = 0;
|
MipMapLodBias = 0;
|
||||||
};
|
};
|
||||||
sampler2D SamplerFont = sampler_state
|
|
||||||
{
|
|
||||||
Texture = <texFont>;
|
|
||||||
MinFilter = LINEAR;
|
|
||||||
MagFilter = POINT;
|
|
||||||
MipFilter = NONE;
|
|
||||||
AddressU = Wrap;
|
|
||||||
AddressV = Wrap;
|
|
||||||
SRGBTexture = FALSE;
|
|
||||||
MaxMipLevel = 0;
|
|
||||||
MipMapLodBias = 0;
|
|
||||||
};
|
|
||||||
sampler2D SamplerDots = sampler_state
|
|
||||||
{
|
|
||||||
Texture = <texDots>;
|
|
||||||
MinFilter = LINEAR;
|
|
||||||
MagFilter = LINEAR;
|
|
||||||
MipFilter = NONE;
|
|
||||||
AddressU = Wrap;
|
|
||||||
AddressV = Wrap;
|
|
||||||
SRGBTexture = FALSE;
|
|
||||||
MaxMipLevel = 0;
|
|
||||||
MipMapLodBias = 0;
|
|
||||||
};
|
|
||||||
sampler2D SamplerCGA = sampler_state
|
|
||||||
{
|
|
||||||
Texture = <texCGA>;
|
|
||||||
MinFilter = POINT;
|
|
||||||
MagFilter = POINT;
|
|
||||||
MipFilter = NONE;
|
|
||||||
AddressU = Wrap;
|
|
||||||
AddressV = Clamp;
|
|
||||||
SRGBTexture = FALSE;
|
|
||||||
MaxMipLevel = 0;
|
|
||||||
MipMapLodBias = 0;
|
|
||||||
};
|
|
||||||
sampler2D SamplerEGA = sampler_state
|
|
||||||
{
|
|
||||||
Texture = <texEGA>;
|
|
||||||
MinFilter = POINT;
|
|
||||||
MagFilter = POINT;
|
|
||||||
MipFilter = NONE;
|
|
||||||
AddressU = Wrap;
|
|
||||||
AddressV = Clamp;
|
|
||||||
SRGBTexture = FALSE;
|
|
||||||
MaxMipLevel = 0;
|
|
||||||
MipMapLodBias = 0;
|
|
||||||
};
|
|
||||||
sampler2D SamplerVGA = sampler_state
|
|
||||||
{
|
|
||||||
Texture = <texVGA>;
|
|
||||||
MinFilter = POINT;
|
|
||||||
MagFilter = POINT;
|
|
||||||
MipFilter = NONE;
|
|
||||||
AddressU = Wrap;
|
|
||||||
AddressV = Clamp;
|
|
||||||
SRGBTexture = FALSE;
|
|
||||||
MaxMipLevel = 0;
|
|
||||||
MipMapLodBias = 0;
|
|
||||||
};
|
|
||||||
sampler2D SamplerVignette = sampler_state
|
sampler2D SamplerVignette = sampler_state
|
||||||
{
|
{
|
||||||
Texture = <texVignette>;
|
Texture = <texVignette>;
|
||||||
|
|
|
||||||
|
|
@ -4,142 +4,6 @@
|
||||||
Part of MariENB, the personal ENB of Marisa.
|
Part of MariENB, the personal ENB of Marisa.
|
||||||
Released under the GNU GPLv3 (or later).
|
Released under the GNU GPLv3 (or later).
|
||||||
*/
|
*/
|
||||||
/* BlockGFX filter, I'm proud of it */
|
|
||||||
string str_block = "BlockGFX Suite";
|
|
||||||
bool useblock
|
|
||||||
<
|
|
||||||
string UIName = "Enable Block GFX";
|
|
||||||
string UIWidget = "Checkbox";
|
|
||||||
> = {false};
|
|
||||||
/*
|
|
||||||
emulated resolution:
|
|
||||||
0 or 1 : real resolution
|
|
||||||
<1 and >0 : multiple of real resolution (e.g.: 0.5 is half resolution)
|
|
||||||
>1 : this resolution (e.g.: 320x200 is good ol' Mode 13h)
|
|
||||||
*/
|
|
||||||
float bresx
|
|
||||||
<
|
|
||||||
string UIName = "Emulated Resolution Width";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.5};
|
|
||||||
float bresy
|
|
||||||
<
|
|
||||||
string UIName = "Emulated Resolution Height";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.5};
|
|
||||||
/*
|
|
||||||
palette type:
|
|
||||||
-1 : disable
|
|
||||||
0 : CGA (320x200 4-color, or 640x200 monochrome)
|
|
||||||
1 : EGA (320x200, 16 colors)
|
|
||||||
2 : RGB2 (64-color quarter VGA palette, used in AOS)
|
|
||||||
3 : VGA (256 colors)
|
|
||||||
4 : RGB565 (ol' 16-bit "true color")
|
|
||||||
*/
|
|
||||||
int paltype
|
|
||||||
<
|
|
||||||
string UIName = "Palette Type";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
int UIMin = -1;
|
|
||||||
int UIMax = 4;
|
|
||||||
> = {1};
|
|
||||||
/*
|
|
||||||
CGA palette to use:
|
|
||||||
0 : black, white.
|
|
||||||
1 : black, cyan, magenta, white. low contrast
|
|
||||||
2 : black, cyan, magenta, white. high contrast
|
|
||||||
3 : black, green, red, brown. low contrast
|
|
||||||
4 : black, green, red, brown. high contrast
|
|
||||||
5 : black, cyan, red, white. low contrast
|
|
||||||
6 : black, cyan, red, white. high contrast
|
|
||||||
*/
|
|
||||||
int cgapal
|
|
||||||
<
|
|
||||||
string UIName = "CGA Palette";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
int UIMin = 0;
|
|
||||||
int UIMax = 6;
|
|
||||||
> = {1};
|
|
||||||
/*
|
|
||||||
EGA palette to use:
|
|
||||||
0 : Standard EGA
|
|
||||||
1 : AOS EGA (it's designed for text, but looks well on images too)
|
|
||||||
*/
|
|
||||||
int egapal
|
|
||||||
<
|
|
||||||
string UIName = "EGA Palette";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
int UIMin = 0;
|
|
||||||
int UIMax = 1;
|
|
||||||
> = {0};
|
|
||||||
/*
|
|
||||||
VGA palette to use:
|
|
||||||
0 : Standard VGA
|
|
||||||
1 : Amulets & Armor
|
|
||||||
2 : Blood
|
|
||||||
3 : Doom
|
|
||||||
4 : Duke Nukem 3D
|
|
||||||
5 : Hacx 2.0
|
|
||||||
6 : Heretic
|
|
||||||
7 : Hexen
|
|
||||||
8 : Hexen 2
|
|
||||||
9 : Quake
|
|
||||||
10 : Quake 2
|
|
||||||
11 : Rise of the Triad
|
|
||||||
12 : Shadow Warrior
|
|
||||||
13 : Strife
|
|
||||||
14 : Wolfenstein 3D
|
|
||||||
TODO Project .Blank palette (when the design is finished)
|
|
||||||
*/
|
|
||||||
int vgapal
|
|
||||||
<
|
|
||||||
string UIName = "VGA Palette";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
int UIMin = 0;
|
|
||||||
int UIMax = 14;
|
|
||||||
> = {0};
|
|
||||||
/*
|
|
||||||
Dithering mode:
|
|
||||||
-1 : No dithering, just raw banding
|
|
||||||
0 : 2x2 checkerboard dithering, looks like ass
|
|
||||||
1 : 2x2 ordered dithering
|
|
||||||
2 : 8x8 ordered dithering
|
|
||||||
*/
|
|
||||||
int dither
|
|
||||||
<
|
|
||||||
string UIName = "Dithering Pattern";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
int UIMin = -1;
|
|
||||||
int UIMax = 2;
|
|
||||||
> = {2};
|
|
||||||
/* gamma modifier for base color, lower values raise midtones and viceversa */
|
|
||||||
float bgamma
|
|
||||||
<
|
|
||||||
string UIName = "Contrast Modifier";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.35};
|
|
||||||
/* saturation modifier for base color, helps with limited palettes */
|
|
||||||
float bsaturation
|
|
||||||
<
|
|
||||||
string UIName = "Saturation Modifier";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
> = {1.1};
|
|
||||||
/* base brightness bump for the dither grid */
|
|
||||||
float bdbump
|
|
||||||
<
|
|
||||||
string UIName = "Dither Offset";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
> = {-0.1};
|
|
||||||
/* range multiplier for the dither grid */
|
|
||||||
float bdmult
|
|
||||||
<
|
|
||||||
string UIName = "Dither Range";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.25};
|
|
||||||
/*
|
/*
|
||||||
Paint filters:
|
Paint filters:
|
||||||
-1 : Disabled
|
-1 : Disabled
|
||||||
|
|
@ -178,25 +42,6 @@ float fxaareducemin
|
||||||
string UIName = "FXAA Reduce Min";
|
string UIName = "FXAA Reduce Min";
|
||||||
string UIWidget = "Checkbox";
|
string UIWidget = "Checkbox";
|
||||||
> = {128.0};
|
> = {128.0};
|
||||||
/* ASCII art filter */
|
|
||||||
string str_ascii = "Luma ASCII Art Filter";
|
|
||||||
bool asciienable
|
|
||||||
<
|
|
||||||
string UIName = "Enable ASCII";
|
|
||||||
string UIWidget = "Checkbox";
|
|
||||||
> = {false};
|
|
||||||
bool asciimono
|
|
||||||
<
|
|
||||||
string UIName = "ASCII Monochrome";
|
|
||||||
string UIWidget = "Checkbox";
|
|
||||||
> = {true};
|
|
||||||
float asciiblend
|
|
||||||
<
|
|
||||||
string UIName = "ASCII Blend";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
/* Depth-cutting chroma key */
|
/* Depth-cutting chroma key */
|
||||||
string str_mask = "Depth Chroma Key";
|
string str_mask = "Depth Chroma Key";
|
||||||
bool maskenable
|
bool maskenable
|
||||||
|
|
@ -257,38 +102,6 @@ float masktilty
|
||||||
string UIName = "Chroma Key Depth Vertical Tilt";
|
string UIName = "Chroma Key Depth Vertical Tilt";
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
> = {0.0};
|
> = {0.0};
|
||||||
/* cheap dot matrix */
|
|
||||||
string str_dot = "RGBI Dot Matrix";
|
|
||||||
bool dotenable
|
|
||||||
<
|
|
||||||
string UIName = "Enable Dot Matrix";
|
|
||||||
string UIWidget = "Checkbox";
|
|
||||||
> = {false};
|
|
||||||
int dotsize
|
|
||||||
<
|
|
||||||
string UIName = "Dot Size";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
int UIMin = 1;
|
|
||||||
> = {1};
|
|
||||||
float dotblend
|
|
||||||
<
|
|
||||||
string UIName = "Dot Blend";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.4};
|
|
||||||
float dotmult
|
|
||||||
<
|
|
||||||
string UIName = "Dot Intensity";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {1.0};
|
|
||||||
float dotpow
|
|
||||||
<
|
|
||||||
string UIName = "Dot Contrast";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {1.0};
|
|
||||||
/* lens curve with chromatic aberration */
|
/* lens curve with chromatic aberration */
|
||||||
string str_curve = "Lens Curvature";
|
string str_curve = "Lens Curvature";
|
||||||
bool curveenable
|
bool curveenable
|
||||||
|
|
@ -454,3 +267,222 @@ float bblurradius
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
float UIMin = 0.0;
|
float UIMin = 0.0;
|
||||||
> = {1.0};
|
> = {1.0};
|
||||||
|
/* colour matrix */
|
||||||
|
string str_cmat = "Color Matrix";
|
||||||
|
bool cmatenable
|
||||||
|
<
|
||||||
|
string UIName = "Enable Color Matrix";
|
||||||
|
string UIWidget = "Checkbox";
|
||||||
|
> = {false};
|
||||||
|
float cmat_rr
|
||||||
|
<
|
||||||
|
string UIName = "Color Matrix Red Red";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {1.0};
|
||||||
|
float cmat_rg
|
||||||
|
<
|
||||||
|
string UIName = "Color Matrix Red Green";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.0};
|
||||||
|
float cmat_rb
|
||||||
|
<
|
||||||
|
string UIName = "Color Matrix Red Blue";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.0};
|
||||||
|
float cmat_gr
|
||||||
|
<
|
||||||
|
string UIName = "Color Matrix Green Red";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.0};
|
||||||
|
float cmat_gg
|
||||||
|
<
|
||||||
|
string UIName = "Color Matrix Green Green";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {1.0};
|
||||||
|
float cmat_gb
|
||||||
|
<
|
||||||
|
string UIName = "Color Matrix Green Blue";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.0};
|
||||||
|
float cmat_br
|
||||||
|
<
|
||||||
|
string UIName = "Color Matrix Blue Red";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.0};
|
||||||
|
float cmat_bg
|
||||||
|
<
|
||||||
|
string UIName = "Color Matrix Blue Green";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.0};
|
||||||
|
float cmat_bb
|
||||||
|
<
|
||||||
|
string UIName = "Color Matrix Blue Blue";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {1.0};
|
||||||
|
bool cmatnormalize
|
||||||
|
<
|
||||||
|
string UIName = "Normalize Matrix";
|
||||||
|
string UIWidget = "Checkbox";
|
||||||
|
> = {false};
|
||||||
|
/* hue-saturation */
|
||||||
|
string str_hs = "Hue-Saturation";
|
||||||
|
bool hsenable
|
||||||
|
<
|
||||||
|
string UIName = "Enable Hue-Saturation";
|
||||||
|
string UIWidget = "Checkbox";
|
||||||
|
> = {false};
|
||||||
|
float hsover
|
||||||
|
<
|
||||||
|
string UIName = "Overlap";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = 0.0;
|
||||||
|
float UIMax = 0.5;
|
||||||
|
> = {0.0};
|
||||||
|
float hshue_a
|
||||||
|
<
|
||||||
|
string UIName = "Global Hue";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hssat_a
|
||||||
|
<
|
||||||
|
string UIName = "Global Saturation";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hsval_a
|
||||||
|
<
|
||||||
|
string UIName = "Global Value";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hshue_r
|
||||||
|
<
|
||||||
|
string UIName = "Red Hue";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hssat_r
|
||||||
|
<
|
||||||
|
string UIName = "Red Saturation";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hsval_r
|
||||||
|
<
|
||||||
|
string UIName = "Red Value";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hshue_y
|
||||||
|
<
|
||||||
|
string UIName = "Yellow Hue";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hssat_y
|
||||||
|
<
|
||||||
|
string UIName = "Yellow Saturation";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hsval_y
|
||||||
|
<
|
||||||
|
string UIName = "Yellow Value";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hshue_g
|
||||||
|
<
|
||||||
|
string UIName = "Green Hue";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hssat_g
|
||||||
|
<
|
||||||
|
string UIName = "Green Saturation";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hsval_g
|
||||||
|
<
|
||||||
|
string UIName = "Green Value";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hshue_c
|
||||||
|
<
|
||||||
|
string UIName = "Cyan Hue";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hssat_c
|
||||||
|
<
|
||||||
|
string UIName = "Cyan Saturation";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hsval_c
|
||||||
|
<
|
||||||
|
string UIName = "Cyan Value";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hshue_b
|
||||||
|
<
|
||||||
|
string UIName = "Blue Hue";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hssat_b
|
||||||
|
<
|
||||||
|
string UIName = "Blue Saturation";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hsval_b
|
||||||
|
<
|
||||||
|
string UIName = "Blue Value";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hshue_m
|
||||||
|
<
|
||||||
|
string UIName = "Magenta Hue";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hssat_m
|
||||||
|
<
|
||||||
|
string UIName = "Magenta Saturation";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
float hsval_m
|
||||||
|
<
|
||||||
|
string UIName = "Magenta Value";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = -1.0;
|
||||||
|
float UIMax = 1.0;
|
||||||
|
> = {0.0};
|
||||||
|
/* colour balance */
|
||||||
|
|
|
||||||
|
|
@ -64,32 +64,11 @@
|
||||||
#define fogfactor (isfog(WeatherAndTime.x)\
|
#define fogfactor (isfog(WeatherAndTime.x)\
|
||||||
?isfog(WeatherAndTime.y)?(1.0):(WeatherAndTime.z)\
|
?isfog(WeatherAndTime.y)?(1.0):(WeatherAndTime.z)\
|
||||||
:isfog(WeatherAndTime.y)?(1.0-WeatherAndTime.z):(0.0))
|
:isfog(WeatherAndTime.y)?(1.0-WeatherAndTime.z):(0.0))
|
||||||
/* asset definitions */
|
|
||||||
/* ascii art font */
|
|
||||||
#define FONT_WIDTH 8
|
|
||||||
#define FONT_HEIGHT 4096
|
|
||||||
#define GLYPH_WIDTH 8
|
|
||||||
#define GLYPH_HEIGHT 16
|
|
||||||
#define FONT_LEVELS 255
|
|
||||||
/*
|
|
||||||
aspect correction for certain overlays
|
|
||||||
uncommented : the textures are 1:1 and must be corrected
|
|
||||||
commented : the textures are 16:9 or whatever ratio you use
|
|
||||||
*/
|
|
||||||
//#define ASPECT_LENSDIRT
|
|
||||||
/* texture sizes */
|
/* texture sizes */
|
||||||
#define NOISESIZE 256.0
|
#define NOISESIZE 256.0
|
||||||
#define HEATSIZE 1024.0
|
#define HEATSIZE 1024.0
|
||||||
#define FROSTSIZE 1024.0
|
#define FROSTSIZE 1024.0
|
||||||
/* LUT mode (use only one) */
|
|
||||||
//#define LUTMODE_LEGACY
|
|
||||||
//#define LUTMODE_16
|
|
||||||
#define LUTMODE_64
|
|
||||||
/* !NEW! volume map option, faster and more precise, no legacy tex support */
|
|
||||||
#define VOLUME_LUTS
|
|
||||||
/* some textures can be provided as DDS rather than PNG to save space */
|
/* some textures can be provided as DDS rather than PNG to save space */
|
||||||
//#define HEAT_DDS
|
//#define HEAT_DDS
|
||||||
//#define LENSDIRT_DDS
|
|
||||||
//#define FROST_DDS
|
//#define FROST_DDS
|
||||||
//#define FROSTBUMP_DDS
|
|
||||||
//#define VIGNETTE_DDS
|
//#define VIGNETTE_DDS
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 509 KiB |
Reference in a new issue