From 591968b4ae65f3a7b60afeb01d5dbe4efc9cfcc7 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sun, 7 Apr 2019 17:42:42 +0200 Subject: [PATCH] MariENB Skyrim 2.2.6 --- enbseries.ini | 90 +++++------ enbseries/VERSION | 2 +- enbseries/_weatherlist.ini | 4 +- enbseries/effect.txt.ini | 10 +- enbseries/enbbloom.fx.ini | 42 ++--- enbseries/enbeffect.fx.ini | 12 +- enbseries/enbeffectprepass.fx.ini | 17 +- enbseries/menbeffectfilters.fx | 10 +- enbseries/menbglobaldefs.fx | 4 +- enbseries/menbprepassfilters.fx | 249 +++++++++++++++++++++++------- enbseries/menbprepassinternals.fx | 39 +---- enbseries/menbprepasssettings.fx | 19 +-- enbseries/menbweatherinfo.txt | 14 +- 13 files changed, 300 insertions(+), 212 deletions(-) diff --git a/enbseries.ini b/enbseries.ini index 6c8c9db..eafd4e6 100644 --- a/enbseries.ini +++ b/enbseries.ini @@ -14,7 +14,7 @@ EnableSunRays=true EnableSkyLighting=true EnableImageBasedLighting=false EnableReflection=true -EnableSoftParticles=true +EnableSoftParticles=false EnableParticleLights=true EnableSunGlare=false EnableSubSurfaceScattering=true @@ -80,10 +80,10 @@ UseAmbientIndirectLighting=true SamplingPrecision=1 FadeFogRange=3.0 FilterType=0 -AOAmountInterior=1.17 +AOAmountInterior=1.18 ILAmountInterior=1.38 AOIntensity=1.17 -AOIntensityInterior=1.21 +AOIntensityInterior=1.24 AOType=0 AOMixingType=0 AOMixingTypeInterior=0 @@ -126,10 +126,10 @@ SpecularPowerMultiplierInterior=1.0 SpecularFromLightDay=0.0 SpecularFromLightNight=0.0 SpecularFromLightInterior=0.0 -AmbientLightingIntensityDay=0.36 -AmbientLightingIntensityNight=0.27 +AmbientLightingIntensityDay=0.28 +AmbientLightingIntensityNight=0.09 AmbientLightingIntensityInterior=0.914 -AmbientLightingCurveDay=0.91 +AmbientLightingCurveDay=1.01 AmbientLightingCurveNight=1.3 AmbientLightingCurveInterior=0.75 AmbientLightingDesaturationDay=0.0 @@ -177,10 +177,10 @@ SpecularFromLightSunrise=0.0 SpecularFromLightSunset=0.0 SpecularFromLightInteriorDay=0.0 SpecularFromLightInteriorNight=0.0 -AmbientLightingIntensitySunrise=0.32 -AmbientLightingIntensitySunset=0.25 -AmbientLightingIntensityInteriorDay=0.37 -AmbientLightingIntensityInteriorNight=0.27 +AmbientLightingIntensitySunrise=0.24 +AmbientLightingIntensitySunset=0.21 +AmbientLightingIntensityInteriorDay=0.28 +AmbientLightingIntensityInteriorNight=0.15 AmbientLightingCurveSunrise=1.03 AmbientLightingCurveSunset=1.09 AmbientLightingCurveInteriorDay=1.11 @@ -189,12 +189,12 @@ AmbientLightingDesaturationSunrise=0.0 AmbientLightingDesaturationSunset=0.0 AmbientLightingDesaturationInteriorDay=0.0 AmbientLightingDesaturationInteriorNight=0.0 -AmbientColorFilterAmountSunrise=0.32 -AmbientColorFilterAmountDay=0.46 -AmbientColorFilterAmountSunset=0.35 -AmbientColorFilterAmountNight=0.38 -AmbientColorFilterAmountInteriorDay=0.39 -AmbientColorFilterAmountInteriorNight=0.32 +AmbientColorFilterAmountSunrise=0.0 +AmbientColorFilterAmountDay=0.0 +AmbientColorFilterAmountSunset=0.0 +AmbientColorFilterAmountNight=0.0 +AmbientColorFilterAmountInteriorDay=0.0 +AmbientColorFilterAmountInteriorNight=0.0 AmbientColorFilterTopSunrise=0.494, 0.443, 0.188 AmbientColorFilterTopDay=0.647, 0.627, 0.506 AmbientColorFilterTopSunset=0.42, 0.224, 0.122 @@ -220,7 +220,7 @@ PointLightingIntensityInteriorNight=1.13 PointLightingCurveSunrise=1.35 PointLightingCurveSunset=1.37 PointLightingCurveInteriorDay=1.27 -PointLightingCurveInteriorNight=1.29 +PointLightingCurveInteriorNight=1.31 PointLightingDesaturationSunrise=0.0 PointLightingDesaturationSunset=0.0 PointLightingDesaturationInteriorDay=0.0 @@ -233,12 +233,12 @@ ParticleLightsIntensityInteriorDay=0.6 ParticleLightsIntensityInteriorNight=0.68 FogColorMultiplierSunrise=0.39 FogColorMultiplierSunset=0.48 -FogColorMultiplierInteriorDay=0.53 -FogColorMultiplierInteriorNight=0.15 +FogColorMultiplierInteriorDay=0.55 +FogColorMultiplierInteriorNight=0.17 FogColorCurveSunrise=1.04 FogColorCurveSunset=1.03 -FogColorCurveInteriorDay=1.07 -FogColorCurveInteriorNight=1.14 +FogColorCurveInteriorDay=1.11 +FogColorCurveInteriorNight=1.15 ColorPowSunrise=1.0 ColorPowSunset=1.0 ColorPowInteriorDay=1.0 @@ -284,14 +284,14 @@ SpecularPowerMultiplierDawn=0.56 SpecularPowerMultiplierDusk=0.57 SpecularFromLightDawn=0.0 SpecularFromLightDusk=0.0 -AmbientLightingIntensityDawn=0.24 -AmbientLightingIntensityDusk=0.25 +AmbientLightingIntensityDawn=0.19 +AmbientLightingIntensityDusk=0.18 AmbientLightingCurveDawn=1.15 AmbientLightingCurveDusk=1.15 AmbientLightingDesaturationDawn=0.0 AmbientLightingDesaturationDusk=0.0 -AmbientColorFilterAmountDawn=0.29 -AmbientColorFilterAmountDusk=0.28 +AmbientColorFilterAmountDawn=0.0 +AmbientColorFilterAmountDusk=0.0 AmbientColorFilterTopDawn=0.318, 0.22, 0.137 AmbientColorFilterTopDusk=0.302, 0.169, 0.129 AmbientColorFilterMiddleDawn=0.176, 0.122, 0.051 @@ -659,26 +659,26 @@ OpacityDawn=0.27 OpacityDusk=0.2 [FIRE] -IntensityDay=1.65 -IntensityNight=1.84 +IntensityDay=0.95 +IntensityNight=1.04 IntensityInterior=1.65 -CurveDay=0.67 -CurveNight=0.63 +CurveDay=0.97 +CurveNight=0.93 CurveInterior=1.0 -IntensitySunrise=1.75 -IntensitySunset=1.73 -IntensityInteriorDay=2.26 -IntensityInteriorNight=1.88 -CurveSunrise=0.71 -CurveSunset=0.73 -CurveInteriorDay=0.78 -CurveInteriorNight=0.75 +IntensitySunrise=1.05 +IntensitySunset=1.03 +IntensityInteriorDay=1.01 +IntensityInteriorNight=1.03 +CurveSunrise=0.91 +CurveSunset=0.93 +CurveInteriorDay=0.98 +CurveInteriorNight=0.95 AdditiveBlending=true IgnoreWeatherSystem=true -IntensityDawn=1.82 -IntensityDusk=1.88 -CurveDawn=0.66 -CurveDusk=0.69 +IntensityDawn=1.02 +IntensityDusk=1.08 +CurveDawn=0.96 +CurveDusk=0.99 [COLORCORRECTION] UsePaletteTexture=true @@ -843,11 +843,11 @@ ReflectiveAmountDawn=0.14 ReflectiveAmountDusk=0.19 [RAIN] -Enable=false -EnableAntialiasing=false +Enable=true +EnableAntialiasing=true EnableSupersampling=false -MotionStretch=0.8 -MotionTransparency=0.65 +MotionStretch=1.0 +MotionTransparency=0.75 IgnoreWeatherSystem=true [EYES] diff --git a/enbseries/VERSION b/enbseries/VERSION index 59abd52..dcbff67 100644 --- a/enbseries/VERSION +++ b/enbseries/VERSION @@ -1 +1 @@ -2.2.5-1 "Waifus And Lore" \ No newline at end of file +2.2.6-1 "Waifus And Lore" \ No newline at end of file diff --git a/enbseries/_weatherlist.ini b/enbseries/_weatherlist.ini index 7cc29d1..86e8e84 100644 --- a/enbseries/_weatherlist.ini +++ b/enbseries/_weatherlist.ini @@ -1,9 +1,9 @@ [WEATHER001] FileName=_hotweather.ini -WeatherIDs=81a, 12f89, 2e7ab, a6858, d9329, 10199f, 105941, 10a230, 10a233, 10a237, 10a23a, 10a23b, 10a23f, 10a240, 10a243, 10a7a5, 10a7a8, 10d9ec, 10e1e3, 10e1e4, 10e1e5, 10e1e6, 10e1e9, 10e1ea, 10e1eb, 10e1ec, 10e1ed, 10e1ee, 10e1f1, 10e1f2, 18471, 31ac0, 32336, 374b8, 374b9, 5b29c, 5b29d, 5b2a0, 1760e, 1760f, 19bbe, 19bbf, 19bc0, 1bc0d, 25d8d, 2e982, 2e983, 3ab68, 12eab9, 7761f +WeatherIDs=81a, 12f89, 2e7ab, a6858, d9329, 10199f, 105941, 10a230, 10a233, 10a237, 10a23a, 10a23b, 10a23f, 10a240, 10a243, 10a7a5, 10a7a8, 10d9ec, 10e1e3, 10e1e4, 10e1e5, 10e1e6, 10e1e9, 10e1ea, 10e1eb, 10e1ec, 10e1ed, 10e1ee, 10e1f1, 10e1f2, 18471, 31ac0, 32336, 374b8, 374b9, 5b29c, 5b29d, 5b2a0, 1760e, 1760f, 19bbe, 19bbf, 19bc0, 1bc0d, 25d8d, 2e982, 2e983, 3ab68, 12eab9, 7761f, 701d2, 67bb2 [WEATHER002] FileName=_coldweather.ini -WeatherIDs=4d7fb, aee84, 4d7fb, c821e, c821f, c8220, c8221, d4886, ecc96, 104ab4, 10da13, 10fef8, 1407, 959f, 10e0b, 10e0e, 10e0f, 10e10, 14551, 18dbb, 18dbc, 18dbd, 19599, 195a0, 1d760, 374ba, 21311 +WeatherIDs=4d7fb, aee84, 4d7fb, c821e, c821f, c8220, c8221, d4886, ecc96, 104ab4, 10da13, 10fef8, 1407, 959f, 10e0b, 10e0e, 10e0f, 10e10, 14551, 18dbb, 18dbc, 18dbd, 19599, 195a0, 1d760, 374ba, 21311, 62484, 2c603b, 2da92c [WEATHER003] FileName= [WEATHER004] diff --git a/enbseries/effect.txt.ini b/enbseries/effect.txt.ini index 7fa7078..2d60b6a 100644 --- a/enbseries/effect.txt.ini +++ b/enbseries/effect.txt.ini @@ -31,12 +31,12 @@ Curve Chromatic Aberration=0.56 Curve Zooming=50.360001 Curve Distortion=0.0 Curve Sampling Soften=0.0 -Enable Blur=true +Enable Blur=false Blur Sampling Range=0.15 -Enable Sharp=true -Sharp Sampling Range=0.35 -Sharpening Amount=2.0 -Enable Shift=true +Enable Sharp=false +Sharp Sampling Range=0.25 +Sharpening Amount=3.0 +Enable Shift=false Shift Sampling Range=0.6 ------Sharpening------------=false Show Original=false diff --git a/enbseries/enbbloom.fx.ini b/enbseries/enbbloom.fx.ini index 1935a14..28adc54 100644 --- a/enbseries/enbbloom.fx.ini +++ b/enbseries/enbbloom.fx.ini @@ -6,16 +6,16 @@ Bloom Intensity Interior Night=0.75 Bloom Intensity Interior Day=0.69 Bloom Contrast Night=0.96 Bloom Contrast Day=0.98 -Bloom Contrast Interior Night=0.95 -Bloom Contrast Interior Day=0.97 +Bloom Contrast Interior Night=0.98 +Bloom Contrast Interior Day=0.99 Bloom Saturation Night=1.08 Bloom Saturation Day=1.07 -Bloom Saturation Interior Night=1.06 -Bloom Saturation Interior Day=1.03 -Bloom Offset Night=-0.03 -Bloom Offset Day=-0.04 +Bloom Saturation Interior Night=1.05 +Bloom Saturation Interior Day=1.04 +Bloom Offset Night=-0.04 +Bloom Offset Day=-0.05 Bloom Offset Interior Night=-0.04 -Bloom Offset Interior Day=-0.05 +Bloom Offset Interior Day=-0.06 Bloom Intensity Cap Night=10.0 Bloom Intensity Cap Day=10.0 Bloom Intensity Cap Interior Night=10.0 @@ -33,17 +33,17 @@ Blue Shift Interior Night Blue=1.77 Blue Shift Interior Day Red=0.08 Blue Shift Interior Day Green=-0.3 Blue Shift Interior Day Blue=1.39 -Blue Shift Intensity Night=0.36 -Blue Shift Intensity Day=0.29 -Blue Shift Intensity Interior Night=0.42 -Blue Shift Intensity Interior Day=0.34 -Blue Shift Luminance Factor Per-pass=0.46 -Blue Shift Color Factor Per-pass=0.96 +Blue Shift Intensity Night=0.16 +Blue Shift Intensity Day=0.13 +Blue Shift Intensity Interior Night=0.18 +Blue Shift Intensity Interior Day=0.15 +Blue Shift Luminance Factor Per-pass=0.99 +Blue Shift Color Factor Per-pass=1.06 Enable Anamorphic Bloom=true Anamorphic Bloom Blend Night=0.32 Anamorphic Bloom Blend Day=0.31 Anamorphic Bloom Blend Interior Night=0.33 -Anamorphic Bloom Blend Interior Day=0.31 +Anamorphic Bloom Blend Interior Day=0.32 Anamorphic Bloom Blue Shift Night Red=0.06 Anamorphic Bloom Blue Shift Night Green=-0.44 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.03 Anamorphic Bloom Blue Shift Interior Day Green=-0.11 Anamorphic Bloom Blue Shift Interior Day Blue=1.65 -Anamorphic Bloom Blue Shift Intensity Night=0.82 -Anamorphic Bloom Blue Shift Intensity Day=0.63 -Anamorphic Bloom Blue Shift Interior Night=0.88 -Anamorphic Bloom Blue Shift Interior Day=0.72 +Anamorphic Bloom Blue Shift Intensity Night=0.47 +Anamorphic Bloom Blue Shift Intensity Day=0.32 +Anamorphic Bloom Blue Shift Interior Night=0.57 +Anamorphic Bloom Blue Shift Interior Day=0.48 Anamorphic Bloom Contrast Night=1.24 Anamorphic Bloom Contrast Day=1.22 -Anamorphic Bloom Contrast Interior Night=1.27 -Anamorphic Bloom Contrast Interior Day=1.31 +Anamorphic Bloom Contrast Interior Night=1.32 +Anamorphic Bloom Contrast Interior Day=1.3 Anamorphic Bloom Radius Multiplier=4.0 Bloom Pass 1 Blend=1.13 Bloom Pass 2 Blend=0.95 Bloom Pass 3 Blend=0.84 Bloom Pass 4 Blend=0.64 Bloom Pass 7 Blend=0.52 -Bloom Pass 8 Blend=0.34 +Bloom Pass 8 Blend=0.35 Bloom Prepass Blend=0.0 Bloom Base Blend=0.0 Enable Lens Dirt=false diff --git a/enbseries/enbeffect.fx.ini b/enbseries/enbeffect.fx.ini index 4d90556..c6e3de3 100644 --- a/enbseries/enbeffect.fx.ini +++ b/enbseries/enbeffect.fx.ini @@ -124,11 +124,11 @@ Grading Saturation Contrast Interior Day=1.03 Grading Value Intensity Night=1.06 Grading Value Intensity Day=1.04 Grading Value Intensity Interior Night=1.02 -Grading Value Intensity Interior Day=1.01 -Grading Value Contrast Night=1.1 -Grading Value Contrast Day=1.13 -Grading Value Contrast Interior Night=1.13 -Grading Value Contrast Interior Day=1.16 +Grading Value Intensity Interior Day=1.07 +Grading Value Contrast Night=1.03 +Grading Value Contrast Day=1.05 +Grading Value Contrast Interior Night=1.05 +Grading Value Contrast Interior Day=1.08 Colorize After HSV=true Enable Vanilla Tint=true Vanilla Tint Blend=1.0 @@ -139,7 +139,7 @@ Fade Before Film Filters=false Enable LUT Grading=true LUT Blend Night=0.25 LUT Blend Day=0.39 -LUT Blend Interior Night=0.29 +LUT Blend Interior Night=0.31 LUT Blend Interior Day=0.34 LUT Preset=61 Enable ENB Palette=false diff --git a/enbseries/enbeffectprepass.fx.ini b/enbseries/enbeffectprepass.fx.ini index afc98a9..c3bfc99 100644 --- a/enbseries/enbeffectprepass.fx.ini +++ b/enbseries/enbeffectprepass.fx.ini @@ -50,8 +50,8 @@ DOF Intensity Interior Night=480.799988 DOF Intensity Interior Day=432.299988 DOF Contrast Night=3.46 DOF Contrast Day=3.84 -DOF Contrast Interior Night=3.2 -DOF Contrast Interior Day=3.5 +DOF Contrast Interior Night=3.25 +DOF Contrast Interior Day=3.7 DOF Shift Night=-0.1 DOF Shift Day=-0.15 DOF Shift Interior Night=-0.05 @@ -92,7 +92,7 @@ DOF Fixed Use Cutoff=true Disable DOF=false DOF Bilateral Blur=true DOF Bilateral Factor=5.0 -DOF Blur Radius=1.0 +DOF Blur Radius=6.0 DOF Relative to FOV=true Default FOV=75.0 DOF Relative Factor Night=2.76 @@ -138,7 +138,7 @@ SSAO Noise=0 SSAO Fade Contrast Night=0.46 SSAO Fade Contrast Day=0.41 SSAO Fade Contrast Interior Night=0.58 -SSAO Fade Contrast Interior Day=0.48 +SSAO Fade Contrast Interior Day=0.53 SSAO Fade Intensity Night=1.27 SSAO Fade Intensity Day=1.08 SSAO Fade Intensity Interior Night=1.3 @@ -147,13 +147,13 @@ SSAO Intensity=1.25 SSAO Contrast=0.65 SSAO Blending=0.8 SSAO Blur=true -SSAO Bilateral Factor=250.0 +SSAO Bilateral Factor=1500.0 SSAO Range=20.0 SSAO Blur Radius=1.0 Debug SSAO=false Sharpen Enable=true Sharpen Radius=0.8 -Sharpen Clamp=0.1 +Sharpen Clamp=0.05 Sharpen Blending=6.0 SSAO Use Less Samples=true Near Z=0.05 @@ -172,7 +172,7 @@ Frost Always Enable=false Frost Indoor Factor=0.15 Frost Night Factor=0.5 SSAO Bilateral Factor Normal=1.0 -SSAO Range Min=0.0 +SSAO Range Min=1.0 Frost Blur=false Frost Blur Radius=1.0 Frost Distance Factor=16.0 @@ -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=8.0 +DOF Gather Blur Radius=6.0 DES mode=0 DES Level=0.0 DES Blend Color=1, 0, 0 @@ -218,3 +218,4 @@ Focus Plane Vertical Tilt Center=0.5 Focus Plane Horizontal Tilt=0.0 Focus Plane Vertical Tilt=0.0 Use Only Fixed DOF=false +DOF Blur Chromatic Aberration=1.5 diff --git a/enbseries/menbeffectfilters.fx b/enbseries/menbeffectfilters.fx index 8cff005..52b5850 100644 --- a/enbseries/menbeffectfilters.fx +++ b/enbseries/menbeffectfilters.fx @@ -436,11 +436,6 @@ float4 PS_Mari( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR if ( aenable ) res.rgb = Adaptation(res.rgb); if ( tmapenable ) res.rgb = Tonemap(res.rgb); if ( bloomdebug ) res.rgb *= 0; - float3 bcol = tex2D(_s3,coord).rgb*EBloomAmount; - if ( bloomlighten ) - res.rgb = float3(max(res.r,bcol.r),max(res.g,bcol.g), - max(res.b,bcol.b)); - else res.rgb += bcol; if ( vgradeenable ) res.rgb = GradingGame(res.rgb); if ( gradeenable1 ) res.rgb = GradingRGB(res.rgb); if ( colorizeafterhsv ) @@ -453,6 +448,11 @@ float4 PS_Mari( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR if ( gradeenable2 ) res.rgb = GradingColorize(res.rgb); if ( gradeenable3 ) res.rgb = GradingHSV(res.rgb); } + float3 bcol = tex2D(_s3,coord).rgb*EBloomAmount; + if ( bloomlighten ) + res.rgb = float3(max(res.r,bcol.r),max(res.g,bcol.g), + max(res.b,bcol.b)); + else res.rgb += bcol; if ( lutenable ) res.rgb = GradingLUT(res.rgb); if ( palenable ) res.rgb = GradingPal(res.rgb); if ( ne ) res.rgb = FilmGrain(res.rgb,coord); diff --git a/enbseries/menbglobaldefs.fx b/enbseries/menbglobaldefs.fx index 2facc5d..0eca9b6 100644 --- a/enbseries/menbglobaldefs.fx +++ b/enbseries/menbglobaldefs.fx @@ -60,6 +60,4 @@ //#define HEAT_DDS //#define LENSDIRT_DDS //#define FROST_DDS -//#define FROSTBUMP_DDS -/* optional heavy features (can be toggled to reduce compile times) */ -//#define MARIENB_SSAO \ No newline at end of file +//#define FROSTBUMP_DDS \ No newline at end of file diff --git a/enbseries/menbprepassfilters.fx b/enbseries/menbprepassfilters.fx index 47e829d..c82f65d 100644 --- a/enbseries/menbprepassfilters.fx +++ b/enbseries/menbprepassfilters.fx @@ -111,7 +111,6 @@ float4 PS_EdgePlusSSAOPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR float4 res = tex2D(SamplerColor,coord); if ( sharpenable ) res.rgb = Sharpen(res.rgb,coord); if ( edgevenable ) res.rgb = EdgeView(res.rgb,coord); -#ifdef MARIENB_SSAO /* get occlusion using single-step Ray Marching with 64 samples */ float ssaofadepow = tod_ind(ssaofadepow); float ssaofademult = tod_ind(ssaofademult); @@ -138,9 +137,9 @@ float4 PS_EdgePlusSSAOPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR float sdepth, so, delta; float sclamp = ssaoclamp/100000.0; float sclampmin = ssaoclampmin/100000.0; - if ( ssaoquarter ) [unroll] for ( i=0; i<16; i++ ) + [unroll] for ( i=0; i<16; i++ ) { - sample = reflect(ssao_samples_lq[i],rnormal); + sample = reflect(ssao_samples[i],rnormal); sample *= sign(dot(normal,sample)); so = ldepth-sample.z*bof.x; sdepth = depthlinear(coord+bof*sample.xy/ldepth); @@ -149,23 +148,11 @@ float4 PS_EdgePlusSSAOPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR if ( (delta > sclampmin) && (delta < sclamp) ) occ += 1.0-delta; } - else [unroll] for ( i=0; i<64; i++ ) - { - sample = reflect(ssao_samples_hq[i],rnormal); - sample *= sign(dot(normal,sample)); - so = ldepth-sample.z*bof.x; - sdepth = depthlinear(coord+bof*sample.xy/ldepth); - delta = saturate(so-sdepth); - delta *= 1.0-smoothstep(0.0,sclamp,delta); - if ( (delta > sclampmin) && (delta < sclamp) ) - occ += 1.0-delta; - } - float uocc = saturate(occ/(ssaoquarter?16.0:64.0)); + float uocc = saturate(occ/16.0); float fade = 1.0-depth; uocc *= saturate(pow(max(0,fade),ssaofadepow)*ssaofademult); uocc = saturate(pow(max(0,uocc),ssaopow)*ssaomult); res.a = saturate(1.0-(uocc*ssaoblend)); -#endif return res; } /* @@ -204,7 +191,7 @@ float2 DistantHeat( float2 coord ) ofs *= pow(length(ofs),heatpow); if ( !heatalways ) ofs *= todpow #ifndef FALLOUT - *weatherfactor(WT_HOT) + *weatherfactor(WT_HOT)+(1.0-weatherfactor(WT_COLD)) #endif ; odep = tex2D(SamplerDepth,coord+ofs*heatstrength*distfade*0.01).x; @@ -237,7 +224,6 @@ float4 PS_Distortion( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR tex2D(SamplerColor,coord+ofs).a); return res; } -#ifdef MARIENB_SSAO /* The blur passes use bilateral filtering to mostly preserve borders. An additional factor using difference of normals was tested, but the @@ -255,16 +241,7 @@ float4 PS_SSAOBlurH( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR res.a = 0.0; int i; isd = tex2D(SamplerDepth,coord).x; - if ( ssaohalfblur ) [unroll] for ( i=-7; i<=7; i++ ) - { - sd = tex2D(SamplerDepth,coord+float2(i,0)*bof).x; - ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact); - sw = ds; - sw *= gauss8[abs(i)]; - tw += sw; - res.a += sw*tex2D(SamplerColor,coord+float2(i,0)*bof).a; - } - else [unroll] for ( i=-15; i<=15; i++ ) + [unroll] for ( i=-15; i<=15; i++ ) { sd = tex2D(SamplerDepth,coord+float2(i,0)*bof).x; ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact); @@ -292,16 +269,7 @@ float4 PS_SSAOBlurV( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR res.a = 0.0; int i; isd = tex2D(SamplerDepth,coord).x; - if ( ssaohalfblur ) [unroll] for ( i=-7; i<=7; i++ ) - { - sd = tex2D(SamplerDepth,coord+float2(0,i)*bof).x; - ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact); - sw = ds; - sw *= gauss8[abs(i)]; - tw += sw; - res.a += sw*tex2D(SamplerColor,coord+float2(0,i)*bof).a; - } - else [unroll] for ( i=-15; i<=15; i++ ) + [unroll] for ( i=-15; i<=15; i++ ) { sd = tex2D(SamplerDepth,coord+float2(0,i)*bof).x; ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact); @@ -315,7 +283,6 @@ float4 PS_SSAOBlurV( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR res *= res.a; return res; } -#endif /* Focus */ float4 PS_ReadFocus( VS_OUTPUT_POST IN ) : COLOR { @@ -416,11 +383,7 @@ float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR res.a = dfc; return res; } -/* - This method skips blurring areas that are perfectly in focus. The - performance gain is negligible in most cases, though. -*/ -/* gather blur pass */ +/* gather blur pass */ float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR { float2 coord = IN.txcoord.xy; @@ -432,20 +395,25 @@ float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy); else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); float2 bof = 1.0/bresl; + /* + Skip blurring areas that are perfectly in focus. The performance + gain is negligible in most cases, though. + */ if ( dfc <= dofminblur ) return tex2D(SamplerColor,coord); float4 res = float4(0,0,0,0); float dep = tex2D(SamplerDepth,coord).x; - float sd, ds, sw, tw = 0; + float ds, sw, tw = 0; float2 bsz = bof*dofpradius*dfc; float4 sc; [unroll] for ( int i=0; i<32; i++ ) { - sc = tex2Dlod(SamplerColor,float4(coord.x - +poisson32[i].x*bsz.x,coord.y+poisson32[i].y - *bsz.y,0.0,dfc*4.0)); + sc = float4(tex2D(SamplerColor,coord+poisson32[i]*bsz*(1 + +dofpcha*0.1)).r,tex2D(SamplerColor,coord+poisson32[i] + *bsz).g,tex2D(SamplerColor,coord+poisson32[i]*bsz*(1 + -dofpcha*0.1)).b,tex2D(SamplerColor,coord+poisson32[i] + *bsz).a); ds = tex2D(SamplerDepth,coord+poisson32[i]*bsz).x; - sd = tex2D(SamplerColor,coord+poisson32[i]*bsz).a; - sw = (ds>dep)?1.0:sd; + sw = (ds>dep)?1.0:sc.a; tw += sw; res += sc*sw; } @@ -453,6 +421,88 @@ float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR res.a = 1.0; return res; } +/* "bokeh" blur pass */ +float4 PS_DoFBorkeh( 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; + float2 bresl; + if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy); + else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); + float2 bof = 1.0/bresl; + float4 res = tex2D(SamplerColor,coord); + res.a = 0.0; + /* + Skip blurring areas that are perfectly in focus. The performance + gain is negligible in most cases, though. + */ + if ( dfc <= dofminblur ) return res; + float dep = tex2D(SamplerDepth,coord).x; + float sr = dofpradius*dfc; + float w = max(0,(1/(sr*sr+1))*luminance(res.rgb+0.01)); + res *= w; + float tw = w; + float2 bsz = bof*sr; + float4 pc; + float sc, ds; + [unroll] for ( int i=0; i<32; i++ ) + { + pc = float4(tex2D(SamplerColor,coord+poisson32[i]*bsz*(1 + +dofpcha*0.1)).r,tex2D(SamplerColor,coord+poisson32[i] + *bsz).g,tex2D(SamplerColor,coord+poisson32[i]*bsz*(1 + -dofpcha*0.1)).b,tex2D(SamplerColor,coord+poisson32[i] + *bsz).a); + ds = tex2D(SamplerDepth,coord+poisson32[i]*bsz).x; + sc = abs(pc.a*dofpradius); + if ( sr < 0.0 ) sc = max(abs(sr),sc); + w = (1.0/(pow(sc,2)+1))*luminance(pc.rgb+0.01); + w *= saturate(1-smoothstep(sc,sc*1.1,length(poisson32[i]*bsz) + *abs(sr))); + w *= (ds>dep)?1.0:sc; + res += pc*w; + tw += w; + } + res /= tw; + res.a = dfc; + return res; +} +float4 PS_DoFPostBlur( 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; + float2 bresl; + if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy); + else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); + float2 bof = 1.0/bresl; + float2 ofs[16] = + { + float2(1.0,1.0), float2(-1.0,-1.0), + float2(-1.0,1.0), float2(1.0,-1.0), + + float2(1.0,0.0), float2(-1.0,0.0), + float2(0.0,1.0), float2(0.0,-1.0), + + float2(1.41,0.0), float2(-1.41,0.0), + float2(0.0,1.41), float2(0.0,-1.41), + + float2(1.41,1.41), float2(-1.41,-1.41), + float2(-1.41,1.41), float2(1.41,-1.41) + }; + float4 res = tex2D(SamplerColor,coord); + int i; + [unroll] for ( i=0; i<16; i++ ) + res += tex2D(SamplerColor,coord+ofs[i]*bof*dfc); + res /= 17.0; + res.a = 1.0; + return res; + +} /* Screen frost shader. Not very realistic either, but looks fine too. */ float2 ScreenFrost( float2 coord ) { @@ -606,7 +656,6 @@ technique PostProcess2 SRGBWRITEENABLE = FALSE; } } -#ifdef MARIENB_SSAO technique PostProcess3 { pass p0 @@ -692,8 +741,76 @@ technique PostProcess7 SRGBWRITEENABLE = FALSE; } } -#else -technique PostProcess3 + +technique PostProcessB +{ + 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 PostProcessB2 +{ + 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 PostProcessB3 +{ + 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 PostProcessB4 +{ + 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 PostProcessB5 { pass p0 { @@ -710,12 +827,12 @@ technique PostProcess3 SRGBWRITEENABLE = FALSE; } } -technique PostProcess4 +technique PostProcessB6 { pass p0 { VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_DoFGather(); + PixelShader = compile ps_3_0 PS_DoFBorkeh(); DitherEnable = FALSE; ZEnable = FALSE; CullMode = NONE; @@ -727,7 +844,24 @@ technique PostProcess4 SRGBWRITEENABLE = FALSE; } } -technique PostProcess5 +technique PostProcessB7 +{ + pass p0 + { + VertexShader = compile vs_3_0 VS_Pass(); + PixelShader = compile ps_3_0 PS_DoFPostBlur(); + DitherEnable = FALSE; + ZEnable = FALSE; + CullMode = NONE; + ALPHATESTENABLE = FALSE; + SEPARATEALPHABLENDENABLE = FALSE; + AlphaBlendEnable = FALSE; + StencilEnable = FALSE; + FogEnable = FALSE; + SRGBWRITEENABLE = FALSE; + } +} +technique PostProcessB8 { pass p0 { @@ -743,5 +877,4 @@ technique PostProcess5 FogEnable = FALSE; SRGBWRITEENABLE = FALSE; } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/enbseries/menbprepassinternals.fx b/enbseries/menbprepassinternals.fx index b7bd95b..295d2b3 100644 --- a/enbseries/menbprepassinternals.fx +++ b/enbseries/menbprepassinternals.fx @@ -33,9 +33,8 @@ static const float gauss16[16] = 0.033109, 0.031485, 0.029764, 0.027971, 0.026131, 0.024268, 0.022405, 0.020563 }; -#ifdef MARIENB_SSAO /* SSAO samples */ -static const float3 ssao_samples_lq[16] = +static const float3 ssao_samples[16] = { float3( 0.0000,-0.0002, 0.0000),float3(-0.0004, 0.0013, 0.0014), float3(-0.0030, 0.0048,-0.0034),float3( 0.0147, 0.0046,-0.0026), @@ -46,42 +45,6 @@ static const float3 ssao_samples_lq[16] = float3( 0.0072,-0.3534, 0.4035),float3(-0.0024,-0.2385, 0.6260), float3(-0.1940, 0.5722,-0.5602),float3(-0.0910,-0.7548,-0.6497) }; -static const float3 ssao_samples_hq[64] = -{ - float3( 0.0000,-0.0000,-0.0000),float3( 0.0000, 0.0000,-0.0000), - float3( 0.0001,-0.0000,-0.0000),float3( 0.0002, 0.0001,-0.0001), - float3(-0.0000,-0.0005, 0.0000),float3( 0.0004,-0.0004,-0.0006), - float3( 0.0005,-0.0011,-0.0004),float3(-0.0000, 0.0013,-0.0014), - float3( 0.0024, 0.0006, 0.0013),float3(-0.0017,-0.0017, 0.0030), - float3(-0.0037, 0.0033,-0.0011),float3( 0.0010, 0.0018,-0.0063), - float3( 0.0059, 0.0056,-0.0020),float3(-0.0009, 0.0083,-0.0063), - float3(-0.0110, 0.0065,-0.0016),float3( 0.0089, 0.0070,-0.0108), - float3(-0.0115,-0.0134,-0.0062),float3(-0.0121,-0.0172, 0.0071), - float3(-0.0066, 0.0246,-0.0060),float3( 0.0057,-0.0279, 0.0109), - float3(-0.0269,-0.0160,-0.0164),float3( 0.0402, 0.0045, 0.0034), - float3( 0.0248,-0.0045, 0.0390),float3( 0.0110,-0.0491,-0.0159), - float3(-0.0193,-0.0431, 0.0363),float3( 0.0441, 0.0271,-0.0426), - float3( 0.0385,-0.0428,-0.0482),float3(-0.0623,-0.0501, 0.0249), - float3( 0.0683,-0.0000, 0.0631),float3( 0.1008, 0.0180,-0.0114), - float3(-0.0156,-0.0713, 0.0871),float3(-0.0561,-0.0757, 0.0822), - float3( 0.0714, 0.0850,-0.0805),float3(-0.1320,-0.0042, 0.0711), - float3( 0.1553, 0.0486,-0.0167),float3(-0.1164,-0.0125,-0.1341), - float3( 0.1380,-0.1230,-0.0562),float3( 0.0868,-0.1897,-0.0175), - float3( 0.0749, 0.1495, 0.1525),float3(-0.2038,-0.1324,-0.0235), - float3( 0.0205, 0.1920, 0.1784),float3( 0.1637,-0.0964,-0.2092), - float3( 0.2875, 0.0966,-0.0020),float3( 0.0572,-0.0180,-0.3194), - float3(-0.3329, 0.0981,-0.0189),float3( 0.2627, 0.2092,-0.1585), - float3( 0.1783,-0.3359,-0.1108),float3( 0.2675, 0.2056,-0.2533), - float3(-0.1852, 0.3017,-0.2759),float3(-0.0944, 0.3532, 0.3061), - float3(-0.0022,-0.3744, 0.3404),float3(-0.0600,-0.4031,-0.3487), - float3(-0.2663, 0.4915, 0.1004),float3(-0.2442, 0.4253, 0.3468), - float3( 0.2583, 0.1321,-0.5645),float3(-0.0219, 0.4516, 0.4943), - float3(-0.5503, 0.2597,-0.3590),float3( 0.2239,-0.5571,-0.4398), - float3(-0.7210,-0.1982, 0.2339),float3( 0.7948,-0.1848, 0.1145), - float3(-0.7190, 0.1767, 0.4489),float3(-0.5617, 0.5845,-0.4116), - float3(-0.8919,-0.0384, 0.3360),float3(-0.0144, 0.9775,-0.2105) -}; -#endif /* For high quality DOF */ static const float2 poisson32[32] = { diff --git a/enbseries/menbprepasssettings.fx b/enbseries/menbprepasssettings.fx index faa89fd..be266ab 100644 --- a/enbseries/menbprepasssettings.fx +++ b/enbseries/menbprepasssettings.fx @@ -632,10 +632,15 @@ bool doffixedonly > = {false}; float dofpradius < - string UIName = "DOF Gather Blur Radius"; + string UIName = "DOF Blur Radius"; string UIWidget = "Spinner"; float UIMin = 0.0; > = {6.0}; +float dofpcha +< + string UIName = "DOF Blur Chromatic Aberration"; + string UIWidget = "Spinner"; +> = {0.0}; #ifndef FALLOUT bool dofrelfov < @@ -787,7 +792,6 @@ float edgevradius string UIWidget = "Spinner"; float UIMin = 0.0; > = {1.0}; -#ifdef MARIENB_SSAO /* ssao filter */ string str_ssao = "Ray Marching SSAO"; bool ssaoenable @@ -906,17 +910,6 @@ bool ssaodebug string UIName = "Debug SSAO"; string UIWidget = "Checkbox"; > = {false}; -bool ssaoquarter -< - string UIName = "SSAO Use Less Samples"; - string UIWidget = "Checkbox"; -> = {true}; -bool ssaohalfblur -< - string UIName = "SSAO Blur Use Less Samples"; - string UIWidget = "Checkbox"; -> = {true}; -#endif /* luma sharpen because of reasons */ string str_sharp = "Luma Sharpen"; bool sharpenable diff --git a/enbseries/menbweatherinfo.txt b/enbseries/menbweatherinfo.txt index af95102..e3e8e9c 100644 --- a/enbseries/menbweatherinfo.txt +++ b/enbseries/menbweatherinfo.txt @@ -156,13 +156,13 @@ Darkend Vigilant -56A0C zzzCHMonoFogWeather - -56A0D zzzCHMonoClearWeather - -62484 zzzCOCursedWeather - -67BB2 zzzCHMolagWeatherNoCore - -701D2 zzzCHMolagWeather - -2C603B zzzCHOldForestStormRain - -2DA92C zzzCHWhaleGraveyardStormSnow - +56A0C zzzCHMonoFogWeather TEMPERATE +56A0D zzzCHMonoClearWeather TEMPERATE +62484 zzzCOCursedWeather COLD +67BB2 zzzCHMolagWeatherNoCore HOT +701D2 zzzCHMolagWeather HOT +2C603B zzzCHOldForestStormRain COLD +2DA92C zzzCHWhaleGraveyardStormSnow COLD Enderal