From 539036c7e2413b7d26b8d36c4cc04c69240d6f98 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sun, 7 Apr 2019 17:41:42 +0200 Subject: [PATCH] MariENB Skyrim 2.2.0 --- enbseries.ini | 64 ++++---- enbseries/VERSION | 1 + enbseries/effect.txt.ini | 12 +- enbseries/enbbloom.fx.ini | 82 +++++------ enbseries/enbeffect.fx.ini | 32 ++-- enbseries/enbeffectprepass.fx.ini | 32 ++-- enbseries/menbbloomfilters.fx | 10 +- enbseries/menbbloominternals.fx | 8 +- enbseries/menbextrafilters.fx | 28 +++- enbseries/menbextrasettings.fx | 25 ++++ enbseries/menbglobaldefs.fx | 3 - enbseries/menbprepassfilters.fx | 237 +++++------------------------- enbseries/menbprepasssettings.fx | 67 ++++++--- 13 files changed, 258 insertions(+), 343 deletions(-) create mode 100644 enbseries/VERSION diff --git a/enbseries.ini b/enbseries.ini index a09b72b..ba655c0 100644 --- a/enbseries.ini +++ b/enbseries.ini @@ -85,8 +85,8 @@ ILAmountInterior=1.38 AOIntensity=1.17 AOIntensityInterior=1.21 AOType=0 -AOMixingType=2 -AOMixingTypeInterior=2 +AOMixingType=0 +AOMixingTypeInterior=0 UseOldType=false EnableDenoiser=true EnableSupersampling=false @@ -109,7 +109,7 @@ AdaptationMax=1.25 [ENVIRONMENT] DirectLightingIntensityDay=1.35 -DirectLightingIntensityNight=1.27 +DirectLightingIntensityNight=1.35 DirectLightingIntensityInterior=1.014688 DirectLightingCurveDay=1.35 DirectLightingCurveNight=1.27 @@ -136,10 +136,10 @@ AmbientLightingDesaturationDay=0.0 AmbientLightingDesaturationNight=0.0 AmbientLightingDesaturationInterior=0.0 PointLightingIntensityDay=1.08 -PointLightingIntensityNight=1.17 +PointLightingIntensityNight=1.18 PointLightingIntensityInterior=0.825 -PointLightingCurveDay=1.03875 -PointLightingCurveNight=1.17 +PointLightingCurveDay=1.27 +PointLightingCurveNight=1.33 PointLightingCurveInterior=0.825 PointLightingDesaturationDay=0.0 PointLightingDesaturationNight=0.0 @@ -156,23 +156,23 @@ ColorPowInterior=0.9 DirectLightingIntensitySunrise=1.31 DirectLightingIntensitySunset=1.39 DirectLightingIntensityInteriorDay=1.32 -DirectLightingIntensityInteriorNight=1.14 +DirectLightingIntensityInteriorNight=1.29 DirectLightingCurveSunrise=1.31 DirectLightingCurveSunset=1.39 DirectLightingCurveInteriorDay=1.38 -DirectLightingCurveInteriorNight=1.45 +DirectLightingCurveInteriorNight=1.49 DirectLightingDesaturationSunrise=0.12 DirectLightingDesaturationSunset=0.12 DirectLightingDesaturationInteriorDay=0.11 DirectLightingDesaturationInteriorNight=0.18 SpecularAmountMultiplierSunrise=1.83 SpecularAmountMultiplierSunset=1.87 -SpecularAmountMultiplierInteriorDay=1.84 +SpecularAmountMultiplierInteriorDay=1.85 SpecularAmountMultiplierInteriorNight=1.93 SpecularPowerMultiplierSunrise=0.631 SpecularPowerMultiplierSunset=0.661 -SpecularPowerMultiplierInteriorDay=0.711 -SpecularPowerMultiplierInteriorNight=0.611 +SpecularPowerMultiplierInteriorDay=0.811 +SpecularPowerMultiplierInteriorNight=0.651 SpecularFromLightSunrise=0.0 SpecularFromLightSunset=0.0 SpecularFromLightInteriorDay=0.0 @@ -217,23 +217,23 @@ PointLightingIntensitySunrise=1.14 PointLightingIntensitySunset=1.18 PointLightingIntensityInteriorDay=1.1 PointLightingIntensityInteriorNight=1.13 -PointLightingCurveSunrise=1.16 -PointLightingCurveSunset=1.2 -PointLightingCurveInteriorDay=1.11 -PointLightingCurveInteriorNight=1.11 +PointLightingCurveSunrise=1.35 +PointLightingCurveSunset=1.37 +PointLightingCurveInteriorDay=1.27 +PointLightingCurveInteriorNight=1.33 PointLightingDesaturationSunrise=0.0 PointLightingDesaturationSunset=0.0 PointLightingDesaturationInteriorDay=0.0 PointLightingDesaturationInteriorNight=0.0 -ParticleLightsIntensitySunrise=0.25 -ParticleLightsIntensityDay=0.21 -ParticleLightsIntensitySunset=0.23 -ParticleLightsIntensityNight=0.35 -ParticleLightsIntensityInteriorDay=0.26 -ParticleLightsIntensityInteriorNight=0.38 +ParticleLightsIntensitySunrise=0.63 +ParticleLightsIntensityDay=0.61 +ParticleLightsIntensitySunset=0.63 +ParticleLightsIntensityNight=0.65 +ParticleLightsIntensityInteriorDay=0.6 +ParticleLightsIntensityInteriorNight=0.68 FogColorMultiplierSunrise=0.39 FogColorMultiplierSunset=0.35 -FogColorMultiplierInteriorDay=0.76 +FogColorMultiplierInteriorDay=0.79 FogColorMultiplierInteriorNight=0.15 FogColorCurveSunrise=1.04 FogColorCurveSunset=1.06 @@ -300,12 +300,12 @@ AmbientColorFilterBottomDawn=0, 0, 0 AmbientColorFilterBottomDusk=0, 0, 0 PointLightingIntensityDawn=1.21 PointLightingIntensityDusk=1.22 -PointLightingCurveDawn=1.18 -PointLightingCurveDusk=1.24 +PointLightingCurveDawn=1.44 +PointLightingCurveDusk=1.4 PointLightingDesaturationDawn=0.0 PointLightingDesaturationDusk=0.0 -ParticleLightsIntensityDawn=0.33 -ParticleLightsIntensityDusk=0.34 +ParticleLightsIntensityDawn=0.66 +ParticleLightsIntensityDusk=0.64 FogColorMultiplierDawn=0.31 FogColorMultiplierDusk=0.23 FogColorCurveDawn=1.08 @@ -334,7 +334,7 @@ CloudsDesaturationNight=0.0 CloudsDesaturationInterior=0.14 CloudsEdgeClamp=0.36 CloudsEdgeIntensity=1.39 -GradientIntensityDay=1.080001 +GradientIntensityDay=1.050001 GradientIntensityNight=0.510001 GradientIntensityInterior=0.85 GradientDesaturationDay=0.14 @@ -346,10 +346,10 @@ GradientTopIntensityInterior=5.6125 GradientTopCurveDay=1.19 GradientTopCurveNight=1.91 GradientTopCurveInterior=2.15 -GradientMiddleIntensityDay=1.190001 +GradientMiddleIntensityDay=1.120001 GradientMiddleIntensityNight=0.700001 GradientMiddleIntensityInterior=2.4 -GradientMiddleCurveDay=1.16 +GradientMiddleCurveDay=1.24 GradientMiddleCurveNight=1.64 GradientMiddleCurveInterior=1.65 GradientHorizonIntensityDay=0.98 @@ -561,7 +561,7 @@ SpecularAmountMultiplierSunrise=1.83 SpecularAmountMultiplierDay=1.78 SpecularAmountMultiplierSunset=1.87 SpecularAmountMultiplierNight=1.97 -SpecularAmountMultiplierInteriorDay=1.25 +SpecularAmountMultiplierInteriorDay=1.26 SpecularAmountMultiplierInteriorNight=1.41 SpecularPowerMultiplierSunrise=2.25 SpecularPowerMultiplierDay=2.28 @@ -812,8 +812,8 @@ EnableSupersampling=false ExteriorEnable=true InteriorEnable=true IgnoreWeatherSystem=true -AmountInterior=0.81 -PowerInterior=1.11 +AmountInterior=0.97 +PowerInterior=1.1 [IMAGEBASEDLIGHTING] AdditiveAmountSunrise=0.02 diff --git a/enbseries/VERSION b/enbseries/VERSION new file mode 100644 index 0000000..068a509 --- /dev/null +++ b/enbseries/VERSION @@ -0,0 +1 @@ +2.2.0-1 "Waifus And Lore" \ No newline at end of file diff --git a/enbseries/effect.txt.ini b/enbseries/effect.txt.ini index ba6588b..8712eae 100644 --- a/enbseries/effect.txt.ini +++ b/enbseries/effect.txt.ini @@ -10,9 +10,9 @@ CGA Palette=1 EGA Palette=0 Dithering Pattern=4 Contrast Modifier=0.75 -Saturation Modifier=1.5 -Dither Offset=-0.2 -Dither Range=0.3 +Saturation Modifier=1.25 +Dither Offset=-0.1 +Dither Range=0.2 Enable ASCII=false ASCII Monochrome=false ASCII Blend=0.0 @@ -20,7 +20,7 @@ Enable Chroma Key=false Chroma Key Red=1.0 Chroma Key Green=0.0 Chroma Key Blue=0.8 -Chroma Key Depth=0.99 +Chroma Key Depth=0.9 Enable Dot Matrix=false Dot Size=1 Dot Blend=0.3 @@ -64,3 +64,7 @@ Grain Intensity=0.004 Grain Saturation Shadow=1.0 Grain Intensity Shadow=0.001 Shadow Noise Curve=0.095 +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 diff --git a/enbseries/enbbloom.fx.ini b/enbseries/enbbloom.fx.ini index c694fca..9fcbd82 100644 --- a/enbseries/enbbloom.fx.ini +++ b/enbseries/enbbloom.fx.ini @@ -1,21 +1,21 @@ [ENBBLOOM.FX] TECHNIQUE=0 -Bloom Intensity Night=0.63 -Bloom Intensity Day=0.61 -Bloom Intensity Interior Night=0.65 -Bloom Intensity Interior Day=0.63 -Bloom Contrast Night=1.0 -Bloom Contrast Day=1.0 -Bloom Contrast Interior Night=1.0 -Bloom Contrast Interior Day=1.0 -Bloom Saturation Night=0.98 -Bloom Saturation Day=0.96 -Bloom Saturation Interior Night=0.98 -Bloom Saturation Interior Day=0.97 -Bloom Offset Night=-0.09 -Bloom Offset Day=-0.18 -Bloom Offset Interior Night=-0.07 -Bloom Offset Interior Day=-0.13 +Bloom Intensity Night=0.7 +Bloom Intensity Day=0.64 +Bloom Intensity Interior Night=0.72 +Bloom Intensity Interior Day=0.66 +Bloom Contrast Night=0.92 +Bloom Contrast Day=0.96 +Bloom Contrast Interior Night=0.9 +Bloom Contrast Interior Day=0.94 +Bloom Saturation Night=1.11 +Bloom Saturation Day=1.07 +Bloom Saturation Interior Night=1.16 +Bloom Saturation Interior Day=1.12 +Bloom Offset Night=-0.12 +Bloom Offset Day=-0.17 +Bloom Offset Interior Night=-0.11 +Bloom Offset Interior Day=-0.14 Bloom Intensity Cap Night=20.0 Bloom Intensity Cap Day=20.0 Bloom Intensity Cap Interior Night=20.0 @@ -35,15 +35,15 @@ Blue Shift Interior Day Green=0.32 Blue Shift Interior Day Blue=1.39 Blue Shift Intensity Night=0.32 Blue Shift Intensity Day=0.45 -Blue Shift Intensity Interior Night=0.38 -Blue Shift Intensity Interior Day=0.43 +Blue Shift Intensity Interior Night=0.49 +Blue Shift Intensity Interior Day=0.65 Blue Shift Luminance Factor Per-pass=0.41 Blue Shift Color Factor Per-pass=0.92 Enable Anamorphic Bloom=true -Anamorphic Bloom Blend Night=0.52 -Anamorphic Bloom Blend Day=0.59 -Anamorphic Bloom Blend Interior Night=0.48 -Anamorphic Bloom Blend Interior Day=0.54 +Anamorphic Bloom Blend Night=0.59 +Anamorphic Bloom Blend Day=0.56 +Anamorphic Bloom Blend Interior Night=0.62 +Anamorphic Bloom Blend Interior Day=0.56 Anamorphic Bloom Blue Shift Night Red=-0.39 Anamorphic Bloom Blue Shift Night Green=-0.68 Anamorphic Bloom Blue Shift Night Blue=1.39 @@ -56,21 +56,21 @@ Anamorphic Bloom Blue Shift Interior Night Blue=1.54 Anamorphic Bloom Blue Shift Interior Day Red=-0.88 Anamorphic Bloom Blue Shift Interior Day Green=0.17 Anamorphic Bloom Blue Shift Interior Day Blue=1.65 -Anamorphic Bloom Blue Shift Intensity Night=1.33 -Anamorphic Bloom Blue Shift Intensity Day=1.2 -Anamorphic Bloom Blue Shift Interior Night=1.52 -Anamorphic Bloom Blue Shift Interior Day=1.35 -Anamorphic Bloom Contrast Night=1.13 -Anamorphic Bloom Contrast Day=1.19 -Anamorphic Bloom Contrast Interior Night=1.2 -Anamorphic Bloom Contrast Interior Day=1.25 +Anamorphic Bloom Blue Shift Intensity Night=1.59 +Anamorphic Bloom Blue Shift Intensity Day=1.49 +Anamorphic Bloom Blue Shift Interior Night=1.65 +Anamorphic Bloom Blue Shift Interior Day=1.55 +Anamorphic Bloom Contrast Night=1.16 +Anamorphic Bloom Contrast Day=1.21 +Anamorphic Bloom Contrast Interior Night=1.15 +Anamorphic Bloom Contrast Interior Day=1.17 Anamorphic Bloom Radius Multiplier=4.0 -Bloom Pass 1 Blend=0.97 -Bloom Pass 2 Blend=0.86 -Bloom Pass 3 Blend=0.79 -Bloom Pass 4 Blend=0.63 -Bloom Pass 7 Blend=0.49 -Bloom Pass 8 Blend=0.34 +Bloom Pass 1 Blend=0.95 +Bloom Pass 2 Blend=0.81 +Bloom Pass 3 Blend=0.68 +Bloom Pass 4 Blend=0.54 +Bloom Pass 7 Blend=0.42 +Bloom Pass 8 Blend=0.28 Bloom Prepass Blend=0.0 Bloom Base Blend=0.0 Enable Lens Dirt=false @@ -78,13 +78,13 @@ Dirt Pass 1 Blend=0.02 Dirt Pass 2 Blend=0.05 Dirt Pass 3 Blend=0.13 Dirt Pass 4 Blend=0.25 -Dirt Pass 7 Blend=1.15 -Dirt Pass 8 Blend=3.28 +Dirt Pass 7 Blend=0.76 +Dirt Pass 8 Blend=4.28 Dirt Prepass Blend=0.0 Dirt Base Blend=0.0 Dirt Texture Preserve Aspect=true -Dirt Contrast=0.88 -Dirt Factor=0.74 +Dirt Contrast=0.8 +Dirt Factor=0.91 ------Options & Settings----=false Bloom Quality=0.0 ------Depth-----------------=false @@ -156,4 +156,4 @@ Noise Intensity Exterior=0.003 Noise Intensity Interior=0.002 Bloom Blur Radius X=1.0 Bloom Blur Radius Y=1.0 -Dirt Saturation=0.46 +Dirt Saturation=0.45 diff --git a/enbseries/enbeffect.fx.ini b/enbseries/enbeffect.fx.ini index 80e01f6..8bc6f8c 100644 --- a/enbseries/enbeffect.fx.ini +++ b/enbseries/enbeffect.fx.ini @@ -19,12 +19,12 @@ Grain Pass 2 Magnification 2=0.1 Grain Pass 2 Magnification 3=0.18 Grain Contrast=2.54 Enable Adaptation=true -Adaptation Min Night=0.63 -Adaptation Min Day=0.92 -Adaptation Min Interior Night=0.62 -Adaptation Min Interior Day=0.67 +Adaptation Min Night=1.04 +Adaptation Min Day=1.08 +Adaptation Min Interior Night=1.01 +Adaptation Min Interior Day=1.08 Adaptation Max Night=1.49 -Adaptation Max Day=1.67 +Adaptation Max Day=1.69 Adaptation Max Interior Night=1.35 Adaptation Max Interior Day=1.64 Enable Tonemapping=true @@ -35,23 +35,23 @@ Tonemap Shoulder Strength Interior Day=0.43 Tonemap Linear Strength Night=1.32 Tonemap Linear Strength Day=1.34 Tonemap Linear Strength Interior Night=1.37 -Tonemap Linear Strength Interior Day=1.3 +Tonemap Linear Strength Interior Day=1.28 Tonemap Linear Angle Night=0.2 Tonemap Linear Angle Day=0.31 Tonemap Linear Angle Interior Night=0.14 -Tonemap Linear Angle Interior Day=0.19 +Tonemap Linear Angle Interior Day=0.2 Tonemap Toe Strength Night=1.27 Tonemap Toe Strength Day=1.28 Tonemap Toe Strength Interior Night=1.26 -Tonemap Toe Strength Interior Day=1.36 +Tonemap Toe Strength Interior Day=1.38 Tonemap Toe Numerator Night=3.63 Tonemap Toe Numerator Day=3.35 Tonemap Toe Numerator Interior Night=3.58 -Tonemap Toe Numerator Interior Day=3.1 +Tonemap Toe Numerator Interior Day=3.19 Tonemap Toe Denominator Night=0.99 Tonemap Toe Denominator Day=0.9 Tonemap Toe Denominator Interior Night=1.05 -Tonemap Toe Denominator Interior Day=0.93 +Tonemap Toe Denominator Interior Day=1.04 Tonemap Linear White Night=4.72 Tonemap Linear White Day=4.9 Tonemap Linear White Interior Night=4.85 @@ -115,12 +115,12 @@ Grading Color Factor Interior Day=-0.04 Enable HSV Grading=true Grading Saturation Intensity Night=1.05 Grading Saturation Intensity Day=1.07 -Grading Saturation Intensity Interior Night=1.05 -Grading Saturation Intensity Interior Day=1.07 +Grading Saturation Intensity Interior Night=1.06 +Grading Saturation Intensity Interior Day=1.09 Grading Saturation Contrast Night=1.01 Grading Saturation Contrast Day=1.04 -Grading Saturation Contrast Interior Night=1.04 -Grading Saturation Contrast Interior Day=1.09 +Grading Saturation Contrast Interior Night=1.0 +Grading Saturation Contrast Interior Day=1.02 Grading Value Intensity Night=1.09 Grading Value Intensity Day=1.06 Grading Value Intensity Interior Night=1.07 @@ -139,8 +139,8 @@ Fade Before Film Filters=false Enable LUT Grading=true LUT Blend Night=0.37 LUT Blend Day=0.47 -LUT Blend Interior Night=0.22 -LUT Blend Interior Day=0.28 +LUT Blend Interior Night=0.31 +LUT Blend Interior Day=0.41 LUT Preset=61 Enable ENB Palette=false Palette Blend=1.0 diff --git a/enbseries/enbeffectprepass.fx.ini b/enbseries/enbeffectprepass.fx.ini index 47f52e4..15648a9 100644 --- a/enbseries/enbeffectprepass.fx.ini +++ b/enbseries/enbeffectprepass.fx.ini @@ -1,5 +1,5 @@ [ENBEFFECTPREPASS.FX] -TECHNIQUE=2 +TECHNIQUE=0 Fixed Resolution Width=1920 Fixed Resolution Height=1080 Depth Cutoff=999998.0 @@ -48,14 +48,14 @@ DOF Intensity Night=475.899994 DOF Intensity Day=424.299988 DOF Intensity Interior Night=480.799988 DOF Intensity Interior Day=432.299988 -DOF Contrast Night=3.32 -DOF Contrast Day=3.7 -DOF Contrast Interior Night=3.02 -DOF Contrast Interior Day=3.43 -DOF Shift Night=0.0 -DOF Shift Day=0.0 -DOF Shift Interior Night=0.0 -DOF Shift Interior Day=0.0 +DOF Contrast Night=3.46 +DOF Contrast Day=3.84 +DOF Contrast Interior Night=3.2 +DOF Contrast Interior Day=3.5 +DOF Shift Night=-0.1 +DOF Shift Day=-0.15 +DOF Shift Interior Night=-0.05 +DOF Shift Interior Day=-0.1 DOF Fixed Focus Intensity Night=1.0 DOF Fixed Focus Intensity Day=1.0 DOF Fixed Focus Intensity Interior Night=1.0 @@ -147,7 +147,7 @@ SSAO Intensity=1.25 SSAO Contrast=0.65 SSAO Blending=0.8 SSAO Blur=true -SSAO Bilateral Factor=500.0 +SSAO Bilateral Factor=250.0 SSAO Range=20.0 SSAO Blur Radius=1.0 Debug SSAO=false @@ -180,7 +180,7 @@ SSAO Blur Use Less Samples=true Bokeh Threshold=1.0 Bokeh Blur Threshold=0.5 Bokeh Size=8.0 -DOF Gather Blur Radius=12.0 +DOF Gather Blur Radius=8.0 DES mode=0 DES Level=0.0 DES Blend Color=1, 0, 0 @@ -208,3 +208,13 @@ Guassian Radius=1.0 Noise Amount=0.0 Noise Curve=1.0 DOF Minimum Blur=0.01 +Focus Mode=1 +DOF Horizontal Tilt Center=0.5 +DOF Vertical Tilt Center=0.5 +DOF Horizontal Tilt=0.0 +DOF Vertical Tilt=0.0 +Focus Plane Horizontal Tilt Center=0.5 +Focus Plane Vertical Tilt Center=0.5 +Focus Plane Horizontal Tilt=0.0 +Focus Plane Vertical Tilt=0.0 +Use Only Fixed DOF=false diff --git a/enbseries/menbbloomfilters.fx b/enbseries/menbbloomfilters.fx index 12125f9..258b142 100644 --- a/enbseries/menbbloomfilters.fx +++ b/enbseries/menbbloomfilters.fx @@ -93,7 +93,7 @@ float4 PS_BloomTexture2(VS_OUTPUT_POST In) : COLOR float3 blu_id = float3(blu_id_r,blu_id_g,blu_id_b); float3 blu = tod_ind(blu); float bsi = tod_ind(bsi); - float lm = max(0,luminance(res.rgb)-luminance(base.rgb))*bsi; + float lm = clamp(0,1,luminance(res.rgb)-luminance(base.rgb))*bsi; lm = lm/(1.0+lm); lm *= 1.0-saturate((TempParameters.w-1.0)*bslp); blu = saturate(blu+(TempParameters.w-1.0)*bsbp); @@ -124,11 +124,11 @@ float4 PS_AnamPass(VS_OUTPUT_POST In) : COLOR int i; float sum = 0; float2 pp; - [unroll] for ( i=-39; i<=39; i++ ) + [unroll] for ( i=-79; i<=79; i++ ) { pp = coord+float2(i,0)*TempParameters.z*bloomradiusx*flen; - res += gauss40[abs(i)]*tex2D(SamplerBloom1,pp); - sum += ((pp.x>=0)&&(pp.x<1))?gauss40[abs(i)]:0; + res += gauss80[abs(i)]*tex2D(SamplerBloom1,pp); + sum += ((pp.x>=0)&&(pp.x<1))?gauss80[abs(i)]:0; } res *= 1.0/sum; /* blue shift */ @@ -138,7 +138,7 @@ float4 PS_AnamPass(VS_OUTPUT_POST In) : COLOR float3 flu_id = float3(flu_id_r,flu_id_g,flu_id_b); float3 flu = tod_ind(flu); float fsi = tod_ind(fsi); - float lm = max(0,luminance(res.rgb)-luminance(base.rgb))*fsi; + float lm = clamp(0,1,luminance(res.rgb)-luminance(base.rgb))*fsi; lm = lm/(1.0+lm); float fbl = tod_ind(fbl); float fpw = tod_ind(fpw); diff --git a/enbseries/menbbloominternals.fx b/enbseries/menbbloominternals.fx index ad97f4f..3034a55 100644 --- a/enbseries/menbbloominternals.fx +++ b/enbseries/menbbloominternals.fx @@ -19,7 +19,7 @@ static const float gauss8[8] = 0.055335, 0.033562, 0.018216, 0.008847 }; /* radius: 40, std dev: 15 */ -static const float gauss40[40] = +/*static const float gauss40[40] = { 0.026823, 0.026763, 0.026585, 0.026291, 0.025886, 0.025373, 0.024760, 0.024055, @@ -31,9 +31,9 @@ static const float gauss40[40] = 0.004697, 0.004139, 0.003630, 0.003170, 0.002756, 0.002385, 0.002055, 0.001763, 0.001506, 0.001280, 0.001084, 0.000913 -}; +};*/ /* radius: 80, std dev: 30 */ -/*static const float gauss80[80] = +static const float gauss80[80] = { 0.013406, 0.013398, 0.013376, 0.013339, 0.013287, 0.013221, 0.013140, 0.013046, 0.012938, 0.012816, 0.012681, 0.012534, @@ -49,7 +49,7 @@ static const float gauss40[40] = 0.001192, 0.001107, 0.001027, 0.000952, 0.000881, 0.000815, 0.000753, 0.000694, 0.000640, 0.000589, 0.000542, 0.000497, 0.000456, 0.000418 -};*/ +}; /* standard stuff */ float4 ScreenSize; float4 TempParameters; diff --git a/enbseries/menbextrafilters.fx b/enbseries/menbextrafilters.fx index 09914fe..1dd966c 100644 --- a/enbseries/menbextrafilters.fx +++ b/enbseries/menbextrafilters.fx @@ -283,12 +283,12 @@ float4 PS_ASCII( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR 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. + 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); @@ -311,7 +311,11 @@ float4 PS_ChromaKey( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR float2 coord = IN.txcoord.xy; float4 res = tex2D(SamplerColor,coord); if ( !maskenable ) return res; - if ( tex2D(SamplerDepth,coord).x > maskd ) + float dep = tex2D(SamplerDepth,coord).x; + float msd = maskd; + msd = maskd+0.01*masktiltx*(masktiltxcenter-coord.x) + +0.01*masktilty*(masktiltycenter-coord.y); + if ( dep > msd ) return float4(maskr,maskg,maskb,1.0); return res; } @@ -463,6 +467,16 @@ float4 PS_Shift( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR res.a = 1.0; return res; } +/* + Extra ideas: + - Bring back depth-relative colour grading + - Try to resurrect oil filter + - Provide an alternate, smaller font for ASCII filter (miniwi seems like + a good candidate, since it's 4x8) + - [Enhancement] Separate extra filters into different "batches" to get over + the "8 technique limit" (if it's still a thing in current ENB). + - More palettes? +*/ technique PostProcess { pass p0 diff --git a/enbseries/menbextrasettings.fx b/enbseries/menbextrasettings.fx index ea816a2..f701104 100644 --- a/enbseries/menbextrasettings.fx +++ b/enbseries/menbextrasettings.fx @@ -188,6 +188,31 @@ float maskd float UIMin = 0.0; float UIMax = 1.0; > = {0.5}; +/* tilting */ +float masktiltxcenter +< + string UIName = "Chroma Key Depth Horizontal Tilt Center"; + string UIWidget = "Spinner"; + float UIMin = 0.0; + float UIMax = 1.0; +> = {0.5}; +float masktiltycenter +< + string UIName = "Chroma Key Depth Vertical Tilt Center"; + string UIWidget = "Spinner"; + float UIMin = 0.0; + float UIMax = 1.0; +> = {0.5}; +float masktiltx +< + string UIName = "Chroma Key Depth Horizontal Tilt"; + string UIWidget = "Spinner"; +> = {0.0}; +float masktilty +< + string UIName = "Chroma Key Depth Vertical Tilt"; + string UIWidget = "Spinner"; +> = {0.0}; string str_dot = "RGBI Dot Matrix"; bool dotenable < diff --git a/enbseries/menbglobaldefs.fx b/enbseries/menbglobaldefs.fx index 869f84e..fabf9ef 100644 --- a/enbseries/menbglobaldefs.fx +++ b/enbseries/menbglobaldefs.fx @@ -61,6 +61,3 @@ //#define LENSDIRT_DDS //#define FROST_DDS //#define FROSTBUMP_DDS -/* experimental features (TODO) */ -#define USE_BOKEH -//#define MULTIPASS_RMAO diff --git a/enbseries/menbprepassfilters.fx b/enbseries/menbprepassfilters.fx index 62d1bf7..e0ff086 100644 --- a/enbseries/menbprepassfilters.fx +++ b/enbseries/menbprepassfilters.fx @@ -316,11 +316,23 @@ float4 PS_SSAOBlurV( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR float4 PS_ReadFocus( VS_OUTPUT_POST IN ) : COLOR { if ( dofdisable ) return 0.0; - if ( focusmanual ) return focusmanualvalue; + if ( focuscircle < 0 ) return focusmanualvalue; float focusmax = tod_ind(focusmax); float2 fcenter = float2(focuscenter_x,focuscenter_y); float cfocus = min(tex2D(SamplerDepth,fcenter).x,focusmax*0.001); - if ( !focuscircle ) return cfocus; + if ( focuscircle == 0 ) return cfocus; + if ( focuscircle == 2 ) + { + int i, j; + float mfocus = 0.0; + float2 px; + [unroll] for( j=0; j<8; j++ ) [unroll] for( i=0; i<8; i++ ) + { + px = float2((i+0.5)/8.0,(j+0.5)/8.0); + mfocus += min(tex2D(SamplerDepth,px).x,focusmax*0.001); + } + return mfocus/64.0; + } /* using polygons inscribed into a circle, in this case a triangle */ float focusradius = tod_ind(focusradius); float focusmix = tod_ind(focusmix); @@ -365,6 +377,9 @@ float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR float doffixedunfocusblend = tod_ind(doffixedunfocusblend); float dep = tex2D(SamplerDepth,coord).x; float foc = tex2D(SamplerFocus,coord).x; + /* cheap tilt */ + foc = foc+0.01*doftiltx*(doftiltxcenter-coord.x) + +0.01*doftilty*(doftiltycenter-coord.y); float dfc = abs(dep-foc); float dff = abs(dep); float dfu = dff; @@ -389,6 +404,7 @@ float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR +doffixedfocusbump,0.0,1.0); dfu = clamp(pow(dfu,doffixedunfocuspow)*doffixedunfocusmult +doffixedunfocusbump,0.0,1.0); + if ( doffixedonly ) dfc *= 0; dfc *= lerp(1.0,dff,doffixedfocusblend); dfc += lerp(0.0,dfu,doffixedunfocusblend); dfc = saturate(dfc); @@ -433,60 +449,6 @@ float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR res.a = 1.0; return res; } -float4 PS_DoFBlurH( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR -{ - float2 coord = IN.txcoord.xy; - if ( dofdisable ) return tex2D(SamplerColor,coord); - float dfc = tex2D(SamplerColor,coord).a; - if ( dofdebug ) return tex2D(SamplerDepth,coord).x; - if ( dfcdebug ) return dfc; - float bresl = (fixedx>0)?fixedx:ScreenSize.x; - float bof = (1.0/bresl)*dofbradius; - float4 res = float4(0,0,0,0); - if ( dfc <= dofminblur ) return tex2D(SamplerColor,coord); - int i; - float isd, sd, ds, sw, tw = 0; - isd = dfc; - [unroll] for ( i=-7; i<=7; i++ ) - { - sd = tex2D(SamplerColor,coord+float2(i,0)*bof*dfc).a; - ds = abs(isd-sd)*dofbfact+0.5; - sw = 1.0/(ds+1.0); - sw *= gauss8[abs(i)]; - tw += sw; - res += sw*tex2D(SamplerColor,coord+float2(i,0)*bof*dfc); - } - res /= tw; - res.a = dfc; - return res; -} -float4 PS_DoFBlurV( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR -{ - float2 coord = IN.txcoord.xy; - if ( dofdisable ) return tex2D(SamplerColor,coord); - float dfc = tex2D(SamplerColor,coord).a; - if ( dofdebug ) return tex2D(SamplerDepth,coord).x; - if ( dfcdebug ) return dfc; - float bresl = (fixedy>0)?fixedy:(ScreenSize.x*ScreenSize.w); - float bof = (1.0/bresl)*dofbradius; - float4 res = float4(0,0,0,0); - if ( dfc <= dofminblur ) return tex2D(SamplerColor,coord); - int i; - float isd, sd, ds, sw, tw = 0; - isd = dfc; - [unroll] for ( i=-7; i<=7; i++ ) - { - sd = tex2D(SamplerColor,coord+float2(0,i)*bof*dfc).a; - ds = abs(isd-sd)*dofbfact+0.5; - sw = 1.0/(ds+1.0); - sw *= gauss8[abs(i)]; - tw += sw; - res += sw*tex2D(SamplerColor,coord+float2(0,i)*bof*dfc); - } - res /= tw; - res.a = 1.0; - return res; -} /* Screen frost shader. Not very realistic either, but looks fine too. */ float2 ScreenFrost( float2 coord ) { @@ -544,9 +506,22 @@ float4 PS_FrostPass( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR res.rgb *= 1.0+bmp*dist; } else res = tex2D(SamplerColor,coord); - if ( !focusdisplay ) return res; + if ( !focusdisplay || (focuscircle < 0) ) return res; + if ( focuscircle == 2 ) + { + int i, j; + float2 px; + [unroll] for( j=0; j<8; j++ ) [unroll] for( i=0; i<8; i++ ) + { + px = float2((i+0.5)/8.0,(j+0.5)/8.0); + if ( distance(coord,px) < 0.005 ) + res.rgb = float3(1,0,0); + } + return res; + } float2 fcenter = float2(focuscenter_x,focuscenter_y); - if ( distance(coord,fcenter) < 0.01 ) res.rgb = float3(1,0,0); + if ( distance(coord,fcenter) < 0.005 ) res.rgb = float3(1,0,0); + if ( focuscircle == 0 ) return res; float cstep = (1.0/3.0); float2 tcoord; float focusradius = tod_ind(focusradius); @@ -554,13 +529,13 @@ float4 PS_FrostPass( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR float fan = focuscircleangle*2.0*pi; tcoord.x = fcenter.x+sin(fan)*bof.x; tcoord.y = fcenter.y+cos(fan)*bof.y; - if ( distance(coord,tcoord) < 0.01 ) res.rgb = float3(1,0,0); + if ( distance(coord,tcoord) < 0.005 ) res.rgb = float3(1,0,0); tcoord.x = fcenter.x+sin(fan+2.0*pi*cstep)*bof.x; tcoord.y = fcenter.y+cos(fan+2.0*pi*cstep)*bof.y; - if ( distance(coord,tcoord) < 0.01 ) res.rgb = float3(1,0,0); + if ( distance(coord,tcoord) < 0.005 ) res.rgb = float3(1,0,0); tcoord.x = fcenter.x+sin(fan+4.0*pi*cstep)*bof.x; tcoord.y = fcenter.y+cos(fan+4.0*pi*cstep)*bof.y; - if ( distance(coord,tcoord) < 0.01 ) res.rgb = float3(1,0,0); + if ( distance(coord,tcoord) < 0.005 ) res.rgb = float3(1,0,0); return res; } technique ReadFocus @@ -593,7 +568,7 @@ technique WriteFocus SRGBWRITEENABLE = FALSE; } } -technique PostProcess +technique PostProcess { pass p0 { @@ -683,7 +658,7 @@ technique PostProcess6 pass p0 { VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_DoFBlurH(); + PixelShader = compile ps_3_0 PS_DoFGather(); DitherEnable = FALSE; ZEnable = FALSE; CullMode = NONE; @@ -696,142 +671,6 @@ technique PostProcess6 } } technique PostProcess7 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_DoFBlurV(); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcess8 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_FrostPass(); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcessG -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_EdgePlusSSAOPrepass(); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcessG2 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_Distortion(); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcessG3 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_SSAOBlurH(); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcessG4 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_SSAOBlurV(); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcessG5 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_DoFPrepass(); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcessG6 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_DoFGather(); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcessG7 { pass p0 { diff --git a/enbseries/menbprepasssettings.fx b/enbseries/menbprepasssettings.fx index d6b9efe..85e0292 100644 --- a/enbseries/menbprepasssettings.fx +++ b/enbseries/menbprepasssettings.fx @@ -240,22 +240,28 @@ bool frostalways string UIWidget = "Checkbox"; > = {false}; string str_focus = "Focusing Parameters"; -/* circle (triangle, actually) average focus */ -bool focuscircle +/* + focus modes: + -1 : manual + 0 : center spot + 1 : center + triangle + 2 : 8x8 grid average + TODO + 3 : 8x8 grid average of 8 closest points + 4 : 8x8 grid average of 8 farthest points +*/ +int focuscircle < - string UIName = "Enable Focus Triangle"; + string UIName = "Focus Mode"; string UIWidget = "Checkbox"; -> = {true}; + int UIMin = -1; + int UIMax = 2; +> = {1}; bool focusdisplay < string UIName = "Display Focus Points"; string UIWidget = "Checkbox"; > = {false}; -bool focusmanual -< - string UIName = "Enable Manual Focus"; - string UIWidget = "Checkbox"; -> = {false}; float focusmanualvalue < string UIName = "Manual Focus Depth"; @@ -375,7 +381,7 @@ float dofmult_id string UIWidget = "Spinner"; float UIMin = 0.0; > = {500.0}; -/* dof power (falloff, kinda) */ +/* dof power (the higher it is, the wider the focused area gets) */ float dofpow_n < string UIName = "DOF Contrast Night"; @@ -400,7 +406,7 @@ float dofpow_id string UIWidget = "Spinner"; float UIMin = 0.0; > = {4.0}; -/* dof bump (to emulate tilt shift I guess, I brought it back) */ +/* dof bump (negative shift increases the area in complete focus) */ float dofbump_n < string UIName = "DOF Shift Night"; @@ -619,17 +625,11 @@ bool dofdisable string UIName = "Disable DOF"; string UIWidget = "Checkbox"; > = {false}; -float dofbfact +bool doffixedonly < - string UIName = "DOF Bilateral Factor"; - string UIWidget = "Spinner"; -> = {20.0}; -float dofbradius -< - string UIName = "DOF Blur Radius"; - string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.0}; + string UIName = "Use Only Fixed DOF"; + string UIWidget = "Checkbox"; +> = {false}; float dofpradius < string UIName = "DOF Gather Blur Radius"; @@ -670,6 +670,31 @@ float relfovfactor_id string UIWidget = "Spinner"; > = {2.0}; #endif +/* tilting */ +float doftiltxcenter +< + string UIName = "Focus Plane Horizontal Tilt Center"; + string UIWidget = "Spinner"; + float UIMin = 0.0; + float UIMax = 1.0; +> = {0.5}; +float doftiltycenter +< + string UIName = "Focus Plane Vertical Tilt Center"; + string UIWidget = "Spinner"; + float UIMin = 0.0; + float UIMax = 1.0; +> = {0.5}; +float doftiltx +< + string UIName = "Focus Plane Horizontal Tilt"; + string UIWidget = "Spinner"; +> = {0.0}; +float doftilty +< + string UIName = "Focus Plane Vertical Tilt"; + string UIWidget = "Spinner"; +> = {0.0}; /* cheap performance option */ float dofminblur <