From 866383d673616e874f527161a10cf4492d481664 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Sun, 7 Apr 2019 17:09:23 +0200 Subject: [PATCH] Alpha 5 --- enbseries.ini | 63 +++++++++--------- enbseries/effect.txt.ini | 26 +++++--- enbseries/enbbloom.fx.ini | 28 ++++---- enbseries/enbeffect.fx.ini | 78 +++++++++++----------- enbseries/enbeffectprepass.fx.ini | 18 ++--- enbseries/menbbloomsettings.fx | 14 +++- enbseries/menbeffectsettings.fx | 45 ++++++++++--- enbseries/menbextrafilters.fx | 14 +++- enbseries/menbextrainternals.fx | 4 +- enbseries/menbextrasettings.fx | 106 ++++++++++++++++++++++++++++-- enbseries/menbprepassfilters.fx | 15 +++-- enbseries/menbprepasssettings.fx | 86 ++++++++++++++---------- 12 files changed, 336 insertions(+), 161 deletions(-) diff --git a/enbseries.ini b/enbseries.ini index a22fb7c..1c0ecb2 100644 --- a/enbseries.ini +++ b/enbseries.ini @@ -5,14 +5,14 @@ [GLOBAL] AdditionalConfigFile= -UseEffect=true +UseEffect=false [EFFECT] UseOriginalPostProcessing=false UseOriginalObjectsProcessing=false EnableBloom=true EnableAdaptation=false -EnableAmbientOcclusion=false +EnableAmbientOcclusion=true EnableDepthOfField=true EnableDetailedShadow=true EnableSunRays=true @@ -64,8 +64,8 @@ LenzReflectionPowerInteriorDay=1.0 LenzReflectionPowerInteriorNight=1.0 [SSAO_SSIL] -UseIndirectLighting=true -UseComplexIndirectLighting=true +UseIndirectLighting=false +UseComplexIndirectLighting=false SamplingQuality=1 SamplingRange=1.0 FadeFogRangeDay=0.0 @@ -76,8 +76,8 @@ SourceTexturesScale=0.5 FilterQuality=1 AOAmount=1.0 ILAmount=1.0 -UseComplexAmbientOcclusion=true -UseAmbientIndirectLighting=true +UseComplexAmbientOcclusion=false +UseAmbientIndirectLighting=false SamplingPrecision=1 FadeFogRange=0.0 FilterType=0 @@ -91,7 +91,7 @@ AOMixingTypeInterior=0 UseOldType=false EnableDenoiser=true EnableSupersampling=false -EnableComplexFilter=true +EnableComplexFilter=false ILType=0 [NIGHTDAY] @@ -110,16 +110,16 @@ AdaptationMax=1.0 [ENVIRONMENT] DirectLightingIntensityDay=1.22 -DirectLightingIntensityNight=1.02 +DirectLightingIntensityNight=0.38 DirectLightingIntensityInterior=1.014688 DirectLightingCurveDay=1.08 -DirectLightingCurveNight=0.88 +DirectLightingCurveNight=0.92 DirectLightingCurveInterior=1.25 DirectLightingDesaturationDay=0.05 -DirectLightingDesaturationNight=0.18 +DirectLightingDesaturationNight=0.3 DirectLightingDesaturationInterior=0.0 -SpecularAmountMultiplierDay=1.03 -SpecularAmountMultiplierNight=1.33 +SpecularAmountMultiplierDay=2.06 +SpecularAmountMultiplierNight=2.91 SpecularAmountMultiplierInterior=1.0 SpecularPowerMultiplierDay=0.651 SpecularPowerMultiplierNight=0.351 @@ -157,23 +157,23 @@ ColorPowInterior=0.9 DirectLightingIntensitySunrise=1.3 DirectLightingIntensitySunset=1.45 DirectLightingIntensityInteriorDay=1.14 -DirectLightingIntensityInteriorNight=0.96 +DirectLightingIntensityInteriorNight=0.56 DirectLightingCurveSunrise=1.26 DirectLightingCurveSunset=1.62 DirectLightingCurveInteriorDay=1.05 -DirectLightingCurveInteriorNight=0.85 +DirectLightingCurveInteriorNight=0.92 DirectLightingDesaturationSunrise=0.02 DirectLightingDesaturationSunset=0.01 DirectLightingDesaturationInteriorDay=0.08 -DirectLightingDesaturationInteriorNight=0.15 -SpecularAmountMultiplierSunrise=1.49 -SpecularAmountMultiplierSunset=1.62 -SpecularAmountMultiplierInteriorDay=1.21 -SpecularAmountMultiplierInteriorNight=1.17 -SpecularPowerMultiplierSunrise=0.241 -SpecularPowerMultiplierSunset=0.101 -SpecularPowerMultiplierInteriorDay=0.511 -SpecularPowerMultiplierInteriorNight=0.371 +DirectLightingDesaturationInteriorNight=0.24 +SpecularAmountMultiplierSunrise=2.55 +SpecularAmountMultiplierSunset=3.11 +SpecularAmountMultiplierInteriorDay=2.22 +SpecularAmountMultiplierInteriorNight=2.72 +SpecularPowerMultiplierSunrise=0.361 +SpecularPowerMultiplierSunset=0.231 +SpecularPowerMultiplierInteriorDay=0.391 +SpecularPowerMultiplierInteriorNight=0.321 SpecularFromLightSunrise=0.0 SpecularFromLightSunset=0.0 SpecularFromLightInteriorDay=0.0 @@ -510,7 +510,7 @@ DetailedShadowQuality=1 UseBilateralShadowFilter=true UseShadowFilter=true ShadowFilterQuality=1 -ShadowBlurRange=4.36 +ShadowBlurRange=4.42 ShadowBlurRangeInterior=5.24 IgnoreWeatherSystem=true @@ -646,17 +646,18 @@ IgnoreWeatherSystem=true [SUBSURFACESCATTERING] Quality=1 -Radius=1.0 -Amount=0.6 -EpidermalAmount=1.64 +Radius=4.0 +Amount=0.77 +EpidermalAmount=3.74 SubdermalAmount=5.28 -EpidermalDiffuseSaturation=-0.77 -SubdermalDiffuseSaturation=0.45 -EpidermalMix=0.87 -SubdermalMix=0.19 +EpidermalDiffuseSaturation=-0.83 +SubdermalDiffuseSaturation=0.06 +EpidermalMix=0.85 +SubdermalMix=0.27 SubdermalTranslucency=0.95 SubdermalPhase=0.95 IgnoreWeatherSystem=true +EnableTextureAlpha=true [LENS] ReflectionIntensitySunrise=1.049999 diff --git a/enbseries/effect.txt.ini b/enbseries/effect.txt.ini index db72677..d16ff18 100644 --- a/enbseries/effect.txt.ini +++ b/enbseries/effect.txt.ini @@ -5,24 +5,24 @@ EmulatedResX=0.0 EmulatedResY=0.0 PaletteType=2 CGAPalette=1 -EGAPalette=0 +EGAPalette=1 DitherMode=4 GammaMod=0.45 -DitherBump=-0.2 -DitherMultiplier=0.25 +DitherBump=-0.05 +DitherMultiplier=0.2 SaturationMod=1.5 UseCurve=false -CurveChromaAberration=0.06 -CurveLensZoom=50.25 +CurveChromaAberration=0.08 +CurveLensZoom=50.39996 CurveLensDistortion=0.0 CurveLensDistortionCubic=0.0 CurveLensClamp=true -UseGrain=false +UseGrain=true GrainFrequency=2500.0 -GrainIntensity=0.1 +GrainIntensity=0.03 GrainSaturation=0.0 GrainTwoPass=true -GrainBlend=1 +GrainBlend=3 GrainTwoPassFactor=0.04 GrainMagnification1=13.25 GrainMagnification2=19.639999 @@ -33,4 +33,12 @@ GrainPass1Magnification3=2.22 GrainPass2Magnification1=4.25 GrainPass2Magnification2=0.42 GrainPass2Magnification3=6.29 -GrainPower=4.33 +GrainPower=2.76 +GammaModR=0.75 +GammaModG=0.75 +GammaModB=0.75 +SaturationModR=1.2 +SaturationModG=1.2 +SaturationModB=1.2 +GrainDarkMaskPower=2.82 +GrainDarkMaskMultiplier=1.0 diff --git a/enbseries/enbbloom.fx.ini b/enbseries/enbbloom.fx.ini index 8a246c9..b85d8fc 100644 --- a/enbseries/enbbloom.fx.ini +++ b/enbseries/enbbloom.fx.ini @@ -1,20 +1,20 @@ [ENBBLOOM.FX] TECHNIQUE=0 -BloomIntensityNight=1.33 -BloomIntensityDay=0.65 -BloomIntensityInteriorNight=1.21 -BloomIntensityInteriorDay=0.94 -BloomBumpNight=-0.07 -BloomBumpDay=-0.13 -BloomBumpInteriorNight=-0.04 -BloomBumpInteriorDay=-0.08 -BloomPowerNight=1.09 +BloomIntensityNight=1.43 +BloomIntensityDay=0.52 +BloomIntensityInteriorNight=1.58 +BloomIntensityInteriorDay=0.59 +BloomBumpNight=-0.11 +BloomBumpDay=-0.15 +BloomBumpInteriorNight=-0.14 +BloomBumpInteriorDay=-0.19 +BloomPowerNight=1.03 BloomPowerDay=1.18 BloomPowerInteriorNight=1.01 -BloomPowerInteriorDay=1.07 -BloomSaturationNight=0.86 -BloomSaturationDay=0.78 -BloomSaturationInteriorNight=0.91 -BloomSaturationInteriorDay=0.85 +BloomPowerInteriorDay=1.14 +BloomSaturationNight=0.64 +BloomSaturationDay=0.6 +BloomSaturationInteriorNight=0.75 +BloomSaturationInteriorDay=0.72 _FixedResolutionX=1920 _FixedResolutionY=1080 diff --git a/enbseries/enbeffect.fx.ini b/enbseries/enbeffect.fx.ini index 7e35fea..c1b36c5 100644 --- a/enbseries/enbeffect.fx.ini +++ b/enbseries/enbeffect.fx.ini @@ -1,14 +1,14 @@ [ENBEFFECT.FX] TECHNIQUE=0 -CompensateFactorNight=0.22 +CompensateFactorNight=0.19 CompensateFactorDay=0.3 -CompensateFactorInteriorNight=0.31 -CompensateFactorInteriorDay=0.36 -CompensatePowerNight=1.16 +CompensateFactorInteriorNight=0.42 +CompensateFactorInteriorDay=0.42 +CompensatePowerNight=1.15 CompensatePowerDay=1.11 -CompensatePowerInteriorNight=1.1 -CompensatePowerInteriorDay=1.05 -CompensateSaturationNight=0.86 +CompensatePowerInteriorNight=1.08 +CompensatePowerInteriorDay=1.03 +CompensateSaturationNight=0.99 CompensateSaturationDay=0.87 CompensateSaturationInteriorNight=0.97 CompensateSaturationInteriorDay=0.99 @@ -18,25 +18,25 @@ GradingMulBNight=1.45 GradingMulRDay=1.68 GradingMulGDay=1.47 GradingMulBDay=1.35 -GradingMulRInteriorNight=1.46 -GradingMulGInteriorNight=1.52 -GradingMulBInteriorNight=1.55 -GradingMulRInteriorDay=1.53 -GradingMulGInteriorDay=1.51 -GradingMulBInteriorDay=1.41 -GradingPowRNight=1.02 -GradingPowGNight=1.06 -GradingPowBNight=1.03 -GradingPowRDay=1.08 +GradingMulRInteriorNight=1.26 +GradingMulGInteriorNight=1.35 +GradingMulBInteriorNight=1.42 +GradingMulRInteriorDay=1.4 +GradingMulGInteriorDay=1.39 +GradingMulBInteriorDay=1.29 +GradingPowRNight=1.08 +GradingPowGNight=1.15 +GradingPowBNight=1.08 +GradingPowRDay=1.13 GradingPowGDay=1.06 GradingPowBDay=1.04 -GradingPowRInteriorNight=1.08 -GradingPowGInteriorNight=1.11 -GradingPowBInteriorNight=1.06 -GradingPowRInteriorDay=1.03 -GradingPowGInteriorDay=1.06 -GradingPowBInteriorDay=1.0 -GradingColRNight=-0.59 +GradingPowRInteriorNight=1.13 +GradingPowGInteriorNight=1.16 +GradingPowBInteriorNight=1.11 +GradingPowRInteriorDay=1.08 +GradingPowGInteriorDay=1.11 +GradingPowBInteriorDay=1.05 +GradingColRNight=-0.81 GradingColGNight=-0.26 GradingColBNight=-0.73 GradingColRDay=-0.62 @@ -48,18 +48,18 @@ GradingColBInteriorNight=-0.62 GradingColRInteriorDay=-0.22 GradingColGInteriorDay=-0.21 GradingColBInteriorDay=-0.33 -GradingColFactorNight=-0.2 +GradingColFactorNight=-0.21 GradingColFactorDay=-0.17 -GradingColFactorInteriorNight=-0.08 -GradingColFactorInteriorDay=-0.12 -DarkRadiusNight=0.0 -DarkRadiusDay=0.0 -DarkRadiusInteriorNight=0.0 -DarkRadiusInteriorDay=0.0 -DarkCurveNight=1.45 +GradingColFactorInteriorNight=-0.03 +GradingColFactorInteriorDay=-0.04 +DarkRadiusNight=0.27 +DarkRadiusDay=0.14 +DarkRadiusInteriorNight=0.33 +DarkRadiusInteriorDay=0.24 +DarkCurveNight=1.66 DarkCurveDay=1.92 -DarkCurveInteriorNight=1.35 -DarkCurveInteriorDay=1.67 +DarkCurveInteriorNight=1.72 +DarkCurveInteriorDay=1.82 DarkBumpNight=0.66 DarkBumpDay=0.55 DarkBumpInteriorNight=0.82 @@ -69,12 +69,12 @@ BoxSoften=0.0 BoxAlpha=1.0 AdaptationMinNight=0.11 AdaptationMinDay=0.07 -AdaptationMinInteriorNight=0.07 -AdaptationMinInteriorDay=0.06 +AdaptationMinInteriorNight=0.15 +AdaptationMinInteriorDay=0.12 AdaptationMaxNight=1.19 AdaptationMaxDay=1.06 -AdaptationMaxInteriorNight=0.9 -AdaptationMaxInteriorDay=0.89 -BloomSoften=false +AdaptationMaxInteriorNight=1.15 +AdaptationMaxInteriorDay=1.03 +BloomSoften=true _FixedResolutionX=1920 _FixedResolutionY=1080 diff --git a/enbseries/enbeffectprepass.fx.ini b/enbseries/enbeffectprepass.fx.ini index 0392c61..a95c35d 100644 --- a/enbseries/enbeffectprepass.fx.ini +++ b/enbseries/enbeffectprepass.fx.ini @@ -4,7 +4,7 @@ DoFPowNight=2.02 DoFPowDay=2.2 DoFPowInteriorNight=3.46 DoFPowInteriorDay=3.69 -DoFDebug=false +DoFDebug=0 DoFMultNight=319.23999 DoFMultDay=295.160004 DoFMultInteriorNight=281.079987 @@ -46,14 +46,14 @@ DoFFixedUnfocusedBlendNight=1.0 DoFFixedUnfocusedBlendDay=1.0 DoFFixedUnfocusedBlendInteriorNight=1.0 DoFFixedUnfocusedBlendInteriorDay=1.0 -DoFTwoPass=false +DoFTwoPass=true EdgeDisable=true EdgeView=false EdgeFadePower=1.6 EdgeFadeMultiplier=20.0 EdgePower=1.5 EdgeMultiplier=20.0 -DoFDisable=false +DoFDisable=true DoFSmoothing=false DoFCutoff=true SSAOEnable=true @@ -62,17 +62,17 @@ SSAONormalOffset1=0.0 SSAONormalOffset2=0.01 SSAONormalOffset3=0.01 SSAONormalOffset4=0.0 -SSAORadius=8.0 -SSAONoise=0.5 +SSAORadius=128.0 +SSAONoise=1.0 SSAONoiseSize=1.0 SSAOFade=0.5 SSAOBump=0.0 SSAOMult=1.0 -SSAOPower=5.0 -SSAOBlend=0.7 +SSAOPower=4.0 +SSAOBlend=0.6 SSAOBlurEnable=true -SSAOFadePower=1.2 -SSAOFadeMultiplier=200.0 +SSAOFadePower=1.25 +SSAOFadeMultiplier=400.0 _FixedResolutionX=1920 _FixedResolutionY=1080 SSAOFalloff=0.01 diff --git a/enbseries/menbbloomsettings.fx b/enbseries/menbbloomsettings.fx index 1d27548..7ce06fa 100644 --- a/enbseries/menbbloomsettings.fx +++ b/enbseries/menbbloomsettings.fx @@ -4,7 +4,7 @@ Part of MariENB, the personal ENB of Marisa. Released under the WTFPL. */ -/* fixed resolution */ +/* fixed resolution, keeps blur filters at a consistent internal resolution */ int fixedx < string UIName = "_FixedResolutionX"; @@ -22,42 +22,50 @@ float bloomintensity_n < string UIName = "BloomIntensityNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.25}; float bloomintensity_d < string UIName = "BloomIntensityDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.25}; float bloomintensity_in < string UIName = "BloomIntensityInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.25}; float bloomintensity_id < string UIName = "BloomIntensityInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.25}; -/* bloom power */ +/* bloom power (contrast) */ float bloompower_n < string UIName = "BloomPowerNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.4}; float bloompower_d < string UIName = "BloomPowerDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.4}; float bloompower_in < string UIName = "BloomPowerInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.4}; float bloompower_id < string UIName = "BloomPowerInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.4}; /* bloom saturation */ float bloomsaturation_n @@ -80,7 +88,7 @@ float bloomsaturation_id string UIName = "BloomSaturationInteriorDay"; string UIWidget = "Spinner"; > = {0.3}; -/* bloom offset */ +/* bloom offset (negative values keep dark areas from muddying up) */ float bloombump_n < string UIName = "BloomBumpNight"; diff --git a/enbseries/menbeffectsettings.fx b/enbseries/menbeffectsettings.fx index 32247e0..3ab9922 100644 --- a/enbseries/menbeffectsettings.fx +++ b/enbseries/menbeffectsettings.fx @@ -4,7 +4,7 @@ Part of MariENB, the personal ENB of Marisa. Released under the WTFPL. */ -/* fixed resolution */ +/* fixed resolution, keeps blur filters at a consistent internal resolution */ int fixedx < string UIName = "_FixedResolutionX"; @@ -23,42 +23,50 @@ float dkradius_n < string UIName = "DarkRadiusNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.40}; float dkradius_d < string UIName = "DarkRadiusDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.29}; float dkradius_in < string UIName = "DarkRadiusInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.50}; float dkradius_id < string UIName = "DarkRadiusInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.39}; /* falloff of darkening */ float dkcurve_n < string UIName = "DarkCurveNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.70}; float dkcurve_d < string UIName = "DarkCurveDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {2.30}; float dkcurve_in < string UIName = "DarkCurveInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.35}; float dkcurve_id < string UIName = "DarkCurveInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.67}; /* bump of darkening */ float dkbump_n @@ -81,7 +89,7 @@ float dkbump_id string UIName = "DarkBumpInteriorDay"; string UIWidget = "Spinner"; > = {0.61}; -/* Adaptation */ +/* "adaptation" factors */ float amin_n < string UIName = "AdaptationMinNight"; @@ -122,7 +130,7 @@ float amax_id string UIName = "AdaptationMaxInteriorDay"; string UIWidget = "Spinner"; > = {0.91}; -/* Shine/bloom compensation */ +/* overshine/bloom compensation */ /* compensation factor */ float compfactor_n < @@ -144,28 +152,32 @@ float compfactor_id string UIName = "CompensateFactorInteriorDay"; string UIWidget = "Spinner"; > = {0.39}; -/* compensation power */ +/* compensation power (contrast) */ float comppow_n < string UIName = "CompensatePowerNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.08}; float comppow_d < string UIName = "CompensatePowerDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.11}; float comppow_in < string UIName = "CompensatePowerInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.05}; float comppow_id < string UIName = "CompensatePowerInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.14}; -/* compensation saturation */ +/* compensation saturation (higher values desaturate highlights) */ float compsat_n < string UIName = "CompensateSaturationNight"; @@ -187,7 +199,7 @@ float compsat_id string UIWidget = "Spinner"; > = {0.74}; /* Color grading */ -/* miscellaneous color grading parameters */ +/* color component multipliers */ float grademul_r_n < string UIName = "GradingMulRNight"; @@ -248,66 +260,80 @@ float grademul_b_id string UIName = "GradingMulBInteriorDay"; string UIWidget = "Spinner"; > = {1.41}; +/* color component contrasts */ float gradepow_r_n < string UIName = "GradingPowRNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.02}; float gradepow_g_n < string UIName = "GradingPowGNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.06}; float gradepow_b_n < string UIName = "GradingPowBNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.03}; float gradepow_r_d < string UIName = "GradingPowRDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.09}; float gradepow_g_d < string UIName = "GradingPowGDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.08}; float gradepow_b_d < string UIName = "GradingPowBDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.05}; float gradepow_r_in < string UIName = "GradingPowRInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.08}; float gradepow_g_in < string UIName = "GradingPowGInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.11}; float gradepow_b_in < string UIName = "GradingPowBInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.06}; float gradepow_r_id < string UIName = "GradingPowRInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.05}; float gradepow_g_id < string UIName = "GradingPowGInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.04}; float gradepow_b_id < string UIName = "GradingPowBInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.04}; +/* colorization factors */ float gradecol_r_n < string UIName = "GradingColRNight"; @@ -368,6 +394,7 @@ float gradecol_b_id string UIName = "GradingColBInteriorDay"; string UIWidget = "Spinner"; > = {-0.85}; +/* blend factor for colorization (negative values are quite fancy) */ float gradecolfact_n < string UIName = "GradingColFactorNight"; @@ -394,8 +421,10 @@ float boxv < string UIName = "BoxVertical"; string UIWidget = "Spinner"; + float UIMin = 0.0; + float UIMax = 1.0; > = {0.90}; -/* softening */ +/* softening (0 = disable) */ float boxb < string UIName = "BoxSoften"; @@ -407,7 +436,7 @@ float boxa string UIName = "BoxAlpha"; string UIWidget = "Spinner"; > = {12.00}; -/* soften bloom texture */ +/* soften bloom texture (remove blocky artifacts from downscaled bloom) */ bool softbloom < string UIName = "BloomSoften"; diff --git a/enbseries/menbextrafilters.fx b/enbseries/menbextrafilters.fx index 2bacda9..eccc42c 100644 --- a/enbseries/menbextrafilters.fx +++ b/enbseries/menbextrafilters.fx @@ -14,6 +14,8 @@ VS_OUTPUT_POST VS_Pass( VS_INPUT_POST IN ) /* prepass */ float4 ReducePrepass( in float4 color, in float2 coord ) { + float3 bgamma = float3(bgammar,bgammag,bgammab); + float3 bsaturation = float3(bsaturationr,bsaturationg,bsaturationb); color.rgb = pow(max(color.rgb,0.0),bgamma); float4 dac; dac.a = (color.r+color.g+color.b)/3.0; @@ -226,7 +228,17 @@ float4 PS_Grain( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR :(1.0-2.0*(1.0-res.b)*(1.0-((0.5+(nt.b*ni))))); } else if ( nb == 3 ) - res.rgb *= 1.0+(nt*ni); + { + float bn = 1.0-saturate((res.r+res.g+res.b)/3.0); + bn = pow(bn,bnp); + float3 nn = saturate(nt*bn); + res.r = (res.r>0.5)?(2.0*res.r*(0.5+(nn.r*ni))) + :(1.0-2.0*(1.0-res.r)*(1.0-((0.5+(nn.r*ni))))); + res.g = (res.g>0.5)?(2.0*res.g*(0.5+(nn.g*ni))) + :(1.0-2.0*(1.0-res.g)*(1.0-((0.5+(nn.g*ni))))); + res.b = (res.b>0.5)?(2.0*res.b*(0.5+(nn.b*ni))) + :(1.0-2.0*(1.0-res.b)*(1.0-((0.5+(nn.b*ni))))); + } else res.rgb = lerp(res.rgb,nt,ni); return res; diff --git a/enbseries/menbextrainternals.fx b/enbseries/menbextrainternals.fx index 3d60741..0ac0335 100644 --- a/enbseries/menbextrainternals.fx +++ b/enbseries/menbextrainternals.fx @@ -10,8 +10,8 @@ */ static const float checkers[4] = { - 1,0, - 0,1 + 1.0,0.0, + 0.0,1.0 }; #define d(x) x/4.0 static const float ordered2[4] = diff --git a/enbseries/menbextrasettings.fx b/enbseries/menbextrasettings.fx index 586f540..52c9a3f 100644 --- a/enbseries/menbextrasettings.fx +++ b/enbseries/menbextrasettings.fx @@ -4,31 +4,43 @@ Part of MariENB, the personal ENB of Marisa. Released under the WTFPL. */ +/* film grain */ bool ne < string UIName = "UseGrain"; string UIWidget = "Checkbox"; > = {false}; +/* speed of grain */ float nf < string UIName = "GrainFrequency"; string UIWidget = "Spinner"; > = {0.25}; +/* intensity of grain */ float ni < string UIName = "GrainIntensity"; string UIWidget = "Spinner"; > = {0.15}; +/* saturation of grain */ float ns < string UIName = "GrainSaturation"; string UIWidget = "Spinner"; > = {0.0}; +/* use two-pass grain (double the texture fetches, but looks less uniform) */ bool np < string UIName = "GrainTwoPass"; string UIWidget = "Checkbox"; > = {false}; +/* + blending mode for grain: + 0 -> normal + 1 -> add + 2 -> overlay + 3 -> "dark mask", a personal invention +*/ int nb < string UIName = "GrainBlend"; @@ -36,11 +48,20 @@ int nb int UIMin = 0; int UIMax = 3; > = {0}; +/* dark mask blend mode contrast for mask image */ +float bnp +< + string UIName = "GrainDarkMaskPower"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +/* two-pass distortion factor (0 = look just like one-pass grain) */ float nk < string UIName = "GrainTwoPassFactor"; string UIWidget = "Spinner"; > = {0.04}; +/* zoom factors for each component of each noise texture */ float nm1 < string UIName = "GrainMagnification1"; @@ -86,26 +107,32 @@ float nm23 string UIName = "GrainPass2Magnification3"; string UIWidget = "Spinner"; > = {6.29}; +/* contrast of grain */ float nj < string UIName = "GrainPower"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {4.33}; +/* use curvature + chromatic aberration filter */ bool usecurve < string UIName = "UseCurve"; string UIWidget = "Checkbox"; > = {false}; +/* this is a stupid filter and you should feel bad for using it */ float chromaab < string UIName = "CurveChromaAberration"; string UIWidget = "Spinner"; > = {0.07}; +/* zoom factor for curve lens (50.0 = no zoom) */ float lenszoom < string UIName = "CurveLensZoom"; string UIWidget = "Spinner"; > = {50.25}; +/* distortion factors for lens */ float lensdist < string UIName = "CurveLensDistortion"; @@ -116,16 +143,24 @@ float lensdistc string UIName = "CurveLensDistortionCubic"; string UIWidget = "Spinner"; > = {0.0}; +/* clamp borders of lens with black */ bool lensclamp < string UIName = "CurveLensClamp"; string UIWidget = "Checkbox"; > = {true}; +/* BlockGFX filter, I'm proud of it */ bool useblock < string UIName = "UseBlockGFX"; 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 = "EmulatedResX"; @@ -138,6 +173,17 @@ float bresy 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 : RGB323 (8-bit RGB, I don't think this was a real thing) + 4 : RGB4 (4bpc, I also don't think this was ever used in real hardware) + 5 : RGB565 (ol' 16-bit "true color") + 6 : RGB6 (typical screens incapable of 8bpc) +*/ int paltype < string UIName = "PaletteType"; @@ -145,6 +191,16 @@ int paltype int UIMin = -1; int UIMax = 6; > = {2}; +/* + 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 = "CGAPalette"; @@ -152,6 +208,11 @@ int cgapal 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 = "EGAPalette"; @@ -159,6 +220,15 @@ int egapal int UIMin = 0; int UIMax = 1; > = {0}; +/* + Dithering mode: + -1 : No dithering, just raw banding + 0 : 2x2 checkerboard dithering, looks like ass + 1 : 2x2 ordered dithering + 2 : 3x3 ordered dithering + 3 : 4x4 ordered dithering + 4 : 8x8 ordered dithering +*/ int dither < string UIName = "DitherMode"; @@ -166,25 +236,51 @@ int dither int UIMin = -1; int UIMax = 4; > = {4}; -float bgamma +/* gamma modifiers for base color, lower values raise midtones and viceversa */ +float bgammar < - string UIName = "GammaMod"; + string UIName = "GammaModR"; string UIWidget = "Spinner"; float UIMin = 0.0; > = {0.65}; +float bgammag +< + string UIName = "GammaModG"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {0.65}; +float bgammab +< + string UIName = "GammaModB"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {0.65}; +/* base brightness bump for the dither grid */ float bdbump < string UIName = "DitherBump"; string UIWidget = "Spinner"; > = {-0.1}; +/* range multiplier for the dither grid */ float bdmult < string UIName = "DitherMultiplier"; string UIWidget = "Spinner"; float UIMin = 0.0; > = {0.3}; -float bsaturation +/* saturation modifiers for base color, helps with limited palettes */ +float bsaturationr < - string UIName = "SaturationMod"; + string UIName = "SaturationModR"; string UIWidget = "Spinner"; -> = {1.0}; \ No newline at end of file +> = {1.0}; +float bsaturationg +< + string UIName = "SaturationModG"; + string UIWidget = "Spinner"; +> = {1.0}; +float bsaturationb +< + string UIName = "SaturationModB"; + string UIWidget = "Spinner"; +> = {1.0}; diff --git a/enbseries/menbprepassfilters.fx b/enbseries/menbprepassfilters.fx index 7d76bab..829118d 100644 --- a/enbseries/menbprepassfilters.fx +++ b/enbseries/menbprepassfilters.fx @@ -92,8 +92,9 @@ float4 PS_Edge( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR /* Crappy SSAO */ float3 pseudonormal( float dep, float2 coord ) { - float2 ofs1 = float2(ssaonoff1*0.01,ssaonoff2*0.01); - float2 ofs2 = float2(ssaonoff3*0.01,ssaonoff4*0.01); + float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); + float2 ofs1 = float2(0,1.0/bresl.y); + float2 ofs2 = float2(1.0/bresl.x,0); float dep1 = tex2D(SamplerDepth,coord+ofs1).x; float dep2 = tex2D(SamplerDepth,coord+ofs2).x; float3 p1 = float3(ofs1,dep1-dep); @@ -118,16 +119,16 @@ float4 PS_SSAO( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR float2 nc = coord*(bresl/256.0); float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*ssaoradius; float3 rnormal = tex2D(SamplerNoise3,nc).xyz*2.0-1.0; - normal = normal+rnormal*ssaonoise; + normal = normalize(normal+rnormal*ssaonoise); float occ = 0.0; int i; float ldepth = depthlinear(coord); for ( i=0; i<16; i++ ) { float3 sample = reflect(ssao_samples[i],normal); - float sampledepth = depthlinear(coord+i*sample.xy*bof); + float sampledepth = depthlinear(coord+sample.xy*bof); float diff = sampledepth-ldepth; - if ( sampledepth > ldepth ) + if ( ldepth < sampledepth ) occ += 1.0/(1.0+pow(diff,2)); } float uocc = saturate(1.0-occ/16.0); @@ -335,8 +336,10 @@ float4 PS_DoF( VS_OUTPUT_POST IN, float2 vPos : VPOS, uniform int p ) : COLOR res += gauss5[0][2]*tex2D(SamplerColor,coord+float2(0,2)*bof*dfc); res += gauss5[1][2]*tex2D(SamplerColor,coord+float2(1,2)*bof*dfc); res += gauss5[2][2]*tex2D(SamplerColor,coord+float2(2,2)*bof*dfc); - if ( dofdebug ) + if ( dofdebug == 1 ) return dfc; + else if ( dofdebug == 2 ) + return tex2D(SamplerDepth,coord); return res; } technique ReadFocus diff --git a/enbseries/menbprepasssettings.fx b/enbseries/menbprepasssettings.fx index 8931e08..4855ff0 100644 --- a/enbseries/menbprepasssettings.fx +++ b/enbseries/menbprepasssettings.fx @@ -4,7 +4,7 @@ Part of MariENB, the personal ENB of Marisa. Released under the WTFPL. */ -/* fixed resolution */ +/* fixed resolution, keeps blur filters at a consistent internal resolution */ int fixedx < string UIName = "_FixedResolutionX"; @@ -17,13 +17,13 @@ int fixedy string UIWidget = "Spinner"; int UIMin = 0; > = {0}; -/* circle average focus */ +/* circle (triangle, actually) average focus */ bool focuscircle < string UIName = "FocusCircleEnable"; string UIWidget = "Checkbox"; > = {false}; -/* radius of the outmost circle */ +/* radius of the focus point triangle */ float focusradius_n < string UIName = "FocusCircleRadiusNight"; @@ -87,179 +87,210 @@ float focusmax_id string UIWidget = "Spinner"; > = {1.0}; /* dof filter */ -/* depth multiplier */ +/* dof multiplier (makes unfocused depths more blurry) */ float dofmult_n < string UIName = "DoFMultNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float dofmult_d < string UIName = "DoFMultDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float dofmult_in < string UIName = "DoFMultInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float dofmult_id < string UIName = "DoFMultInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; -/* depth power */ +/* dof power (falloff, kinda) */ float dofpow_n < string UIName = "DoFPowNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float dofpow_d < string UIName = "DoFPowDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float dofpow_in < string UIName = "DoFPowInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float dofpow_id < string UIName = "DoFPowInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; -/* fixed depth multiplier */ +/* fixed focused depth factors */ float doffixedfocusmult_n < string UIName = "DoFFixedFocusedMultNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float doffixedfocusmult_d < string UIName = "DoFFixedFocusedMultDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float doffixedfocusmult_in < string UIName = "DoFFixedFocusedMultInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float doffixedfocusmult_id < string UIName = "DoFFixedFocusedMultInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; -/* fixed depth power */ float doffixedfocuspow_n < string UIName = "DoFFixedFocusedPowNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float doffixedfocuspow_d < string UIName = "DoFFixedFocusedPowDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float doffixedfocuspow_in < string UIName = "DoFFixedFocusedPowInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float doffixedfocuspow_id < string UIName = "DoFFixedFocusedPowInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; -/* fixed depth blending */ float doffixedfocusblend_n < string UIName = "DoFFixedFocusedBlendNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.0}; float doffixedfocusblend_d < string UIName = "DoFFixedFocusedBlendDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.0}; float doffixedfocusblend_in < string UIName = "DoFFixedFocusedBlendInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.0}; float doffixedfocusblend_id < string UIName = "DoFFixedFocusedBlendInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.0}; +/* fixed unfocused depth factors */ float doffixedunfocusmult_n < string UIName = "DoFFixedUnfocusedMultNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float doffixedunfocusmult_d < string UIName = "DoFFixedUnfocusedMultDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float doffixedunfocusmult_in < string UIName = "DoFFixedUnfocusedMultInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float doffixedunfocusmult_id < string UIName = "DoFFixedUnfocusedMultInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; -/* fixed depth power */ float doffixedunfocuspow_n < string UIName = "DoFFixedUnfocusedPowNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float doffixedunfocuspow_d < string UIName = "DoFFixedUnfocusedPowDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float doffixedunfocuspow_in < string UIName = "DoFFixedUnfocusedPowInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float doffixedunfocuspow_id < string UIName = "DoFFixedUnfocusedPowInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; -/* fixed depth blending */ float doffixedunfocusblend_n < string UIName = "DoFFixedUnfocusedBlendNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.0}; float doffixedunfocusblend_d < string UIName = "DoFFixedUnfocusedBlendDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.0}; float doffixedunfocusblend_in < string UIName = "DoFFixedUnfocusedBlendInteriorNight"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.0}; float doffixedunfocusblend_id < string UIName = "DoFFixedUnfocusedBlendInteriorDay"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {0.0}; -/* display dof factors per pixel */ -bool dofdebug +/* display dof factors per pixel, or just the whole depth buffer */ +int dofdebug < string UIName = "DoFDebug"; string UIWidget = "Checkbox"; -> = {false}; + int UIMin = 0; + int UIMax = 2; +> = 0; /* two-pass blur, makes you shortsighted */ bool doftwopass < @@ -278,7 +309,7 @@ bool dofsmooth string UIName = "DoFSmoothing"; string UIWidget = "Checkbox"; > = {true}; -/* enable depth of field sky cutoff (keeps sky sharp, but may look awful) */ +/* enable depth of field sky cutoff (keeps sky sharp, but may look weird) */ bool dofcutoff < string UIName = "DoFCutoff"; @@ -301,21 +332,25 @@ float edgefadepow < string UIName = "EdgeFadePower"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.6}; float edgefademult < string UIName = "EdgeFadeMultiplier"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {16.0}; float edgepow < string UIName = "EdgePower"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.5}; float edgemult < string UIName = "EdgeMultiplier"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {32.0}; /* ssao filter */ bool ssaoenable @@ -330,26 +365,6 @@ int ssaodebug int UIMin = 0; int UIMax = 2; > = 0; -float ssaonoff1 -< - string UIName = "SSAONormalOffset1"; - string UIWidget = "Spinner"; -> = {0.0}; -float ssaonoff2 -< - string UIName = "SSAONormalOffset2"; - string UIWidget = "Spinner"; -> = {0.1}; -float ssaonoff3 -< - string UIName = "SSAONormalOffset3"; - string UIWidget = "Spinner"; -> = {0.1}; -float ssaonoff4 -< - string UIName = "SSAONormalOffset4"; - string UIWidget = "Spinner"; -> = {0.0}; float ssaoradius < string UIName = "SSAORadius"; @@ -364,16 +379,19 @@ float ssaofadepow < string UIName = "SSAOFadePower"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.5}; float ssaofademult < string UIName = "SSAOFadeMultiplier"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {15.0}; float ssaomult < string UIName = "SSAOMultiplier"; string UIWidget = "Spinner"; + float UIMin = 0.0; > = {1.0}; float ssaopow <