diff --git a/enbseries/VERSION b/enbseries/VERSION index 53304ac..360a68f 100644 --- a/enbseries/VERSION +++ b/enbseries/VERSION @@ -1 +1 @@ -2.6.0sk "Suddenly Volumes" +2.7.0sk "Retro Retirement" diff --git a/enbseries/effect.txt.ini b/enbseries/effect.txt.ini index 566dcb9..e01aeda 100644 --- a/enbseries/effect.txt.ini +++ b/enbseries/effect.txt.ini @@ -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 diff --git a/enbseries/enbeffect.fx.ini b/enbseries/enbeffect.fx.ini index f7da364..6189c7f 100644 --- a/enbseries/enbeffect.fx.ini +++ b/enbseries/enbeffect.fx.ini @@ -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 diff --git a/enbseries/enbeffectprepass.fx.ini b/enbseries/enbeffectprepass.fx.ini index ea3a1f6..dd14892 100644 --- a/enbseries/enbeffectprepass.fx.ini +++ b/enbseries/enbeffectprepass.fx.ini @@ -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 diff --git a/enbseries/menbcgalut.png b/enbseries/menbcgalut.png deleted file mode 100644 index 55cccbc..0000000 Binary files a/enbseries/menbcgalut.png and /dev/null differ diff --git a/enbseries/menbdots.png b/enbseries/menbdots.png deleted file mode 100644 index 2027ba1..0000000 Binary files a/enbseries/menbdots.png and /dev/null differ diff --git a/enbseries/menbeffectfilters.fx b/enbseries/menbeffectfilters.fx index 9ffc7c1..ec98f9e 100644 --- a/enbseries/menbeffectfilters.fx +++ b/enbseries/menbeffectfilters.fx @@ -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); } diff --git a/enbseries/menbeffectinternals.fx b/enbseries/menbeffectinternals.fx index c97d19a..a3c3c88 100644 --- a/enbseries/menbeffectinternals.fx +++ b/enbseries/menbeffectinternals.fx @@ -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 = ; - MinFilter = POINT; - MagFilter = POINT; + MinFilter = LINEAR; + MagFilter = LINEAR; MipFilter = NONE; AddressU = Wrap; AddressV = Wrap; @@ -242,7 +176,7 @@ sampler2D SamplerNoise2 = sampler_state { Texture = ; 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 = ; @@ -315,71 +248,6 @@ sampler3D SamplerLUTID = sampler_state MaxMipLevel = 0; MipMapLodBias = 0; }; -#else -#ifdef LUTMODE_LEGACY -sampler2D SamplerLUT = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = LINEAR; - MipFilter = NONE; - AddressU = Clamp; - AddressV = Clamp; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -#else -sampler2D SamplerLUTN = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = LINEAR; - MipFilter = NONE; - AddressU = Clamp; - AddressV = Clamp; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -sampler2D SamplerLUTD = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = LINEAR; - MipFilter = NONE; - AddressU = Clamp; - AddressV = Clamp; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -sampler2D SamplerLUTIN = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = LINEAR; - MipFilter = NONE; - AddressU = Clamp; - AddressV = Clamp; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -sampler2D SamplerLUTID = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = LINEAR; - MipFilter = NONE; - AddressU = Clamp; - AddressV = Clamp; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -#endif -#endif sampler2D SamplerTonemap = sampler_state { Texture = ; diff --git a/enbseries/menbeffectsettings.fx b/enbseries/menbeffectsettings.fx index 8f1d7a2..a9d964d 100644 --- a/enbseries/menbeffectsettings.fx +++ b/enbseries/menbeffectsettings.fx @@ -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 diff --git a/enbseries/menbegalut.png b/enbseries/menbegalut.png deleted file mode 100644 index 9615797..0000000 Binary files a/enbseries/menbegalut.png and /dev/null differ diff --git a/enbseries/menbextrafilters.fx b/enbseries/menbextrafilters.fx index a8cad61..ab1650a 100644 --- a/enbseries/menbextrafilters.fx +++ b/enbseries/menbextrafilters.fx @@ -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 { diff --git a/enbseries/menbextrainternals.fx b/enbseries/menbextrainternals.fx index 53a486d..0af77ed 100644 --- a/enbseries/menbextrainternals.fx +++ b/enbseries/menbextrainternals.fx @@ -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 = ; - MinFilter = LINEAR; - MagFilter = POINT; - MipFilter = NONE; - AddressU = Wrap; - AddressV = Wrap; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -sampler2D SamplerDots = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = LINEAR; - MipFilter = NONE; - AddressU = Wrap; - AddressV = Wrap; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -sampler2D SamplerCGA = sampler_state -{ - Texture = ; - MinFilter = POINT; - MagFilter = POINT; - MipFilter = NONE; - AddressU = Wrap; - AddressV = Clamp; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -sampler2D SamplerEGA = sampler_state -{ - Texture = ; - MinFilter = POINT; - MagFilter = POINT; - MipFilter = NONE; - AddressU = Wrap; - AddressV = Clamp; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -sampler2D SamplerVGA = sampler_state -{ - Texture = ; - MinFilter = POINT; - MagFilter = POINT; - MipFilter = NONE; - AddressU = Wrap; - AddressV = Clamp; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; sampler2D SamplerVignette = sampler_state { Texture = ; diff --git a/enbseries/menbextrasettings.fx b/enbseries/menbextrasettings.fx index ad65346..021b631 100644 --- a/enbseries/menbextrasettings.fx +++ b/enbseries/menbextrasettings.fx @@ -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 */ diff --git a/enbseries/menbglobaldefs.fx b/enbseries/menbglobaldefs.fx index d77143e..715c360 100644 --- a/enbseries/menbglobaldefs.fx +++ b/enbseries/menbglobaldefs.fx @@ -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 \ No newline at end of file diff --git a/enbseries/menblut64v_day.dds b/enbseries/menblut_day.dds similarity index 100% rename from enbseries/menblut64v_day.dds rename to enbseries/menblut_day.dds diff --git a/enbseries/menblut64v_interiorday.dds b/enbseries/menblut_interiorday.dds similarity index 100% rename from enbseries/menblut64v_interiorday.dds rename to enbseries/menblut_interiorday.dds diff --git a/enbseries/menblut64v_interiornight.dds b/enbseries/menblut_interiornight.dds similarity index 100% rename from enbseries/menblut64v_interiornight.dds rename to enbseries/menblut_interiornight.dds diff --git a/enbseries/menblut64v_night.dds b/enbseries/menblut_night.dds similarity index 100% rename from enbseries/menblut64v_night.dds rename to enbseries/menblut_night.dds diff --git a/enbseries/menbvgaluma.png b/enbseries/menbvgaluma.png deleted file mode 100644 index ff6cccf..0000000 Binary files a/enbseries/menbvgaluma.png and /dev/null differ diff --git a/enbseries/menbvgalut.png b/enbseries/menbvgalut.png deleted file mode 100644 index b7d5e90..0000000 Binary files a/enbseries/menbvgalut.png and /dev/null differ