1
Fork 0

MariENB Skyrim 2.7.0

This commit is contained in:
Marisa the Magician 2019-04-07 17:45:16 +02:00
commit 3024ce66bc
20 changed files with 426 additions and 888 deletions

View file

@ -1 +1 @@
2.6.0sk "Suddenly Volumes"
2.7.0sk "Retro Retirement"

View file

@ -1,17 +1,10 @@
[EFFECT.TXT]
TECHNIQUE=0
Enable Block GFX=false
Emulated Resolution Width=0.0
Emulated Resolution Height=0.0
Palette Type=3
CGA Palette=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 Oil Filter=false
Enable FXAA=false
FXAA Span Max=4.0
FXAA Reduce Mul=16.0
FXAA Reduce Min=128.0
Enable Chroma Key=false
Chroma Key Red=1.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 Horizontal 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
Blur Sampling Range=0.17
Enable Sharp=true
@ -45,26 +42,37 @@ Border Blur Contrast=2.25
Border Blur Intensity=1.52
Border Blur Shift=0.0
Border Blur Radius=1.0
Enable Oil=false
Oil Radius=1.0
Oil Smoothing Radius=1.0
Enable ASCII=false
ASCII Monochrome=true
ASCII Blend=0.0
Enable Dot Matrix=false
Dot Size=1
Dot Blend=0.4
Dot Intensity=2.41
Dot Contrast=1.25
Enable Curvature=false
Curve Chromatic Aberration=0.62
Curve Zooming=50.34
Curve Distortion=0.0
Selected Filter=1
Van Gogh Sky=false
Van Gogh Animation Speed=0.0
Enable Oil Filter=false
Enable FXAA=false
FXAA Span Max=4.0
FXAA Reduce Mul=16.0
FXAA Reduce Min=128.0
Enable Color Matrix=false
Color Matrix Red Red=1.0
Color Matrix Red Green=0.0
Color Matrix Red Blue=0.0
Color Matrix Green Red=0.0
Color Matrix Green Green=1.0
Color Matrix Green Blue=0.0
Color Matrix Blue Red=0.0
Color Matrix Blue Green=0.0
Color Matrix Blue Blue=1.0
Normalize Matrix=false
Enable Hue-Saturation=false
Overlap=0.0
Global Hue=0.0
Global Saturation=0.0
Global Value=0.0
Red Hue=0.0
Red Saturation=0.0
Red Value=0.0
Yellow Hue=0.0
Yellow Saturation=0.0
Yellow Value=0.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

View file

@ -36,6 +36,11 @@ Grain Pass 2 Magnification 2=9.42
Grain Pass 2 Magnification 3=6.29
Grain Contrast=6.61
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
Adaptation Min Night=0.32
Adaptation Min Day=0.61
@ -82,38 +87,6 @@ Uncharted2 Linear White Night=14.32
Uncharted2 Linear White Day=19.109999
Uncharted2 Linear White Interior Night=14.339999
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
Grading Intensity Night Red=0.97
Grading Intensity Night Green=0.96
@ -187,16 +160,8 @@ LUT Blend Night=0.25
LUT Blend Day=0.28
LUT Blend Interior Night=0.22
LUT Blend Interior Day=0.26
Enable ENB Palette=false
Palette Blend=1.0
Enable Technicolor=true
Technicolor Blend=0.6
Enable Post Dither=true
Dither Pattern=2
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

View file

@ -31,6 +31,37 @@ Edgevision Fade Intensity Interior Day=590.840027
Edgevision Contrast=0.25
Edgevision Intensity=8.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
SSAO Radius=0.05
SSAO Noise=0
@ -44,6 +75,7 @@ SSAO Fade Intensity Interior Night=481.650024
SSAO Fade Intensity Interior Day=573.030029
SSAO Intensity=1.25
SSAO Contrast=0.65
SSAO Shift=-0.25
SSAO Blending=0.8
SSAO Blur=true
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 Day=0.64
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

View file

@ -331,68 +331,24 @@ float3 GradingGame( float3 res )
/* LUT colour grading */
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,
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_d = tex3D(SamplerLUTD,res).rgb;
float3 tcl_in = tex3D(SamplerLUTIN,res).rgb;
float3 tcl_id = tex3D(SamplerLUTID,res).rgb;
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);
return lerp(res,tcol,lutblend);
}

View file

@ -60,88 +60,22 @@ texture2D texNoise3
<
string ResourceName = "menbnoise3.png";
>;
#ifdef VOLUME_LUTS
texture3D texLUTN
<
#ifdef LUTMODE_16
string ResourceName = "menblut16v_night.dds";
#endif
#ifdef LUTMODE_64
string ResourceName = "menblut64v_night.dds";
#endif
string ResourceName = "menblut_night.dds";
>;
texture3D texLUTD
<
#ifdef LUTMODE_16
string ResourceName = "menblut16v_day.dds";
#endif
#ifdef LUTMODE_64
string ResourceName = "menblut64v_day.dds";
#endif
string ResourceName = "menblut_day.dds";
>;
texture3D texLUTIN
<
#ifdef LUTMODE_16
string ResourceName = "menblut16v_interiornight.dds";
#endif
#ifdef LUTMODE_64
string ResourceName = "menblut64v_interiornight.dds";
#endif
string ResourceName = "menblut_interiornight.dds";
>;
texture3D texLUTID
<
#ifdef LUTMODE_16
string ResourceName = "menblut16v_interiorday.dds";
#endif
#ifdef LUTMODE_64
string ResourceName = "menblut64v_interiorday.dds";
#endif
string ResourceName = "menblut_interiorday.dds";
>;
#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
<
string ResourceName = "menbfilmlut.png";
@ -229,8 +163,8 @@ sampler2D _s7 = sampler_state
sampler2D SamplerNoise1 = sampler_state
{
Texture = <texNoise1>;
MinFilter = POINT;
MagFilter = POINT;
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = NONE;
AddressU = Wrap;
AddressV = Wrap;
@ -242,7 +176,7 @@ sampler2D SamplerNoise2 = sampler_state
{
Texture = <texNoise2>;
MinFilter = LINEAR;
MagFilter = POINT;
MagFilter = LINEAR;
MipFilter = NONE;
AddressU = Wrap;
AddressV = Wrap;
@ -262,7 +196,6 @@ sampler2D SamplerNoise3 = sampler_state
MaxMipLevel = 0;
MipMapLodBias = 0;
};
#ifdef VOLUME_LUTS
sampler3D SamplerLUTN = sampler_state
{
Texture = <texLUTN>;
@ -315,71 +248,6 @@ sampler3D SamplerLUTID = sampler_state
MaxMipLevel = 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
{
Texture = <texTonemap>;

View file

@ -904,36 +904,6 @@ float lutblend_id
string UIName = "LUT Blend Interior Day";
string UIWidget = "Spinner";
> = {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 */
string str_tech = "Technicolor";
bool techenable

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View file

@ -31,142 +31,6 @@ float3 hsv2rgb( float3 c )
float3 p = abs(frac(c.x+K.xyz)*6.0-K.w);
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
{
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 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 */
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;
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
{
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_Kuwahara();
PixelShader = compile ps_3_0 PS_Append();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
@ -530,7 +454,7 @@ technique PostProcess2
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_MedianSmooth();
PixelShader = compile ps_3_0 PS_Kuwahara();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
@ -547,7 +471,7 @@ technique PostProcess3
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_FXAA();
PixelShader = compile ps_3_0 PS_MedianSmooth();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
@ -564,7 +488,7 @@ technique PostProcess4
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_Blur();
PixelShader = compile ps_3_0 PS_FXAA();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
@ -581,7 +505,7 @@ technique PostProcess5
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_Sharp();
PixelShader = compile ps_3_0 PS_Blur();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
@ -598,7 +522,7 @@ technique PostProcess6
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_Shift();
PixelShader = compile ps_3_0 PS_Sharp();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
@ -615,7 +539,7 @@ technique PostProcess7
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_ChromaKey();
PixelShader = compile ps_3_0 PS_Shift();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
@ -632,7 +556,7 @@ technique PostProcess8
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_Vignette();
PixelShader = compile ps_3_0 PS_ChromaKey();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
@ -649,7 +573,7 @@ technique PostProcess9
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_Retro();
PixelShader = compile ps_3_0 PS_Vignette();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
@ -666,7 +590,7 @@ technique PostProcess10
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_ASCII();
PixelShader = compile ps_3_0 PS_Curvature();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
@ -679,40 +603,6 @@ technique PostProcess10
}
}
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
{

View file

@ -10,35 +10,6 @@ static const float gauss4[4] =
{
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 */
float4 ScreenSize;
float ENightDayFactor;
@ -47,26 +18,6 @@ float4 Timer;
/* samplers and textures */
texture2D texColor;
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
<
#ifdef VIGNETTE_DDS
@ -111,66 +62,6 @@ sampler2D SamplerDepth = sampler_state
MaxMipLevel = 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
{
Texture = <texVignette>;

View file

@ -4,142 +4,6 @@
Part of MariENB, the personal ENB of Marisa.
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:
-1 : Disabled
@ -178,25 +42,6 @@ float fxaareducemin
string UIName = "FXAA Reduce Min";
string UIWidget = "Checkbox";
> = {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 */
string str_mask = "Depth Chroma Key";
bool maskenable
@ -257,38 +102,6 @@ float masktilty
string UIName = "Chroma Key Depth Vertical Tilt";
string UIWidget = "Spinner";
> = {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 */
string str_curve = "Lens Curvature";
bool curveenable
@ -454,3 +267,222 @@ float bblurradius
string UIWidget = "Spinner";
float UIMin = 0.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 */

View file

@ -64,32 +64,11 @@
#define fogfactor (isfog(WeatherAndTime.x)\
?isfog(WeatherAndTime.y)?(1.0):(WeatherAndTime.z)\
: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 */
#define NOISESIZE 256.0
#define HEATSIZE 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 */
//#define HEAT_DDS
//#define LENSDIRT_DDS
//#define FROST_DDS
//#define FROSTBUMP_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