diff --git a/MariENB_LICENSE.txt b/MariENB_LICENSE.txt index 35c1860..5c93f45 100644 --- a/MariENB_LICENSE.txt +++ b/MariENB_LICENSE.txt @@ -1,19 +1,13 @@ -Copyright (c) 2013-2014 UnSX Team - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/effect.txt b/effect.txt deleted file mode 100644 index 200aa92..0000000 --- a/effect.txt +++ /dev/null @@ -1,12 +0,0 @@ -/* - effect.txt : MariENB additional filters. - (C)2013-2014 Marisa Kirisame, UnSX Team. - Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. -*/ -/* do not touch this! */ -#define E_SHADER_3_0 -/* separate for easier maintenance */ -#include "menbsettings.fx" -#include "menbinternals.fx" -#include "menbfilters.fx" diff --git a/enblensmask.png b/enblensmask.png deleted file mode 100644 index 8445ad0..0000000 Binary files a/enblensmask.png and /dev/null differ diff --git a/enbpalette.bmp b/enbpalette.bmp deleted file mode 100644 index e29cdd6..0000000 Binary files a/enbpalette.bmp and /dev/null differ diff --git a/enbseries.ini b/enbseries.ini index 1dbc5d2..794f901 100644 --- a/enbseries.ini +++ b/enbseries.ini @@ -1,7 +1,7 @@ ; enbseries.ini : ENB configuration file. ; (C)2013-2014 Marisa Kirisame, UnSX Team. ; Part of MariENB, the personal ENB of Marisa. -; Released under the MIT License. +; Released under the WTFPL. [GLOBAL] AdditionalConfigFile= @@ -12,7 +12,7 @@ UseOriginalPostProcessing=false UseOriginalObjectsProcessing=false EnableBloom=true EnableAdaptation=false -EnableAmbientOcclusion=false +EnableAmbientOcclusion=true EnableDepthOfField=true EnableDetailedShadow=true EnableSunRays=true @@ -32,45 +32,40 @@ EnableProceduralSun=true EnableMist=true [BLOOM] -Quality=1 -AmountDay=0.5 -AmountNight=0.85 -AmountInterior=1.35 -BlueShiftAmountDay=21.369999 -BlueShiftAmountNight=13.0 -BlueShiftAmountInterior=12.0 -ContrastDay=1.0 -ContrastNight=3.0 -ContrastInterior=2.0 -AmountSunrise=1.02 -AmountSunset=1.31 -AmountInteriorDay=0.66 -AmountInteriorNight=0.9 -BlueShiftAmountSunrise=15.77 -BlueShiftAmountSunset=17.530001 -BlueShiftAmountInteriorDay=19.219999 -BlueShiftAmountInteriorNight=14.86 +Quality=0 +AmountDay=1.0 +AmountNight=1.0 +BlueShiftAmountDay=0.0 +BlueShiftAmountNight=0.0 +AmountSunrise=1.0 +AmountSunset=1.0 +AmountInteriorDay=1.0 +AmountInteriorNight=1.0 +BlueShiftAmountSunrise=0.0 +BlueShiftAmountSunset=0.0 +BlueShiftAmountInteriorDay=0.0 +BlueShiftAmountInteriorNight=0.0 IgnoreWeatherSystem=true [CAMERAFX] -LenzReflectionIntensityDay=1.29 -LenzReflectionIntensityNight=1.14 +LenzReflectionIntensityDay=0.0 +LenzReflectionIntensityNight=0.0 LenzReflectionIntensityInterior=0.0 -LenzReflectionPowerDay=0.91 -LenzReflectionPowerNight=0.74 +LenzReflectionPowerDay=0.0 +LenzReflectionPowerNight=0.0 LenzReflectionPowerInterior=0.0 -LenzReflectionIntensitySunrise=1.45 -LenzReflectionIntensitySunset=1.53 -LenzReflectionIntensityInteriorDay=0.950001 -LenzReflectionIntensityInteriorNight=1.21 -LenzReflectionPowerSunrise=0.64 -LenzReflectionPowerSunset=0.64 -LenzReflectionPowerInteriorDay=0.76 -LenzReflectionPowerInteriorNight=0.71 +LenzReflectionIntensitySunrise=0.0 +LenzReflectionIntensitySunset=0.0 +LenzReflectionIntensityInteriorDay=0.0 +LenzReflectionIntensityInteriorNight=0.0 +LenzReflectionPowerSunrise=1.0 +LenzReflectionPowerSunset=1.0 +LenzReflectionPowerInteriorDay=1.0 +LenzReflectionPowerInteriorNight=1.0 [SSAO_SSIL] -UseIndirectLighting=false -UseComplexIndirectLighting=false +UseIndirectLighting=true +UseComplexIndirectLighting=true SamplingQuality=1 SamplingRange=1.0 FadeFogRangeDay=0.0 @@ -79,24 +74,24 @@ FadeFogRangeInterior=0.0 SizeScale=0.5 SourceTexturesScale=0.5 FilterQuality=1 -AOAmount=2.44 -ILAmount=0.0 -UseComplexAmbientOcclusion=false -UseAmbientIndirectLighting=false +AOAmount=1.0 +ILAmount=1.0 +UseComplexAmbientOcclusion=true +UseAmbientIndirectLighting=true SamplingPrecision=1 -FadeFogRange=3.14 +FadeFogRange=0.0 FilterType=0 -AOAmountInterior=2.71 -ILAmountInterior=0.0 -AOIntensity=1.49 -AOIntensityInterior=1.51 +AOAmountInterior=1.0 +ILAmountInterior=1.0 +AOIntensity=1.0 +AOIntensityInterior=1.0 AOType=0 AOMixingType=0 AOMixingTypeInterior=0 UseOldType=false -EnableDenoiser=false +EnableDenoiser=true EnableSupersampling=false -EnableComplexFilter=false +EnableComplexFilter=true ILType=0 [NIGHTDAY] @@ -108,47 +103,47 @@ DetectorOldVersion=false [ADAPTATION] ForceMinMaxValues=true -AdaptationSensitivity=0.35 -AdaptationTime=3.22 -AdaptationMin=0.85001 -AdaptationMax=1.23 +AdaptationSensitivity=0.71 +AdaptationTime=2.01 +AdaptationMin=1.0 +AdaptationMax=1.0 [ENVIRONMENT] -DirectLightingIntensityDay=1.29 -DirectLightingIntensityNight=1.32 +DirectLightingIntensityDay=1.22 +DirectLightingIntensityNight=1.02 DirectLightingIntensityInterior=1.014688 -DirectLightingCurveDay=1.24 -DirectLightingCurveNight=1.15 +DirectLightingCurveDay=1.08 +DirectLightingCurveNight=0.88 DirectLightingCurveInterior=1.25 -DirectLightingDesaturationDay=0.0 -DirectLightingDesaturationNight=0.0 +DirectLightingDesaturationDay=0.05 +DirectLightingDesaturationNight=0.18 DirectLightingDesaturationInterior=0.0 -SpecularAmountMultiplierDay=1.15 -SpecularAmountMultiplierNight=1.44 +SpecularAmountMultiplierDay=1.03 +SpecularAmountMultiplierNight=1.33 SpecularAmountMultiplierInterior=1.0 -SpecularPowerMultiplierDay=1.551 -SpecularPowerMultiplierNight=1.651 +SpecularPowerMultiplierDay=0.651 +SpecularPowerMultiplierNight=0.351 SpecularPowerMultiplierInterior=1.0 SpecularFromLightDay=0.0 SpecularFromLightNight=0.0 SpecularFromLightInterior=0.0 -AmbientLightingIntensityDay=0.66 -AmbientLightingIntensityNight=0.22 +AmbientLightingIntensityDay=0.66 +AmbientLightingIntensityNight=0.39 AmbientLightingIntensityInterior=0.914 -AmbientLightingCurveDay=1.29 -AmbientLightingCurveNight=1.18 -AmbientLightingCurveInterior=0.75 +AmbientLightingCurveDay=1.29 +AmbientLightingCurveNight=1.31 +AmbientLightingCurveInterior=0.75 AmbientLightingDesaturationDay=0.0 AmbientLightingDesaturationNight=0.0 AmbientLightingDesaturationInterior=0.0 -PointLightingIntensityDay=1.29 -PointLightingIntensityNight=2.15 +PointLightingIntensityDay=0.7 +PointLightingIntensityNight=0.81 PointLightingIntensityInterior=0.825 -PointLightingCurveDay=1.26875 -PointLightingCurveNight=1.56 +PointLightingCurveDay=0.58875 +PointLightingCurveNight=0.7 PointLightingCurveInterior=0.825 -PointLightingDesaturationDay=0.12 -PointLightingDesaturationNight=0.3 +PointLightingDesaturationDay=0.08 +PointLightingDesaturationNight=0.23 PointLightingDesaturationInterior=0.0 FogColorMultiplierDay=0.6 FogColorMultiplierNight=0.51 @@ -159,34 +154,34 @@ FogColorCurveInterior=1.0 ColorPowDay=1.0 ColorPowNight=1.0 ColorPowInterior=0.9 -DirectLightingIntensitySunrise=1.55 -DirectLightingIntensitySunset=2.09 -DirectLightingIntensityInteriorDay=1.27 -DirectLightingIntensityInteriorNight=1.27 -DirectLightingCurveSunrise=1.59 -DirectLightingCurveSunset=1.91 +DirectLightingIntensitySunrise=1.3 +DirectLightingIntensitySunset=1.45 +DirectLightingIntensityInteriorDay=1.14 +DirectLightingIntensityInteriorNight=0.96 +DirectLightingCurveSunrise=1.26 +DirectLightingCurveSunset=1.62 DirectLightingCurveInteriorDay=1.05 -DirectLightingCurveInteriorNight=1.11 -DirectLightingDesaturationSunrise=0.0 -DirectLightingDesaturationSunset=0.0 -DirectLightingDesaturationInteriorDay=0.0 -DirectLightingDesaturationInteriorNight=0.0 +DirectLightingCurveInteriorNight=0.85 +DirectLightingDesaturationSunrise=0.02 +DirectLightingDesaturationSunset=0.01 +DirectLightingDesaturationInteriorDay=0.08 +DirectLightingDesaturationInteriorNight=0.15 SpecularAmountMultiplierSunrise=1.49 -SpecularAmountMultiplierSunset=1.51 -SpecularAmountMultiplierInteriorDay=1.27 -SpecularAmountMultiplierInteriorNight=1.38 -SpecularPowerMultiplierSunrise=1.181 -SpecularPowerMultiplierSunset=1.141 -SpecularPowerMultiplierInteriorDay=1.241 -SpecularPowerMultiplierInteriorNight=1.441 +SpecularAmountMultiplierSunset=1.62 +SpecularAmountMultiplierInteriorDay=1.21 +SpecularAmountMultiplierInteriorNight=1.17 +SpecularPowerMultiplierSunrise=0.241 +SpecularPowerMultiplierSunset=0.101 +SpecularPowerMultiplierInteriorDay=0.511 +SpecularPowerMultiplierInteriorNight=0.371 SpecularFromLightSunrise=0.0 SpecularFromLightSunset=0.0 SpecularFromLightInteriorDay=0.0 SpecularFromLightInteriorNight=0.0 -AmbientLightingIntensitySunrise=0.4 +AmbientLightingIntensitySunrise=0.37 AmbientLightingIntensitySunset=0.34 -AmbientLightingIntensityInteriorDay=0.33 -AmbientLightingIntensityInteriorNight=0.25 +AmbientLightingIntensityInteriorDay=0.35 +AmbientLightingIntensityInteriorNight=0.12 AmbientLightingCurveSunrise=1.32 AmbientLightingCurveSunset=1.44 AmbientLightingCurveInteriorDay=1.07 @@ -195,48 +190,48 @@ AmbientLightingDesaturationSunrise=0.0 AmbientLightingDesaturationSunset=0.0 AmbientLightingDesaturationInteriorDay=0.0 AmbientLightingDesaturationInteriorNight=0.0 -AmbientColorFilterAmountSunrise=0.12 -AmbientColorFilterAmountDay=0.11 -AmbientColorFilterAmountSunset=0.14 -AmbientColorFilterAmountNight=0.33 -AmbientColorFilterAmountInteriorDay=0.11 -AmbientColorFilterAmountInteriorNight=0.24 +AmbientColorFilterAmountSunrise=0.0 +AmbientColorFilterAmountDay=0.0 +AmbientColorFilterAmountSunset=0.0 +AmbientColorFilterAmountNight=0.0 +AmbientColorFilterAmountInteriorDay=0.0 +AmbientColorFilterAmountInteriorNight=0.0 AmbientColorFilterTopSunrise=0.902, 0.784, 0.212 AmbientColorFilterTopDay=0.882, 0.863, 0.71 AmbientColorFilterTopSunset=0.945, 0.369, 0.0353 -AmbientColorFilterTopNight=0.00784, 0.435, 0.737 +AmbientColorFilterTopNight=0.00784, 0.447, 0.737 AmbientColorFilterTopInteriorDay=0.373, 0.396, 0.451 AmbientColorFilterTopInteriorNight=0.369, 0.435, 0.565 -AmbientColorFilterMiddleSunrise=0.396, 0.231, 0.0902 -AmbientColorFilterMiddleDay=0.188, 0.173, 0.149 -AmbientColorFilterMiddleSunset=0.227, 0.0627, 0.0157 -AmbientColorFilterMiddleNight=0.141, 0.192, 0.259 -AmbientColorFilterMiddleInteriorDay=0.227, 0.333, 0.392 -AmbientColorFilterMiddleInteriorNight=0.18, 0.247, 0.376 -AmbientColorFilterBottomSunrise=0.776, 0.545, 0.282 -AmbientColorFilterBottomDay=0.518, 0.455, 0.353 -AmbientColorFilterBottomSunset=0.851, 0.384, 0.184 -AmbientColorFilterBottomNight=0.11, 0.165, 0.408 -AmbientColorFilterBottomInteriorDay=0.169, 0.29, 0.294 -AmbientColorFilterBottomInteriorNight=0.0824, 0.133, 0.278 -PointLightingIntensitySunrise=1.72 -PointLightingIntensitySunset=1.69 -PointLightingIntensityInteriorDay=1.8 -PointLightingIntensityInteriorNight=2.01 -PointLightingCurveSunrise=1.59 -PointLightingCurveSunset=1.78 -PointLightingCurveInteriorDay=1.3 -PointLightingCurveInteriorNight=1.45 -PointLightingDesaturationSunrise=0.28 -PointLightingDesaturationSunset=0.32 -PointLightingDesaturationInteriorDay=0.18 -PointLightingDesaturationInteriorNight=0.26 +AmbientColorFilterMiddleSunrise=0.0196, 0.0118, 0.00392 +AmbientColorFilterMiddleDay=0, 0, 0 +AmbientColorFilterMiddleSunset=0, 0, 0 +AmbientColorFilterMiddleNight=0, 0, 0 +AmbientColorFilterMiddleInteriorDay=0, 0, 0 +AmbientColorFilterMiddleInteriorNight=0, 0, 0 +AmbientColorFilterBottomSunrise=0, 0, 0 +AmbientColorFilterBottomDay=0, 0, 0 +AmbientColorFilterBottomSunset=0, 0, 0 +AmbientColorFilterBottomNight=0, 0, 0 +AmbientColorFilterBottomInteriorDay=0, 0, 0 +AmbientColorFilterBottomInteriorNight=0.00392, 0.00784, 0.0196 +PointLightingIntensitySunrise=0.8 +PointLightingIntensitySunset=0.85 +PointLightingIntensityInteriorDay=0.76 +PointLightingIntensityInteriorNight=0.88 +PointLightingCurveSunrise=0.8 +PointLightingCurveSunset=0.84 +PointLightingCurveInteriorDay=0.68 +PointLightingCurveInteriorNight=0.77 +PointLightingDesaturationSunrise=0.15 +PointLightingDesaturationSunset=0.19 +PointLightingDesaturationInteriorDay=0.09 +PointLightingDesaturationInteriorNight=0.12 ParticleLightsIntensitySunrise=1.19 ParticleLightsIntensityDay=0.94 ParticleLightsIntensitySunset=1.14 ParticleLightsIntensityNight=1.15 -ParticleLightsIntensityInteriorDay=0.77 -ParticleLightsIntensityInteriorNight=0.96 +ParticleLightsIntensityInteriorDay=1.21 +ParticleLightsIntensityInteriorNight=1.25 FogColorMultiplierSunrise=0.4 FogColorMultiplierSunset=0.35 FogColorMultiplierInteriorDay=0.39 @@ -255,20 +250,20 @@ IgnoreWeatherSystem=true Enable=true StarsIntensity=1.88 StarsCurve=1.23 -AuroraBorealisIntensity=1.2 -AuroraBorealisCurve=0.46 -CloudsIntensityDay=1.020001 -CloudsIntensityNight=0.510001 +AuroraBorealisIntensity=0.44 +AuroraBorealisCurve=0.23 +CloudsIntensityDay=1.030001 +CloudsIntensityNight=0.330001 CloudsIntensityInterior=1.49 CloudsCurveDay=1.18 -CloudsCurveNight=1.03 +CloudsCurveNight=1.06 CloudsCurveInterior=1.5 -CloudsDesaturationDay=0.15 -CloudsDesaturationNight=0.06 +CloudsDesaturationDay=0.16 +CloudsDesaturationNight=0.08 CloudsDesaturationInterior=0.14 -CloudsEdgeClamp=0.84 -CloudsEdgeIntensity=2.53 -GradientIntensityDay=1.310001 +CloudsEdgeClamp=0.0 +CloudsEdgeIntensity=1.94 +GradientIntensityDay=0.840001 GradientIntensityNight=0.740001 GradientIntensityInterior=0.85 GradientDesaturationDay=0.29 @@ -286,7 +281,7 @@ GradientMiddleIntensityInterior=2.4 GradientMiddleCurveDay=2.06 GradientMiddleCurveNight=1.41 GradientMiddleCurveInterior=1.65 -GradientHorizonIntensityDay=3.76 +GradientHorizonIntensityDay=1.94 GradientHorizonIntensityNight=1.840001 GradientHorizonIntensityInterior=2.33 GradientHorizonCurveDay=1.52 @@ -294,18 +289,18 @@ GradientHorizonCurveNight=1.36 GradientHorizonCurveInterior=1.25 SunIntensity=3.0 SunDesaturation=0.0 -SunCoronaIntensity=0.911 -SunCoronaCurve=3.19 +SunCoronaIntensity=0.5 +SunCoronaCurve=1.42 SunCoronaDesaturation=0.09 MoonIntensity=1.6 MoonCurve=1.0 MoonDesaturation=0.2 DisableWrongSkyMath=true -CloudsIntensitySunrise=0.550001 +CloudsIntensitySunrise=0.880001 CloudsIntensitySunset=0.63 CloudsIntensityInteriorDay=0.98 CloudsIntensityInteriorNight=0.44 -CloudsCurveSunrise=1.67 +CloudsCurveSunrise=1.27 CloudsCurveSunset=1.46 CloudsCurveInteriorDay=1.12 CloudsCurveInteriorNight=1.05 @@ -313,11 +308,11 @@ CloudsDesaturationSunrise=0.04 CloudsDesaturationSunset=0.02 CloudsDesaturationInteriorDay=0.13 CloudsDesaturationInteriorNight=0.04 -GradientIntensitySunrise=0.920001 +GradientIntensitySunrise=0.930001 GradientIntensitySunset=0.930001 -GradientIntensityInteriorDay=1.41 +GradientIntensityInteriorDay=0.95 GradientIntensityInteriorNight=0.870001 -GradientDesaturationSunrise=0.53 +GradientDesaturationSunrise=0.45 GradientDesaturationSunset=0.1 GradientDesaturationInteriorDay=0.29 GradientDesaturationInteriorNight=0.04 @@ -339,17 +334,17 @@ GradientMiddleCurveInteriorDay=2.2 GradientMiddleCurveInteriorNight=1.4 GradientHorizonIntensitySunrise=2.05 GradientHorizonIntensitySunset=2.21 -GradientHorizonIntensityInteriorDay=3.78 +GradientHorizonIntensityInteriorDay=1.91 GradientHorizonIntensityInteriorNight=1.82 GradientHorizonCurveSunrise=1.13 GradientHorizonCurveSunset=1.13 GradientHorizonCurveInteriorDay=1.44 GradientHorizonCurveInteriorNight=1.34 -SunIntensitySunrise=1.28 -SunIntensityDay=1.1 -SunIntensitySunset=1.07 +SunIntensitySunrise=2.57 +SunIntensityDay=1.83 +SunIntensitySunset=2.92 SunIntensityNight=1.04 -SunIntensityInteriorDay=1.09 +SunIntensityInteriorDay=2.2 SunIntensityInteriorNight=1.03 SunDesaturationSunrise=0.0 SunDesaturationDay=0.0 @@ -363,61 +358,61 @@ SunColorFilterSunset=0.82, 0.239, 0.137 SunColorFilterNight=0, 0, 0 SunColorFilterInteriorDay=1, 1, 1 SunColorFilterInteriorNight=0, 0, 0 -SunGlowIntensitySunrise=3.64 -SunGlowIntensityDay=3.15 -SunGlowIntensitySunset=4.37 -SunGlowIntensityNight=2.92 -SunGlowIntensityInteriorDay=3.45 -SunGlowIntensityInteriorNight=3.24 -SunGlowHazinessSunrise=0.08 -SunGlowHazinessDay=0.37 +SunGlowIntensitySunrise=1.11 +SunGlowIntensityDay=1.05 +SunGlowIntensitySunset=1.36 +SunGlowIntensityNight=1.02 +SunGlowIntensityInteriorDay=1.28 +SunGlowIntensityInteriorNight=1.01 +SunGlowHazinessSunrise=0.05 +SunGlowHazinessDay=0.36 SunGlowHazinessSunset=0.07 SunGlowHazinessNight=0.17 SunGlowHazinessInteriorDay=0.28 SunGlowHazinessInteriorNight=0.11 -MoonIntensitySunrise=0.85 -MoonIntensityDay=0.72 -MoonIntensitySunset=1.24 -MoonIntensityNight=1.52 -MoonIntensityInteriorDay=0.58 -MoonIntensityInteriorNight=1.3 -MoonCurveSunrise=0.97 -MoonCurveDay=0.88 -MoonCurveSunset=0.93 +MoonIntensitySunrise=0.68 +MoonIntensityDay=0.53 +MoonIntensitySunset=0.66 +MoonIntensityNight=1.36 +MoonIntensityInteriorDay=0.69 +MoonIntensityInteriorNight=1.54 +MoonCurveSunrise=0.89 +MoonCurveDay=0.61 +MoonCurveSunset=0.84 MoonCurveNight=1.07 -MoonCurveInteriorDay=0.86 +MoonCurveInteriorDay=0.59 MoonCurveInteriorNight=1.04 -MoonDesaturationSunrise=0.17 -MoonDesaturationDay=0.23 -MoonDesaturationSunset=0.14 -MoonDesaturationNight=0.12 -MoonDesaturationInteriorDay=0.22 -MoonDesaturationInteriorNight=0.13 -CloudsOpacitySunrise=0.98 -CloudsOpacityDay=1.31 -CloudsOpacitySunset=0.94 -CloudsOpacityNight=0.48 -CloudsOpacityInteriorDay=1.27 -CloudsOpacityInteriorNight=0.45 -CloudsEdgeFadeRange=0.95 -CloudsEdgeMoonMultiplier=4.32 +MoonDesaturationSunrise=0.55 +MoonDesaturationDay=0.81 +MoonDesaturationSunset=0.58 +MoonDesaturationNight=0.42 +MoonDesaturationInteriorDay=0.83 +MoonDesaturationInteriorNight=0.45 +CloudsOpacitySunrise=1.0 +CloudsOpacityDay=1.0 +CloudsOpacitySunset=1.0 +CloudsOpacityNight=1.0 +CloudsOpacityInteriorDay=1.0 +CloudsOpacityInteriorNight=1.0 +CloudsEdgeFadeRange=1.0 +CloudsEdgeMoonMultiplier=3.37 IgnoreWeatherSystem=true [OBJECT] -SubSurfaceScatteringMultiplierDay=0.48 -SubSurfaceScatteringMultiplierNight=0.26 +SubSurfaceScatteringMultiplierDay=0.71 +SubSurfaceScatteringMultiplierNight=0.43 SubSurfaceScatteringMultiplierInterior=0.0 -SubSurfaceScatteringPowerDay=4.0 -SubSurfaceScatteringPowerNight=4.6 +SubSurfaceScatteringPowerDay=2.3 +SubSurfaceScatteringPowerNight=1.41 SubSurfaceScatteringPowerInterior=1.1 -SubSurfaceScatteringMultiplierSunrise=0.71 -SubSurfaceScatteringMultiplierSunset=0.84 -SubSurfaceScatteringMultiplierInteriorDay=0.31 -SubSurfaceScatteringMultiplierInteriorNight=0.19 -SubSurfaceScatteringPowerSunrise=2.81 -SubSurfaceScatteringPowerSunset=2.52 -SubSurfaceScatteringPowerInteriorDay=5.06 -SubSurfaceScatteringPowerInteriorNight=5.63 +SubSurfaceScatteringMultiplierSunrise=0.92 +SubSurfaceScatteringMultiplierSunset=1.15 +SubSurfaceScatteringMultiplierInteriorDay=0.5 +SubSurfaceScatteringMultiplierInteriorNight=0.39 +SubSurfaceScatteringPowerSunrise=1.57 +SubSurfaceScatteringPowerSunset=1.56 +SubSurfaceScatteringPowerInteriorDay=2.47 +SubSurfaceScatteringPowerInteriorNight=2.15 IgnoreWeatherSystem=true [LIGHTSPRITE] @@ -488,7 +483,7 @@ CurveInterior=1.0 IntensitySunrise=1.63 IntensitySunset=1.42 IntensityInteriorDay=1.31 -IntensityInteriorNight=1.21 +IntensityInteriorNight=1.19 CurveSunrise=0.94 CurveSunset=0.91 CurveInteriorDay=0.84 @@ -497,47 +492,47 @@ AdditiveBlending=true IgnoreWeatherSystem=true [COLORCORRECTION] -UsePaletteTexture=true +UsePaletteTexture=false Brightness=1.0 GammaCurve=1.0 -UseProceduralCorrection=true +UseProceduralCorrection=false [SHADOW] -ShadowCastersFix=true +ShadowCastersFix=false ShadowQualityFix=true -DetailedShadowQuality=1 +DetailedShadowQuality=-1 UseBilateralShadowFilter=true UseShadowFilter=true -ShadowFilterQuality=1 -ShadowBlurRange=1.65 -ShadowBlurRangeInterior=1.17 +ShadowFilterQuality=0 +ShadowBlurRange=4.36 +ShadowBlurRangeInterior=5.24 IgnoreWeatherSystem=true [DEPTHOFFIELD] -FadeTime=0.85 -Quality=2 +FadeTime=0.4 +Quality=-1 IgnoreWeatherSystem=true [RAYS] SunRaysMultiplier=0.75 -SunRaysMultiplierSunrise=0.59 -SunRaysMultiplierDay=0.24 -SunRaysMultiplierSunset=0.54 -SunRaysMultiplierNight=0.32 -SunRaysMultiplierInteriorDay=0.37 -SunRaysMultiplierInteriorNight=0.44 +SunRaysMultiplierSunrise=0.12 +SunRaysMultiplierDay=0.04 +SunRaysMultiplierSunset=0.14 +SunRaysMultiplierNight=0.05 +SunRaysMultiplierInteriorDay=0.13 +SunRaysMultiplierInteriorNight=0.15 IgnoreWeatherSystem=true [SKYLIGHTING] Quality=2 -FilterQuality=1 +FilterQuality=2 AmbientMinLevel=0.39375 AmbientMinLevelSunrise=0.33 AmbientMinLevelDay=0.64 AmbientMinLevelSunset=0.4 -AmbientMinLevelNight=0.29 +AmbientMinLevelNight=0.26 AmbientMinLevelInteriorDay=0.2 -AmbientMinLevelInteriorNight=0.19 +AmbientMinLevelInteriorNight=0.18 IgnoreWeatherSystem=true [WEATHER] @@ -545,26 +540,26 @@ EnableMultipleWeathers=false [TIMEOFDAY] Enable=true -DawnDuration=2.0 -SunriseTime=6.5 +DawnDuration=1.0 +SunriseTime=8.0 DayTime=12.0 -SunsetTime=18.5 -DuskDuration=2.0 +SunsetTime=18.0 +DuskDuration=1.0 NightTime=0.0 [VEGETATION] -SubSurfaceScatteringMultiplierSunrise=1.24 -SubSurfaceScatteringMultiplierDay=0.88 -SubSurfaceScatteringMultiplierSunset=1.4 -SubSurfaceScatteringMultiplierNight=1.14 -SubSurfaceScatteringMultiplierInteriorDay=0.96 -SubSurfaceScatteringMultiplierInteriorNight=1.08 -SubSurfaceScatteringPowerSunrise=4.09 -SubSurfaceScatteringPowerDay=4.44 -SubSurfaceScatteringPowerSunset=3.41 -SubSurfaceScatteringPowerNight=5.9 -SubSurfaceScatteringPowerInteriorDay=5.31 -SubSurfaceScatteringPowerInteriorNight=6.37 +SubSurfaceScatteringMultiplierSunrise=1.52 +SubSurfaceScatteringMultiplierDay=1.22 +SubSurfaceScatteringMultiplierSunset=1.92 +SubSurfaceScatteringMultiplierNight=1.35 +SubSurfaceScatteringMultiplierInteriorDay=1.17 +SubSurfaceScatteringMultiplierInteriorNight=1.31 +SubSurfaceScatteringPowerSunrise=1.67 +SubSurfaceScatteringPowerDay=2.27 +SubSurfaceScatteringPowerSunset=1.22 +SubSurfaceScatteringPowerNight=2.06 +SubSurfaceScatteringPowerInteriorDay=2.23 +SubSurfaceScatteringPowerInteriorNight=2.09 IgnoreWeatherSystem=true [PARTICLE] @@ -573,7 +568,7 @@ IntensityDay=0.94 IntensitySunset=0.85 IntensityNight=0.72 IntensityInteriorDay=1.14 -IntensityInteriorNight=0.73 +IntensityInteriorNight=0.7 LightingInfluenceSunrise=1.49 LightingInfluenceDay=0.86 LightingInfluenceSunset=1.82 @@ -584,7 +579,7 @@ IgnoreWeatherSystem=true [REFLECTION] Quality=1 -FilterQuality=1 +FilterQuality=0 FilterBluriness=1.0 SizeScale=0.5 SourceTexturesScale=0.5 @@ -592,7 +587,7 @@ Amount=0.64 Power=1.41 GlosinessMin=0.0 GlosinessMax=1.0 -EnableDenoiser=false +EnableDenoiser=true DenoiserType=0 EnableSupersampling=false ExteriorEnable=true @@ -629,32 +624,32 @@ MotionTransparency=0.86 IgnoreWeatherSystem=true [EYES] -SubSurfaceScatteringMultiplierSunrise=1.5 -SubSurfaceScatteringMultiplierDay=1.09 -SubSurfaceScatteringMultiplierSunset=1.66 -SubSurfaceScatteringMultiplierNight=1.38 -SubSurfaceScatteringMultiplierInteriorDay=1.12 -SubSurfaceScatteringMultiplierInteriorNight=1.26 -SubSurfaceScatteringPowerSunrise=2.69 -SubSurfaceScatteringPowerDay=3.83 -SubSurfaceScatteringPowerSunset=2.56 -SubSurfaceScatteringPowerNight=4.4 -SubSurfaceScatteringPowerInteriorDay=4.11 -SubSurfaceScatteringPowerInteriorNight=5.13 +SubSurfaceScatteringMultiplierSunrise=0.56 +SubSurfaceScatteringMultiplierDay=0.29 +SubSurfaceScatteringMultiplierSunset=0.64 +SubSurfaceScatteringMultiplierNight=0.36 +SubSurfaceScatteringMultiplierInteriorDay=0.36 +SubSurfaceScatteringMultiplierInteriorNight=0.35 +SubSurfaceScatteringPowerSunrise=0.62 +SubSurfaceScatteringPowerDay=0.91 +SubSurfaceScatteringPowerSunset=0.64 +SubSurfaceScatteringPowerNight=0.52 +SubSurfaceScatteringPowerInteriorDay=0.79 +SubSurfaceScatteringPowerInteriorNight=0.55 IgnoreWeatherSystem=true [SUBSURFACESCATTERING] Quality=1 -Radius=0.88 -Amount=0.81 -EpidermalAmount=1.52 -SubdermalAmount=2.39 -EpidermalDiffuseSaturation=-0.45 -SubdermalDiffuseSaturation=0.23 -EpidermalMix=0.6 -SubdermalMix=0.55 -SubdermalTranslucency=0.92 -SubdermalPhase=0.75 +Radius=1.0 +Amount=0.6 +EpidermalAmount=1.64 +SubdermalAmount=5.28 +EpidermalDiffuseSaturation=-0.77 +SubdermalDiffuseSaturation=0.45 +EpidermalMix=0.87 +SubdermalMix=0.19 +SubdermalTranslucency=0.95 +SubdermalPhase=0.95 IgnoreWeatherSystem=true [LENS] @@ -687,31 +682,31 @@ IgnoreWeatherSystem=true [WATER] EnableDispersion=true EnableCaustics=true -ReflectionAmount=0.58 -FrennelMultiplier=3.18 -FrennelMin=0.15 +ReflectionAmount=0.86 +FrennelMultiplier=3.5 +FrennelMin=0.0 FrennelMax=1.0 -DispersionAmount=0.91 -CausticsAmount=1.47 +DispersionAmount=0.94 +CausticsAmount=0.26 EnableParallax=true EnableShadow=true EnableSelfReflection=true EnableLighting=true EnableDisplacement=true DisplacementQuality=1 -SunSpecularMultiplier=1.6 -SunScatteringMultiplier=3.04 -WavesAmplitudeSunrise=1.0 -WavesAmplitudeDay=1.0 -WavesAmplitudeSunset=1.0 -WavesAmplitudeNight=1.0 -WavesAmplitudeInteriorDay=1.0 -WavesAmplitudeInteriorNight=1.0 +SunSpecularMultiplier=0.95 +SunScatteringMultiplier=2.03 +WavesAmplitudeSunrise=0.64 +WavesAmplitudeDay=0.7 +WavesAmplitudeSunset=0.67 +WavesAmplitudeNight=0.51 +WavesAmplitudeInteriorDay=0.55 +WavesAmplitudeInteriorNight=0.42 ShadowQuality=1 EnableShadowNoise=true -SunLightingMultiplier=0.82 -WetMultiplier=0.42 -Muddiness=0.31 +SunLightingMultiplier=0.83 +WetMultiplier=0.86 +Muddiness=0.25 EnablePreCache=true EnableVolumetricShadow=true DisplacementFilterQuality=1 @@ -725,57 +720,57 @@ EnableBlurring=true EnableReflection=true EnableShadow=true ShadowQuality=1 -DispersionAmount=0.96 -ReflectionAmount=0.97 -TransparencyFade=3.56 -TransparencyCurve=1.03 +DispersionAmount=0.93 +ReflectionAmount=0.64 +TransparencyFade=1.88 +TransparencyCurve=1.32 DeepnessFade=3.88 DeepnessDarkening=0.93 -TintAmount=3.27 -TintFade=4.7 +TintAmount=3.31 +TintFade=4.66 SunScatteringMultiplier=1.68 IgnoreWeatherSystem=true [CLOUDSHADOWS] EnableAtNight=true -OpacitySunrise=0.73 +OpacitySunrise=0.85 OpacityDay=0.57 -OpacitySunset=0.76 -OpacityNight=0.91 +OpacitySunset=0.86 +OpacityNight=0.96 OpacityInteriorDay=0.62 OpacityInteriorNight=0.98 IgnoreWeatherSystem=true [VOLUMETRICRAYS] Quality=1 -IntensitySunrise=0.67 -IntensityDay=0.42 -IntensitySunset=0.77 -IntensityNight=0.41 -IntensityInteriorDay=0.58 -IntensityInteriorNight=0.5 -DensitySunrise=1.76 -DensityDay=0.94 -DensitySunset=1.6 -DensityNight=0.62 +IntensitySunrise=0.36 +IntensityDay=0.19 +IntensitySunset=0.45 +IntensityNight=0.1 +IntensityInteriorDay=0.53 +IntensityInteriorNight=0.2 +DensitySunrise=4.35 +DensityDay=3.66 +DensitySunset=4.72 +DensityNight=3.63 DensityInteriorDay=1.44 DensityInteriorNight=0.51 -SkyColorAmountSunrise=0.89 -SkyColorAmountDay=0.69 -SkyColorAmountSunset=0.87 -SkyColorAmountNight=0.72 -SkyColorAmountInteriorDay=0.63 -SkyColorAmountInteriorNight=0.78 +SkyColorAmountSunrise=0.53 +SkyColorAmountDay=0.32 +SkyColorAmountSunset=0.67 +SkyColorAmountNight=0.16 +SkyColorAmountInteriorDay=0.4 +SkyColorAmountInteriorNight=0.3 IgnoreWeatherSystem=true [PROCEDURALSUN] -Size=0.68 -EdgeSoftness=0.51 -GlowIntensitySunrise=0.88 -GlowIntensityDay=0.57 -GlowIntensitySunset=0.89 -GlowIntensityNight=0.16 -GlowIntensityInteriorDay=0.95 +Size=0.84 +EdgeSoftness=0.62 +GlowIntensitySunrise=1.38 +GlowIntensityDay=1.14 +GlowIntensitySunset=0.86 +GlowIntensityNight=0.3 +GlowIntensityInteriorDay=5.27 GlowIntensityInteriorNight=0.09 -GlowCurveSunrise=9.68 -GlowCurveDay=7.46 +GlowCurveSunrise=9.67 +GlowCurveDay=7.01 GlowCurveSunset=8.29 GlowCurveNight=1.85 GlowCurveInteriorDay=9.31 diff --git a/enbseries/effect.txt.ini b/enbseries/effect.txt.ini deleted file mode 100644 index 4920f77..0000000 --- a/enbseries/effect.txt.ini +++ /dev/null @@ -1,165 +0,0 @@ -[EFFECT.TXT] -TECHNIQUE=0 -EnableFXAA=false -FXAASpanMax=2.0 -FXAAReduceMul=32.0 -FXAAReduceMin=128.0 -BlurEnable=false -BlurSampleNight=1.0 -BlurSampleDay=0.86 -BlurSampleInteriorNight=0.93 -BlurSampleInteriorDay=0.75 -BlurLevel=1 -BlurPowerNight=14.95 -BlurPowerDay=11.57 -BlurPowerInteriorNight=16.059999 -BlurPowerInteriorDay=12.22 -BlurCurveNight=1.45 -BlurCurveDay=1.53 -BlurCurveInteriorNight=1.32 -BlurCurveInteriorDay=1.49 -BlurRadiusNight=0.68 -BlurRadiusDay=0.62 -BlurRadiusInteriorNight=0.74 -BlurRadiusInteriorDay=0.7 -DarkEnable=true -DarkRadiusNight=0.35 -DarkRadiusDay=0.25 -DarkRadiusInteriorNight=0.45 -DarkRadiusInteriorDay=0.3 -DarkCurveNight=2.16 -DarkCurveDay=2.45 -DarkCurveInteriorNight=1.95 -DarkCurveInteriorDay=2.34 -DarkBumpNight=0.79 -DarkBumpDay=0.62 -DarkBumpInteriorNight=0.9 -DarkBumpInteriorDay=0.82 -EnableCompensate=true -CompensateFactorNight=0.65 -CompensateFactorDay=0.72 -CompensateFactorInteriorNight=0.71 -CompensateFactorInteriorDay=0.78 -CompensatePowerNight=1.14 -CompensatePowerDay=1.18 -CompensatePowerInteriorNight=1.16 -CompensatePowerInteriorDay=1.23 -CompensateSaturationNight=0.86 -CompensateSaturationDay=0.41 -CompensateSaturationInteriorNight=0.82 -CompensateSaturationInteriorDay=0.49 -CompensateBumpNight=0.0 -CompensateBumpDay=0.0 -CompensateBumpInteriorNight=0.0 -CompensateBumpInteriorDay=0.0 -EnableGrading=true -GradingAddRNight=0.0 -GradingAddGNight=0.0 -GradingAddBNight=0.0 -GradingAddRDay=0.0 -GradingAddGDay=0.0 -GradingAddBDay=0.0 -GradingAddRInteriorNight=0.0 -GradingAddGInteriorNight=0.0 -GradingAddBInteriorNight=0.0 -GradingAddRInteriorDay=0.0 -GradingAddGInteriorDay=0.0 -GradingAddBInteriorDay=0.0 -GradingMulRNight=3.01 -GradingMulGNight=3.12 -GradingMulBNight=3.24 -GradingMulRDay=3.42 -GradingMulGDay=3.34 -GradingMulBDay=3.24 -GradingMulRInteriorNight=3.57 -GradingMulGInteriorNight=3.43 -GradingMulBInteriorNight=3.27 -GradingMulRInteriorDay=3.67 -GradingMulGInteriorDay=3.56 -GradingMulBInteriorDay=3.48 -GradingPowRNight=1.03 -GradingPowGNight=1.01 -GradingPowBNight=0.95 -GradingPowRDay=1.23 -GradingPowGDay=1.2 -GradingPowBDay=1.14 -GradingPowRInteriorNight=1.07 -GradingPowGInteriorNight=1.02 -GradingPowBInteriorNight=0.97 -GradingPowRInteriorDay=1.21 -GradingPowGInteriorDay=1.16 -GradingPowBInteriorDay=1.11 -GradingColRNight=-0.21 -GradingColGNight=-0.28 -GradingColBNight=-1.41 -GradingColRDay=-0.8 -GradingColGDay=-0.2 -GradingColBDay=-0.62 -GradingColRInteriorNight=-0.52 -GradingColGInteriorNight=-0.3 -GradingColBInteriorNight=-1.37 -GradingColRInteriorDay=-0.52 -GradingColGInteriorDay=-0.36 -GradingColBInteriorDay=-0.72 -GradingColFactorNight=-0.27 -GradingColFactorDay=-0.16 -GradingColFactorInteriorNight=-0.24 -GradingColFactorInteriorDay=-0.12 -EnableSoftGrain=false -SoftGrainSpeedNight=0.02 -SoftGrainSpeedDay=0.07 -SoftGrainSpeedInteriorNight=0.01 -SoftGrainSpeedInteriorDay=0.03 -SoftGrainIntensityNight=0.03 -SoftGrainIntensityDay=0.01 -SoftGrainIntensityInteriorNight=0.03 -SoftGrainIntensityInteriorDay=0.01 -SoftGrainSaturationNight=-0.22 -SoftGrainSaturationDay=-0.18 -SoftGrainSaturationInteriorNight=-0.24 -SoftGrainSaturationInteriorDay=-0.31 -SoftGrainTwopass=false -SoftGrainBlendfunc=1 -SoftGrainDeviation=0.05 -SoftGrainMagnification1=13.69 -SoftGrainMagnification2=19.26 -SoftGrainMagnification3=17.889999 -SoftGrainMagnification11=2.05 -SoftGrainMagnification12=3.11 -SoftGrainMagnification13=2.22 -SoftGrainMagnification21=4.25 -SoftGrainMagnification22=0.42 -SoftGrainMagnification23=6.29 -SoftGrainPowerNight=2.16 -SoftGrainPowerDay=5.22 -SoftGrainPowerInteriorNight=2.59 -SoftGrainPowerInteriorDay=4.7 -EnableBlockGFX=false -BlockGFXResolutionW=1.0 -BlockGFXResolutionH=1.0 -BlockGFXpalette=0 -BlockGFXcgamode=0 -BlockGFXegamode=1 -BlockGFXDither=5 -BlockGFXPrepassGamma=0.25 -BlockGFXDitherBump=-0.5 -BlockGFXDitherMultiplier=0.5 -BlockGFXPrepassSaturation=-0.0 -EnableDirt=false -DirtCoordFactor=0.25 -DirtLuminanceFactor=0.0 -DirtCoordMagnification=2.0 -DirtLuminanceMagnification=1.0 -EnableBox=true -BoxHorizontal=1.5 -BoxVertical=0.85 -BoxSoften=0.01 -BoxAlpha=5.999999 -EnableCurvature=false -CurveChromaticAberration=0.06 -CurveZoom=50.299999 -CurveLens=0.0 -CurveLensCubic=0.0 -EnableSharpen=true -SharpenSample=0.2 -SharpenBlend=1.0 diff --git a/enbbloom.fx b/enbseries/enbbloom.fx similarity index 87% rename from enbbloom.fx rename to enbseries/enbbloom.fx index 138565d..c27d6b5 100644 --- a/enbbloom.fx +++ b/enbseries/enbbloom.fx @@ -2,7 +2,7 @@ enbbloom.fx : MariENB bloom filter. (C)2013-2014 Marisa Kirisame, UnSX Team. Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. + Released under the WTFPL. */ /* do not touch this! */ #define E_SHADER_3_0 diff --git a/enbseries/enbbloom.fx.ini b/enbseries/enbbloom.fx.ini index 1d41937..5c7038e 100644 --- a/enbseries/enbbloom.fx.ini +++ b/enbseries/enbbloom.fx.ini @@ -1,11 +1,18 @@ [ENBBLOOM.FX] TECHNIQUE=0 -PreEnable=true -PreSample=1.0 -PreLevel=1 -PostSample=1.000001 -PostLevel=1 -BloomIntensity=0.4 -BloomBump=-0.1 -BloomPower=1.5 -BloomSaturation=0.75 +BloomIntensityNight=0.99 +BloomIntensityDay=0.33 +BloomIntensityInteriorNight=0.97 +BloomIntensityInteriorDay=0.94 +BloomBumpNight=-0.07 +BloomBumpDay=-0.19 +BloomBumpInteriorNight=-0.1 +BloomBumpInteriorDay=-0.13 +BloomPowerNight=1.09 +BloomPowerDay=1.4 +BloomPowerInteriorNight=1.13 +BloomPowerInteriorDay=1.19 +BloomSaturationNight=0.86 +BloomSaturationDay=0.78 +BloomSaturationInteriorNight=0.91 +BloomSaturationInteriorDay=0.85 diff --git a/enbeffect.fx b/enbseries/enbeffect.fx similarity index 87% rename from enbeffect.fx rename to enbseries/enbeffect.fx index 67afd98..7bc0841 100644 --- a/enbeffect.fx +++ b/enbseries/enbeffect.fx @@ -2,7 +2,7 @@ enbeffect.fx : MariENB base shader. (C)2013-2014 Marisa Kirisame, UnSX Team. Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. + Released under the WTFPL. */ /* do not touch this! */ #define E_SHADER_3_0 diff --git a/enbseries/enbeffect.fx.ini b/enbseries/enbeffect.fx.ini index 41377b8..6265bfe 100644 --- a/enbseries/enbeffect.fx.ini +++ b/enbseries/enbeffect.fx.ini @@ -1,28 +1,78 @@ [ENBEFFECT.FX] TECHNIQUE=0 -EnableAdaptation=true -AdaptationMinNight=0.89 -AdaptationMinDay=0.09 -AdaptationMinInteriorNight=1.12 -AdaptationMinInteriorDay=0.14 -AdaptationMaxNight=0.5 -AdaptationMaxDay=0.94 -AdaptationMaxInteriorNight=0.02 -AdaptationMaxInteriorDay=1.08 -EnableTonemapping=true -TonemappingNight=1.13 -TonemappingDay=1.64 -TonemappingInteriorNight=1.25 -TonemappingInteriorDay=1.37 -TonemappingOversaturationNight=26.289999 -TonemappingOversaturationDay=10.95 -TonemappingOversaturationInteriorNight=22.74 -TonemappingOversaturationInteriorDay=15.83 -EnablePalette=true -PaletteBlendNight=0.19 -PaletteBlendDay=0.33 -PaletteBlendInteriorNight=0.25 -PaletteBlendInteriorDay=0.45 -EnableBloomSoften=true -BloomSoftenLevel=1 -BloomSoftenRadius=1.0 +CompensateFactorNight=0.22 +CompensateFactorDay=0.4 +CompensateFactorInteriorNight=0.32 +CompensateFactorInteriorDay=0.45 +CompensatePowerNight=1.16 +CompensatePowerDay=1.11 +CompensatePowerInteriorNight=1.1 +CompensatePowerInteriorDay=1.05 +CompensateSaturationNight=0.86 +CompensateSaturationDay=0.87 +CompensateSaturationInteriorNight=0.97 +CompensateSaturationInteriorDay=0.99 +GradingMulRNight=1.32 +GradingMulGNight=1.25 +GradingMulBNight=1.45 +GradingMulRDay=1.7 +GradingMulGDay=1.45 +GradingMulBDay=1.29 +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.09 +GradingPowGDay=1.08 +GradingPowBDay=1.05 +GradingPowRInteriorNight=1.08 +GradingPowGInteriorNight=1.11 +GradingPowBInteriorNight=1.06 +GradingPowRInteriorDay=1.03 +GradingPowGInteriorDay=1.06 +GradingPowBInteriorDay=1.0 +GradingColRNight=-0.59 +GradingColGNight=-0.26 +GradingColBNight=-0.73 +GradingColRDay=-0.62 +GradingColGDay=-0.1 +GradingColBDay=-0.81 +GradingColRInteriorNight=-0.19 +GradingColGInteriorNight=-0.18 +GradingColBInteriorNight=-0.62 +GradingColRInteriorDay=-0.22 +GradingColGInteriorDay=-0.21 +GradingColBInteriorDay=-0.33 +GradingColFactorNight=-0.2 +GradingColFactorDay=-0.14 +GradingColFactorInteriorNight=-0.08 +GradingColFactorInteriorDay=-0.12 +DarkRadiusNight=0.0 +DarkRadiusDay=0.0 +DarkRadiusInteriorNight=0.0 +DarkRadiusInteriorDay=0.0 +DarkCurveNight=1.7 +DarkCurveDay=2.3 +DarkCurveInteriorNight=1.35 +DarkCurveInteriorDay=1.67 +DarkBumpNight=0.74 +DarkBumpDay=0.33 +DarkBumpInteriorNight=0.82 +DarkBumpInteriorDay=0.61 +BoxVertical=1.0 +BoxSoften=0.0 +BoxAlpha=1.0 +AdaptationMinNight=0.11 +AdaptationMinDay=0.07 +AdaptationMinInteriorNight=0.07 +AdaptationMinInteriorDay=0.06 +AdaptationMaxNight=1.02 +AdaptationMaxDay=1.24 +AdaptationMaxInteriorNight=0.9 +AdaptationMaxInteriorDay=0.89 +BloomSoften=false diff --git a/enbeffectprepass.fx b/enbseries/enbeffectprepass.fx similarity index 87% rename from enbeffectprepass.fx rename to enbseries/enbeffectprepass.fx index 0fff001..2a094d7 100644 --- a/enbeffectprepass.fx +++ b/enbseries/enbeffectprepass.fx @@ -2,7 +2,7 @@ enbeffectprepass.fx : MariENB pre-pass filters. (C)2013-2014 Marisa Kirisame, UnSX Team. Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. + Released under the WTFPL. */ /* do not touch this! */ #define E_SHADER_3_0 @@ -10,4 +10,3 @@ #include "menbprepasssettings.fx" #include "menbprepassinternals.fx" #include "menbprepassfilters.fx" - diff --git a/enbseries/enbeffectprepass.fx.ini b/enbseries/enbeffectprepass.fx.ini index a7f7c6d..d0b4cfc 100644 --- a/enbseries/enbeffectprepass.fx.ini +++ b/enbseries/enbeffectprepass.fx.ini @@ -1,50 +1,58 @@ [ENBEFFECTPREPASS.FX] TECHNIQUE=0 -CelEnable=true -CelMode=0 -CelRadius=0.5 -CelPower=0.25 -CelBump=0.0 -CelBlend=2.5 -SSAOEnable=true -SSAODebug=0 -SSAORadius=16.0 -SSAOBump=0.0 -SSAOPower=4.0 -SSAOBlend=1.25 -SSAONoise=1.0 -DoFEnable=true -DoFRadius=1.5 -DoFBump=0.0 -DoFPow=3.0 -DoFBlend=1.0 -DoFCut=0.0 -DoFDebug=0 -CelMult=2.0 -SSAOMult=2.0 -DoFMult=12.000001 -DoFLevel=1 +DoFPowNight=2.02 +DoFPowDay=2.2 +DoFPowInteriorNight=3.46 +DoFPowInteriorDay=3.69 +DoFDebug=false +DoFMultNight=319.23999 +DoFMultDay=295.160004 +DoFMultInteriorNight=281.079987 +DoFMultInteriorDay=246.229996 FocusCircleEnable=true -FocusCircleSlices=3 -FocusCircleRadius=10.0 -FocusCircleCircles=1 -FocusDotDebugRadius=0.01 -FocusCircleStep=0.25 -FocusCircleOffset=0.0 -FocusCircleMix=0.25 -SSAONormalOffset1=0.0 -SSAONormalOffset2=0.01 -SSAONormalOffset3=0.01 -SSAONormalOffset4=0.0 -SSAONoiseSize=64.0 -SSAOBlurEnable=true -SSAOBlurRadius=1.0 -SSAOBlurLevel=2 -SSAOTrim=1.0 -SSAOFadeBump=0.0 -SSAOFadeMult=0.5 -SSAOFadePow=1.0 -CelTrim=1.01 -CelFade=2.5 -SSAOFade=0.6 -DoFTrim=1.01 +FocusCircleRadiusNight=20.0 +FocusCircleRadiusDay=25.0 +FocusCircleRadiusInteriorNight=15.0 +FocusCircleRadiusInteriorDay=20.0 +FocusCircleMixNight=0.4 +FocusCircleMixDay=0.5 +FocusCircleMixInteriorNight=0.35 +FocusCircleMixInteriorDay=0.45 +FocusMaxNight=990.350037 +FocusMaxDay=994.340027 +FocusMaxInteriorNight=984.919983 +FocusMaxInteriorDay=989.539978 +DoFFixedFocusedMultNight=1.0 +DoFFixedFocusedMultDay=1.0 +DoFFixedFocusedMultInteriorNight=1.0 +DoFFixedFocusedMultInteriorDay=1.0 +DoFFixedFocusedPowNight=1.0 +DoFFixedFocusedPowDay=1.0 +DoFFixedFocusedPowInteriorNight=1.0 +DoFFixedFocusedPowInteriorDay=1.0 +DoFFixedFocusedBlendNight=0.0 +DoFFixedFocusedBlendDay=0.0 +DoFFixedFocusedBlendInteriorNight=0.0 +DoFFixedFocusedBlendInteriorDay=0.0 +DoFFixedUnfocusedMultNight=1.6 +DoFFixedUnfocusedMultDay=1.5 +DoFFixedUnfocusedMultInteriorNight=1.3 +DoFFixedUnfocusedMultInteriorDay=1.18 +DoFFixedUnfocusedPowNight=956.559998 +DoFFixedUnfocusedPowDay=983.109985 +DoFFixedUnfocusedPowInteriorNight=962.349976 +DoFFixedUnfocusedPowInteriorDay=979.340027 +DoFFixedUnfocusedBlendNight=1.0 +DoFFixedUnfocusedBlendDay=1.0 +DoFFixedUnfocusedBlendInteriorNight=1.0 +DoFFixedUnfocusedBlendInteriorDay=1.0 +DoFTwoPass=false +EdgeDisable=true +EdgeView=false +EdgeFadePower=1.6 +EdgeFadeMultiplier=16.0 +EdgePower=1.5 +EdgeMultiplier=32.0 +DoFDisable=false +DoFSmoothing=false +DoFCutoff=false diff --git a/enblens.fx b/enbseries/enblens.fx similarity index 52% rename from enblens.fx rename to enbseries/enblens.fx index 47c6fca..4cf81d5 100644 --- a/enblens.fx +++ b/enbseries/enblens.fx @@ -2,9 +2,27 @@ enblens.fx : MariENB Lens filters. (C)2013-2014 Marisa Kirisame, UnSX Team. Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. + Released under the WTFPL. +*/ +/* + This shader left unimplemented. Development of the filter is a massive pain + in the ass thanks to the incompetence of a certain individual named Boris + Vorontsov and the major breakage of his ENB project. + + Lots of blind debugging are necessary to get the goddamn thing to compile, + and from the looks of it the filter, which works flawlessly on MariEFX, is + completely unportable to this massive bag of dicks. After DAYS of + selectively commenting out code, the only way it can compile is if the + shader does NOTHING. For ever minor change to the code, five minutes of + waiting are needed so the entire thing recompiles! FIVE MINUTES! Just how + can you fuck up that badly? By comparison eFX takes mere seconds to reload + everything on the considerably more complex MariEFX project, but this... I + can't imagine what awful programming resulted in such a terrible bottleneck. + + tl;dr: Fuck you, Boris. + + -- Marisa */ -/* Effects have yet to be implemented. Sorry for the inconvenience. */ struct VS_OUTPUT_POST { float4 vpos : POSITION; diff --git a/enbseries/enbpalette.bmp b/enbseries/enbpalette.bmp new file mode 100644 index 0000000..03a8f6d Binary files /dev/null and b/enbseries/enbpalette.bmp differ diff --git a/enbraindrops.tga b/enbseries/enbraindrops.tga similarity index 100% rename from enbraindrops.tga rename to enbseries/enbraindrops.tga diff --git a/enbsunsprite.fx b/enbseries/enbsunsprite.fx similarity index 86% rename from enbsunsprite.fx rename to enbseries/enbsunsprite.fx index da13c6a..920de0f 100644 --- a/enbsunsprite.fx +++ b/enbseries/enbsunsprite.fx @@ -2,9 +2,9 @@ enbsunsprite.fx : MariENB sun sprite filters. (C)2013-2014 Marisa Kirisame, UnSX Team. Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. + Released under the WTFPL. */ -/* Effects have yet to be implemented. Sorry for the inconvenience. */ +/* This shader intentionally does nothing */ struct VS_OUTPUT_POST { float4 vpos : POSITION; diff --git a/enbseries/menbbloomfilters.fx b/enbseries/menbbloomfilters.fx new file mode 100644 index 0000000..9092592 --- /dev/null +++ b/enbseries/menbbloomfilters.fx @@ -0,0 +1,153 @@ +/* + menbbloomfilters.fx : MariENB bloom shader routines. + (C)2013-2014 Marisa Kirisame, UnSX Team. + Part of MariENB, the personal ENB of Marisa. + Released under the WTFPL. +*/ +VS_OUTPUT_POST VS_Bloom(VS_INPUT_POST IN) +{ + VS_OUTPUT_POST OUT; + float4 pos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1); + OUT.vpos = pos; + OUT.txcoord0.xy = IN.txcoord0.xy+TempParameters.xy; + return OUT; +} +/* pre-pass bloom texture preparation */ +float4 PS_BloomPrePass(VS_OUTPUT_POST In) : COLOR +{ + float tod = ENightDayFactor; + float ind = EInteriorFactor; + float bloombump = lerp(lerp(bloombump_n,bloombump_d,tod), + lerp(bloombump_in,bloombump_id,tod),ind); + float bloompower = lerp(lerp(bloompower_n,bloompower_d,tod), + lerp(bloompower_in,bloompower_id,tod),ind); + float bloomsaturation = lerp(lerp(bloomsaturation_n,bloomsaturation_d, + tod),lerp(bloomsaturation_in,bloomsaturation_id,tod),ind); + float bloomintensity = lerp(lerp(bloomintensity_n,bloomintensity_d, + tod),lerp(bloomintensity_in,bloomintensity_id,tod),ind); + float2 coord = In.txcoord0.xy; + float4 res = tex2D(SamplerBloom1,coord); + res = pow(saturate(res+bloombump),bloompower); + float ress = (res.r+res.g+res.b)/3.0; + res = res*bloomsaturation+ress*(1.0-bloomsaturation); + res.rgb *= bloomintensity; + return res; +} +/* + multipass (cannot specify how many bloom textures to use, so considerable + performance rape. good job, boris) +*/ +float4 PS_BloomTexture(VS_OUTPUT_POST In) : COLOR +{ + float2 coord = In.txcoord0.xy; + float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); + float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*pow(4,TempParameters.w); + /* loop unrolled for speeding up compilation (this is retarded) */ + float4 res; + res = gauss7[3][3]*tex2D(SamplerBloom1,coord+float2(-3,-3)*bof); + res += gauss7[2][3]*tex2D(SamplerBloom1,coord+float2(-2,-3)*bof); + res += gauss7[1][3]*tex2D(SamplerBloom1,coord+float2(-1,-3)*bof); + res += gauss7[0][3]*tex2D(SamplerBloom1,coord+float2(0,-3)*bof); + res += gauss7[1][3]*tex2D(SamplerBloom1,coord+float2(1,-3)*bof); + res += gauss7[2][3]*tex2D(SamplerBloom1,coord+float2(2,-3)*bof); + res += gauss7[3][3]*tex2D(SamplerBloom1,coord+float2(3,-3)*bof); + res += gauss7[3][2]*tex2D(SamplerBloom1,coord+float2(-3,-2)*bof); + res += gauss7[2][2]*tex2D(SamplerBloom1,coord+float2(-2,-2)*bof); + res += gauss7[1][2]*tex2D(SamplerBloom1,coord+float2(-1,-2)*bof); + res += gauss7[0][2]*tex2D(SamplerBloom1,coord+float2(0,-2)*bof); + res += gauss7[1][2]*tex2D(SamplerBloom1,coord+float2(1,-2)*bof); + res += gauss7[2][2]*tex2D(SamplerBloom1,coord+float2(2,-2)*bof); + res += gauss7[3][2]*tex2D(SamplerBloom1,coord+float2(3,-2)*bof); + res += gauss7[3][1]*tex2D(SamplerBloom1,coord+float2(-3,-1)*bof); + res += gauss7[2][1]*tex2D(SamplerBloom1,coord+float2(-2,-1)*bof); + res += gauss7[1][1]*tex2D(SamplerBloom1,coord+float2(-1,-1)*bof); + res += gauss7[0][1]*tex2D(SamplerBloom1,coord+float2(0,-1)*bof); + res += gauss7[1][1]*tex2D(SamplerBloom1,coord+float2(1,-1)*bof); + res += gauss7[2][1]*tex2D(SamplerBloom1,coord+float2(2,-1)*bof); + res += gauss7[3][1]*tex2D(SamplerBloom1,coord+float2(3,-1)*bof); + res += gauss7[3][0]*tex2D(SamplerBloom1,coord+float2(-3,0)*bof); + res += gauss7[2][0]*tex2D(SamplerBloom1,coord+float2(-2,0)*bof); + res += gauss7[1][0]*tex2D(SamplerBloom1,coord+float2(-1,0)*bof); + res += gauss7[0][0]*tex2D(SamplerBloom1,coord+float2(0,0)*bof); + res += gauss7[1][0]*tex2D(SamplerBloom1,coord+float2(1,0)*bof); + res += gauss7[2][0]*tex2D(SamplerBloom1,coord+float2(2,0)*bof); + res += gauss7[3][0]*tex2D(SamplerBloom1,coord+float2(3,0)*bof); + res += gauss7[3][1]*tex2D(SamplerBloom1,coord+float2(-3,1)*bof); + res += gauss7[2][1]*tex2D(SamplerBloom1,coord+float2(-2,1)*bof); + res += gauss7[1][1]*tex2D(SamplerBloom1,coord+float2(-1,1)*bof); + res += gauss7[0][1]*tex2D(SamplerBloom1,coord+float2(0,1)*bof); + res += gauss7[1][1]*tex2D(SamplerBloom1,coord+float2(1,1)*bof); + res += gauss7[2][1]*tex2D(SamplerBloom1,coord+float2(2,1)*bof); + res += gauss7[3][1]*tex2D(SamplerBloom1,coord+float2(3,1)*bof); + res += gauss7[3][2]*tex2D(SamplerBloom1,coord+float2(-3,2)*bof); + res += gauss7[2][2]*tex2D(SamplerBloom1,coord+float2(-2,2)*bof); + res += gauss7[1][2]*tex2D(SamplerBloom1,coord+float2(-1,2)*bof); + res += gauss7[0][2]*tex2D(SamplerBloom1,coord+float2(0,2)*bof); + res += gauss7[1][2]*tex2D(SamplerBloom1,coord+float2(1,2)*bof); + res += gauss7[2][2]*tex2D(SamplerBloom1,coord+float2(2,2)*bof); + res += gauss7[3][2]*tex2D(SamplerBloom1,coord+float2(3,2)*bof); + res += gauss7[3][3]*tex2D(SamplerBloom1,coord+float2(-3,3)*bof); + res += gauss7[2][3]*tex2D(SamplerBloom1,coord+float2(-2,3)*bof); + res += gauss7[1][3]*tex2D(SamplerBloom1,coord+float2(-1,3)*bof); + res += gauss7[0][3]*tex2D(SamplerBloom1,coord+float2(0,3)*bof); + res += gauss7[1][3]*tex2D(SamplerBloom1,coord+float2(1,3)*bof); + res += gauss7[2][3]*tex2D(SamplerBloom1,coord+float2(2,3)*bof); + res += gauss7[3][3]*tex2D(SamplerBloom1,coord+float2(3,3)*bof); + return res; +} +/* end pass */ +float4 PS_BloomPostPass(VS_OUTPUT_POST In) : COLOR +{ + float2 coord = In.txcoord0.xy; + float4 res = (tex2D(SamplerBloom1,coord)+tex2D(SamplerBloom2,coord) + +tex2D(SamplerBloom3,coord)+tex2D(SamplerBloom4,coord) + +tex2D(SamplerBloom5,coord)+tex2D(SamplerBloom6,coord) + +tex2D(SamplerBloom7,coord)+tex2D(SamplerBloom8,coord))*0.125; + return res; +} +/* techniques */ +technique BloomPrePass +{ + pass p0 + { + VertexShader = compile vs_3_0 VS_Bloom(); + PixelShader = compile ps_3_0 PS_BloomPrePass(); + ColorWriteEnable = ALPHA|RED|GREEN|BLUE; + CullMode = NONE; + AlphaBlendEnable = FALSE; + AlphaTestEnable = FALSE; + SEPARATEALPHABLENDENABLE = FALSE; + FogEnable = FALSE; + SRGBWRITEENABLE = FALSE; + } +} +technique BloomTexture1 +{ + pass p0 + { + VertexShader = compile vs_3_0 VS_Bloom(); + PixelShader = compile ps_3_0 PS_BloomTexture(); + ColorWriteEnable = ALPHA|RED|GREEN|BLUE; + CullMode = NONE; + AlphaBlendEnable = FALSE; + AlphaTestEnable = FALSE; + SEPARATEALPHABLENDENABLE = FALSE; + FogEnable = FALSE; + SRGBWRITEENABLE = FALSE; + } +} +technique BloomPostPass +{ + pass p0 + { + VertexShader = compile vs_3_0 VS_Bloom(); + PixelShader = compile ps_3_0 PS_BloomPostPass(); + ColorWriteEnable = ALPHA|RED|GREEN|BLUE; + CullMode = NONE; + AlphaBlendEnable = FALSE; + AlphaTestEnable = FALSE; + SEPARATEALPHABLENDENABLE = FALSE; + FogEnable = FALSE; + SRGBWRITEENABLE = FALSE; + } +} diff --git a/menbbloominternals.fx b/enbseries/menbbloominternals.fx similarity index 81% rename from menbbloominternals.fx rename to enbseries/menbbloominternals.fx index a86257a..b9fe351 100644 --- a/menbbloominternals.fx +++ b/enbseries/menbbloominternals.fx @@ -2,20 +2,9 @@ menbbloominternals.fx : MariENB bloom internal variables. (C)2013-2014 Marisa Kirisame, UnSX Team. Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. + Released under the WTFPL. */ /* gaussian blur matrices */ -static const float2x2 gauss3 = -{ - 0.16,0.12, - 0.12,0.09 -}; -static const float3x3 gauss5 = -{ - 0.0865051903114,0.0692041522491,0.0346020761246, - 0.0692041522491,0.0553633217993,0.0276816609, - 0.0346020761246,0.0276816609,0.01384083045 -}; static const float4x4 gauss7 = { 0.0632507440209,0.0527089533508,0.0301194019147,0.011294775718, @@ -23,18 +12,12 @@ static const float4x4 gauss7 = 0.0301194019147,0.0250995015956,0.01434257234,0.00537846462763, 0.011294775718,0.00941231309835,0.00537846462763,0.00201692423536 }; -/* standard stuff (not all used) */ -float4 tempF1; -float4 tempF2; -float4 tempF3; +/* standard stuff */ float4 ScreenSize; -float4 Timer; float4 TempParameters; -float4 LenzParameters; -float4 BloomParameters; float ENightDayFactor; float EInteriorFactor; -/* samplers and textures (some left unused) */ +/* samplers and textures */ texture2D texBloom1; texture2D texBloom2; texture2D texBloom3; diff --git a/enbseries/menbbloomsettings.fx b/enbseries/menbbloomsettings.fx new file mode 100644 index 0000000..cecc617 --- /dev/null +++ b/enbseries/menbbloomsettings.fx @@ -0,0 +1,90 @@ +/* + menbbloomsettings.fx : MariENB bloom user-tweakable variables. + (C)2013-2014 Marisa Kirisame, UnSX Team. + Part of MariENB, the personal ENB of Marisa. + Released under the WTFPL. +*/ +/* bloom intensity */ +float bloomintensity_n +< + string UIName = "BloomIntensityNight"; + string UIWidget = "Spinner"; +> = {0.25}; +float bloomintensity_d +< + string UIName = "BloomIntensityDay"; + string UIWidget = "Spinner"; +> = {0.25}; +float bloomintensity_in +< + string UIName = "BloomIntensityInteriorNight"; + string UIWidget = "Spinner"; +> = {0.25}; +float bloomintensity_id +< + string UIName = "BloomIntensityInteriorDay"; + string UIWidget = "Spinner"; +> = {0.25}; +/* bloom power */ +float bloompower_n +< + string UIName = "BloomPowerNight"; + string UIWidget = "Spinner"; +> = {1.4}; +float bloompower_d +< + string UIName = "BloomPowerDay"; + string UIWidget = "Spinner"; +> = {1.4}; +float bloompower_in +< + string UIName = "BloomPowerInteriorNight"; + string UIWidget = "Spinner"; +> = {1.4}; +float bloompower_id +< + string UIName = "BloomPowerInteriorDay"; + string UIWidget = "Spinner"; +> = {1.4}; +/* bloom saturation */ +float bloomsaturation_n +< + string UIName = "BloomSaturationNight"; + string UIWidget = "Spinner"; +> = {0.3}; +float bloomsaturation_d +< + string UIName = "BloomSaturationDay"; + string UIWidget = "Spinner"; +> = {0.3}; +float bloomsaturation_in +< + string UIName = "BloomSaturationInteriorNight"; + string UIWidget = "Spinner"; +> = {0.3}; +float bloomsaturation_id +< + string UIName = "BloomSaturationInteriorDay"; + string UIWidget = "Spinner"; +> = {0.3}; +/* bloom offset */ +float bloombump_n +< + string UIName = "BloomBumpNight"; + string UIWidget = "Spinner"; +> = {-0.10}; +float bloombump_d +< + string UIName = "BloomBumpDay"; + string UIWidget = "Spinner"; +> = {-0.10}; +float bloombump_in +< + string UIName = "BloomBumpInteriorNight"; + string UIWidget = "Spinner"; +> = {-0.10}; +float bloombump_id +< + string UIName = "BloomBumpInteriorDay"; + string UIWidget = "Spinner"; +> = {-0.10}; diff --git a/enbseries/menbeffectfilters.fx b/enbseries/menbeffectfilters.fx new file mode 100644 index 0000000..f6bf0b3 --- /dev/null +++ b/enbseries/menbeffectfilters.fx @@ -0,0 +1,221 @@ +/* + menbeffectfilters.fx : MariENB base shader routines. + (C)2013-2014 Marisa Kirisame, UnSX Team. + Part of MariENB, the personal ENB of Marisa. + Released under the WTFPL. +*/ +VS_OUTPUT_POST VS_Pass( VS_INPUT_POST IN ) +{ + VS_OUTPUT_POST OUT; + OUT.vpos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0); + OUT.txcoord0.xy = IN.txcoord0.xy; + return OUT; +} +/* MariENB shader */ +float4 PS_Mari( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR +{ + float2 coord = IN.txcoord0.xy; + float4 res = tex2D(_s0,coord); + float tod = ENightDayFactor; + float ind = EInteriorFactor; + /* Border darken, commonly known as "vignette" */ + float2 bresl = float2(1.0,ScreenSize.w); + float dkradius = lerp(lerp(dkradius_n,dkradius_d,tod),lerp(dkradius_in, + dkradius_id,tod),ind); + float dkbump = lerp(lerp(dkbump_n,dkbump_d,tod),lerp(dkbump_in, + dkbump_id,tod),ind); + float dkcurve = lerp(lerp(dkcurve_n,dkcurve_d,tod),lerp(dkcurve_in, + dkcurve_id,tod),ind); + float2 bof = bresl*dkradius; + float val = 0.0; + if ( coord.x < bof.x ) + val = lerp(val,1,1.0-coord.x/bof.x); + if ( coord.y < bof.y ) + val = lerp(val,1,1.0-coord.y/bof.y); + if ( 1.0-coord.x < bof.x ) + val = lerp(val,1,1.0-(1.0-coord.x)/bof.x); + if ( 1.0-coord.y < bof.y ) + val = lerp(val,1,1.0-(1.0-coord.y)/bof.y); + val = clamp(val*dkbump,0,1); + res.rgb = lerp(res.rgb,float3(0,0,0),pow(val,dkcurve)); + /* adaptation */ + float4 adapt = tex2D(_s4,0.5); + float adapts = clamp((adapt.r+adapt.g+adapt.b)/3.0,0.0,50.0); + float amin = lerp(lerp(amin_n,amin_d,tod),lerp(amin_in,amin_id,tod), + ind); + float amax = lerp(lerp(amax_n,amax_d,tod),lerp(amax_in,amax_id,tod), + ind); + res.rgb = res.rgb/(adapts*amax+amin); + /* color grading prepass overbright/oversaturation compensation */ + float comppow = lerp(lerp(comppow_n,comppow_d,tod),lerp(comppow_in, + comppow_id,tod),ind); + float compsat = lerp(lerp(compsat_n,compsat_d,tod),lerp(compsat_in, + compsat_id,tod),ind); + float compfactor = lerp(lerp(compfactor_n,compfactor_d,tod), + lerp(compfactor_in,compfactor_id,tod),ind); + float4 ovr = pow(res,comppow); + float ovrs = (ovr.r+ovr.g+ovr.b)/3.0; + ovr = ovr*compsat+ovrs*(1.0-compsat); + res.rgb -= ovr.rgb*compfactor; + /* screen mud goes here */ + if ( softbloom ) + { + bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); + bof = float2(1.0/bresl.x,1.0/bresl.y); + res += gauss5[2][2]*tex2D(_s3,coord+float2(-2,-2)*bof); + res += gauss5[1][2]*tex2D(_s3,coord+float2(-1,-2)*bof); + res += gauss5[0][2]*tex2D(_s3,coord+float2(0,-2)*bof); + res += gauss5[1][2]*tex2D(_s3,coord+float2(1,-2)*bof); + res += gauss5[2][2]*tex2D(_s3,coord+float2(2,-2)*bof); + res += gauss5[2][1]*tex2D(_s3,coord+float2(-2,-1)*bof); + res += gauss5[1][1]*tex2D(_s3,coord+float2(-1,-1)*bof); + res += gauss5[0][1]*tex2D(_s3,coord+float2(0,-1)*bof); + res += gauss5[1][1]*tex2D(_s3,coord+float2(1,-1)*bof); + res += gauss5[2][1]*tex2D(_s3,coord+float2(2,-1)*bof); + res += gauss5[2][0]*tex2D(_s3,coord+float2(-2,0)*bof); + res += gauss5[1][0]*tex2D(_s3,coord+float2(-1,0)*bof); + res += gauss5[0][0]*tex2D(_s3,coord+float2(0,0)*bof); + res += gauss5[1][0]*tex2D(_s3,coord+float2(1,0)*bof); + res += gauss5[2][0]*tex2D(_s3,coord+float2(2,0)*bof); + res += gauss5[2][1]*tex2D(_s3,coord+float2(-2,1)*bof); + res += gauss5[1][1]*tex2D(_s3,coord+float2(-1,1)*bof); + res += gauss5[0][1]*tex2D(_s3,coord+float2(0,1)*bof); + res += gauss5[1][1]*tex2D(_s3,coord+float2(1,1)*bof); + res += gauss5[2][1]*tex2D(_s3,coord+float2(2,1)*bof); + res += gauss5[2][2]*tex2D(_s3,coord+float2(-2,2)*bof); + res += gauss5[1][2]*tex2D(_s3,coord+float2(-1,2)*bof); + res += gauss5[0][2]*tex2D(_s3,coord+float2(0,2)*bof); + res += gauss5[1][2]*tex2D(_s3,coord+float2(1,2)*bof); + res += gauss5[2][2]*tex2D(_s3,coord+float2(2,2)*bof); + res *= EBloomAmount; + } + else + res += tex2D(_s3,coord)*EBloomAmount; + /* + color grading (brightness, contrast, gamma, tinting, everything you + could ever need) + */ + float grademul_r = lerp(lerp(grademul_r_n,grademul_r_d,tod), + lerp(grademul_r_in,grademul_r_id,tod),ind); + float grademul_g = lerp(lerp(grademul_g_n,grademul_g_d,tod), + lerp(grademul_g_in,grademul_g_id,tod),ind); + float grademul_b = lerp(lerp(grademul_b_n,grademul_b_d,tod), + lerp(grademul_b_in,grademul_b_id,tod),ind); + float gradepow_r = lerp(lerp(gradepow_r_n,gradepow_r_d,tod), + lerp(gradepow_r_in,gradepow_r_id,tod),ind); + float gradepow_g = lerp(lerp(gradepow_g_n,gradepow_g_d,tod), + lerp(gradepow_g_in,gradepow_g_id,tod),ind); + float gradepow_b = lerp(lerp(gradepow_b_n,gradepow_b_d,tod), + lerp(gradepow_b_in,gradepow_b_id,tod),ind); + float gradecol_r = lerp(lerp(gradecol_r_n,gradecol_r_d,tod), + lerp(gradecol_r_in,gradecol_r_id,tod),ind); + float gradecol_g = lerp(lerp(gradecol_g_n,gradecol_g_d,tod), + lerp(gradecol_g_in,gradecol_g_id,tod),ind); + float gradecol_b = lerp(lerp(gradecol_b_n,gradecol_b_d,tod), + lerp(gradecol_b_in,gradecol_b_id,tod),ind); + float gradecolfact = lerp(lerp(gradecolfact_n,gradecolfact_d, + tod),lerp(gradecolfact_in,gradecolfact_id,tod),ind); + float3 grademul = float3(grademul_r,grademul_g,grademul_b); + float3 gradepow = float3(gradepow_r,gradepow_g,gradepow_b); + float3 gradecol = float3(gradecol_r,gradecol_g,gradecol_b); + res.rgb = saturate(pow(res.rgb,gradepow)); + res.rgb = saturate(res.rgb*grademul); + float tonev = (res.r+res.g+res.b)/3.0; + float3 tonecolor = gradecol*tonev; + res.rgb = res.rgb*(1.0-gradecolfact)+tonecolor*gradecolfact; + /* letterbox filter */ + res.rgb = saturate(res.rgb); + float boxf = pow(clamp(boxv-abs(2.0*coord.y-1.0),0.0,1.0),boxb); + res.rgb = lerp(res.rgb*(1.0-boxa),res.rgb,boxf); + res.a = 1.0; + return res; +} +/* + So... let me get this straight... rather than simply switching techniques, + Boris just compiles the program twice with and without this macro, then + toggling "UseEffect" switches between each variation? What the fuck? +*/ +#ifndef ENB_FLIPTECHNIQUE +technique Shader_D6EC7DD1 +#else +technique Shader_ORIGINALPOSTPROCESS +#endif +{ + pass p0 + { + VertexShader = compile vs_3_0 VS_Pass(); + PixelShader = compile ps_3_0 PS_Mari(); + ColorWriteEnable = ALPHA|RED|GREEN|BLUE; + ZEnable = FALSE; + ZWriteEnable = FALSE; + CullMode = NONE; + AlphaTestEnable = FALSE; + AlphaBlendEnable = FALSE; + SRGBWRITEENABLE = FALSE; + } +} +#ifndef ENB_FLIPTECHNIQUE +technique Shader_ORIGINALPOSTPROCESS +#else +technique Shader_D6EC7DD1 +#endif +{ + pass p0 + { + VertexShader = compile vs_3_0 VS_Pass(); + /* + >2014 + >inline assembly + Have to keep this part intact, sadly + Boris what the fuck have you done + */ + PixelShader = asm + { + ps_3_0 + def c6,0,0,0,0 + def c7,0.212500006,0.715399981,0.0720999986,1 + dcl_texcoord v0.xy + dcl_2d s0 + dcl_2d s1 + dcl_2d s2 + rcp r0.x,c2.y + texld r1,v0,s2 + mul r0.yz,r1.xxyw,c1.y + rcp r0.w,r0.y + mul r0.z,r0.w,r0.z + texld r1,v0,s1 + mul r1.xyz,r1,c1.y + dp3 r0.w,c7,r1 + mul r1.w,r0.w,r0.z + mad r0.z,r0.z,r0.w,c7.w + rcp r0.z,r0.z + mad r0.x,r1.w,r0.x,c7.w + mul r0.x,r0.x,r1.w + mul r0.x,r0.z,r0.x + cmp r0.x,-r0.w,c6.x,r0.x + rcp r0.z,r0.w + mul r0.z,r0.z,r0.x + add_sat r0.x,-r0.x,c2.x + texld r2,v0,s0 + mul r2.xyz,r2,c1.y + mul r2.xyz,r0.x,r2 + mad r1.xyz,r1,r0.z,r2 + dp3 r0.x,r1,c7 + mov r1.w,c7.w + lrp r2,c3.x,r1,r0.x + mad r1,r0.x,c4,-r2 + mad r1,c4.w,r1,r2 + mad r1,c3.w,r1,-r0.y + mad r0,c3.z,r1,r0.y + add r1,-r0,c5 + mad oC0,c5.w,r1,r0 + }; + ColorWriteEnable = ALPHA|RED|GREEN|BLUE; + ZEnable = FALSE; + ZWriteEnable = FALSE; + CullMode = NONE; + AlphaTestEnable = FALSE; + AlphaBlendEnable = FALSE; + SRGBWRITEENABLE = FALSE; + } +} diff --git a/menbeffectinternals.fx b/enbseries/menbeffectinternals.fx similarity index 67% rename from menbeffectinternals.fx rename to enbseries/menbeffectinternals.fx index ec45b6a..3a89549 100644 --- a/menbeffectinternals.fx +++ b/enbseries/menbeffectinternals.fx @@ -2,37 +2,21 @@ menbeffectinternals.fx : MariENB base internal variables. (C)2013-2014 Marisa Kirisame, UnSX Team. Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. + Released under the WTFPL. */ /* gaussian blur matrices */ -static const float2x2 gauss3 = -{ - 0.16,0.12, - 0.12,0.09 -}; static const float3x3 gauss5 = { 0.0865051903114,0.0692041522491,0.0346020761246, 0.0692041522491,0.0553633217993,0.0276816609, 0.0346020761246,0.0276816609,0.01384083045 }; -static const float4x4 gauss7 = -{ - 0.0632507440209,0.0527089533508,0.0301194019147,0.011294775718, - 0.0527089533508,0.0439241277923,0.0250995015956,0.00941231309835, - 0.0301194019147,0.0250995015956,0.01434257234,0.00537846462763, - 0.011294775718,0.00941231309835,0.00537846462763,0.00201692423536 -}; -/* standard stuff (not all used) */ -float4 tempF1; -float4 tempF2; -float4 tempF3; -float4 Timer; +/* standard stuff */ float4 ScreenSize; float ENightDayFactor; float EInteriorFactor; float EBloomAmount; -/* samplers and textures (some unused) */ +/* samplers and textures */ texture2D texs0; texture2D texs1; texture2D texs2; @@ -54,8 +38,8 @@ sampler2D _s0 = sampler_state sampler2D _s1 = sampler_state { Texture = ; - MinFilter = POINT; - MagFilter = POINT; + MinFilter = LINEAR; + MagFilter = LINEAR; MipFilter = NONE; AddressU = Clamp; AddressV = Clamp; @@ -66,8 +50,8 @@ sampler2D _s1 = sampler_state sampler2D _s2 = sampler_state { Texture = ; - MinFilter = POINT; - MagFilter = POINT; + MinFilter = LINEAR; + MagFilter = LINEAR; MipFilter = NONE; AddressU = Clamp; AddressV = Clamp; @@ -78,8 +62,8 @@ sampler2D _s2 = sampler_state sampler2D _s3 = sampler_state { Texture = ; - MinFilter = POINT; - MagFilter = POINT; + MinFilter = LINEAR; + MagFilter = LINEAR; MipFilter = NONE; AddressU = Clamp; AddressV = Clamp; @@ -90,8 +74,8 @@ sampler2D _s3 = sampler_state sampler2D _s4 = sampler_state { Texture = ; - MinFilter = POINT; - MagFilter = POINT; + MinFilter = LINEAR; + MagFilter = LINEAR; MipFilter = NONE; AddressU = Clamp; AddressV = Clamp; @@ -102,8 +86,8 @@ sampler2D _s4 = sampler_state sampler2D _s7 = sampler_state { Texture = ; - MinFilter = POINT; - MagFilter = POINT; + MinFilter = LINEAR; + MagFilter = LINEAR; MipFilter = NONE; AddressU = Clamp; AddressV = Clamp; diff --git a/enbseries/menbeffectsettings.fx b/enbseries/menbeffectsettings.fx new file mode 100644 index 0000000..54cac22 --- /dev/null +++ b/enbseries/menbeffectsettings.fx @@ -0,0 +1,402 @@ +/* + menbeffectsettings.fx : MariENB base user-tweakable variables. + (C)2013-2014 Marisa Kirisame, UnSX Team. + Part of MariENB, the personal ENB of Marisa. + Released under the WTFPL. +*/ +/* Border darkening */ +/* radius of darkening (relative to screen width) */ +float dkradius_n +< + string UIName = "DarkRadiusNight"; + string UIWidget = "Spinner"; +> = {0.40}; +float dkradius_d +< + string UIName = "DarkRadiusDay"; + string UIWidget = "Spinner"; +> = {0.29}; +float dkradius_in +< + string UIName = "DarkRadiusInteriorNight"; + string UIWidget = "Spinner"; +> = {0.50}; +float dkradius_id +< + string UIName = "DarkRadiusInteriorDay"; + string UIWidget = "Spinner"; +> = {0.39}; +/* falloff of darkening */ +float dkcurve_n +< + string UIName = "DarkCurveNight"; + string UIWidget = "Spinner"; +> = {1.70}; +float dkcurve_d +< + string UIName = "DarkCurveDay"; + string UIWidget = "Spinner"; +> = {2.30}; +float dkcurve_in +< + string UIName = "DarkCurveInteriorNight"; + string UIWidget = "Spinner"; +> = {1.35}; +float dkcurve_id +< + string UIName = "DarkCurveInteriorDay"; + string UIWidget = "Spinner"; +> = {1.67}; +/* bump of darkening */ +float dkbump_n +< + string UIName = "DarkBumpNight"; + string UIWidget = "Spinner"; +> = {0.74}; +float dkbump_d +< + string UIName = "DarkBumpDay"; + string UIWidget = "Spinner"; +> = {0.33}; +float dkbump_in +< + string UIName = "DarkBumpInteriorNight"; + string UIWidget = "Spinner"; +> = {0.82}; +float dkbump_id +< + string UIName = "DarkBumpInteriorDay"; + string UIWidget = "Spinner"; +> = {0.61}; +/* Adaptation */ +float amin_n +< + string UIName = "AdaptationMinNight"; + string UIWidget = "Spinner"; +> = {0.20}; +float amin_d +< + string UIName = "AdaptationMinDay"; + string UIWidget = "Spinner"; +> = {0.09}; +float amin_in +< + string UIName = "AdaptationMinInteriorNight"; + string UIWidget = "Spinner"; +> = {0.17}; +float amin_id +< + string UIName = "AdaptationMinInteriorDay"; + string UIWidget = "Spinner"; +> = {0.10}; +float amax_n +< + string UIName = "AdaptationMaxNight"; + string UIWidget = "Spinner"; +> = {1.21}; +float amax_d +< + string UIName = "AdaptationMaxDay"; + string UIWidget = "Spinner"; +> = {0.94}; +float amax_in +< + string UIName = "AdaptationMaxInteriorNight"; + string UIWidget = "Spinner"; +> = {1.26}; +float amax_id +< + string UIName = "AdaptationMaxInteriorDay"; + string UIWidget = "Spinner"; +> = {0.91}; +/* Shine/bloom compensation */ +/* compensation factor */ +float compfactor_n +< + string UIName = "CompensateFactorNight"; + string UIWidget = "Spinner"; +> = {0.23}; +float compfactor_d +< + string UIName = "CompensateFactorDay"; + string UIWidget = "Spinner"; +> = {0.46}; +float compfactor_in +< + string UIName = "CompensateFactorInteriorNight"; + string UIWidget = "Spinner"; +> = {0.30}; +float compfactor_id +< + string UIName = "CompensateFactorInteriorDay"; + string UIWidget = "Spinner"; +> = {0.39}; +/* compensation power */ +float comppow_n +< + string UIName = "CompensatePowerNight"; + string UIWidget = "Spinner"; +> = {1.08}; +float comppow_d +< + string UIName = "CompensatePowerDay"; + string UIWidget = "Spinner"; +> = {1.11}; +float comppow_in +< + string UIName = "CompensatePowerInteriorNight"; + string UIWidget = "Spinner"; +> = {1.05}; +float comppow_id +< + string UIName = "CompensatePowerInteriorDay"; + string UIWidget = "Spinner"; +> = {1.14}; +/* compensation saturation */ +float compsat_n +< + string UIName = "CompensateSaturationNight"; + string UIWidget = "Spinner"; +> = {0.97}; +float compsat_d +< + string UIName = "CompensateSaturationDay"; + string UIWidget = "Spinner"; +> = {0.85}; +float compsat_in +< + string UIName = "CompensateSaturationInteriorNight"; + string UIWidget = "Spinner"; +> = {0.89}; +float compsat_id +< + string UIName = "CompensateSaturationInteriorDay"; + string UIWidget = "Spinner"; +> = {0.74}; +/* Color grading */ +/* miscellaneous color grading parameters */ +float grademul_r_n +< + string UIName = "GradingMulRNight"; + string UIWidget = "Spinner"; +> = {1.04}; +float grademul_g_n +< + string UIName = "GradingMulGNight"; + string UIWidget = "Spinner"; +> = {1.08}; +float grademul_b_n +< + string UIName = "GradingMulBNight"; + string UIWidget = "Spinner"; +> = {1.15}; +float grademul_r_d +< + string UIName = "GradingMulRDay"; + string UIWidget = "Spinner"; +> = {1.66}; +float grademul_g_d +< + string UIName = "GradingMulGDay"; + string UIWidget = "Spinner"; +> = {1.45}; +float grademul_b_d +< + string UIName = "GradingMulBDay"; + string UIWidget = "Spinner"; +> = {1.29}; +float grademul_r_in +< + string UIName = "GradingMulRInteriorNight"; + string UIWidget = "Spinner"; +> = {1.35}; +float grademul_g_in +< + string UIName = "GradingMulGInteriorNight"; + string UIWidget = "Spinner"; +> = {1.18}; +float grademul_b_in +< + string UIName = "GradingMulBInteriorNight"; + string UIWidget = "Spinner"; +> = {1.22}; +float grademul_r_id +< + string UIName = "GradingMulRInteriorDay"; + string UIWidget = "Spinner"; +> = {1.71}; +float grademul_g_id +< + string UIName = "GradingMulGInteriorDay"; + string UIWidget = "Spinner"; +> = {1.60}; +float grademul_b_id +< + string UIName = "GradingMulBInteriorDay"; + string UIWidget = "Spinner"; +> = {1.41}; +float gradepow_r_n +< + string UIName = "GradingPowRNight"; + string UIWidget = "Spinner"; +> = {1.02}; +float gradepow_g_n +< + string UIName = "GradingPowGNight"; + string UIWidget = "Spinner"; +> = {1.06}; +float gradepow_b_n +< + string UIName = "GradingPowBNight"; + string UIWidget = "Spinner"; +> = {1.03}; +float gradepow_r_d +< + string UIName = "GradingPowRDay"; + string UIWidget = "Spinner"; +> = {1.09}; +float gradepow_g_d +< + string UIName = "GradingPowGDay"; + string UIWidget = "Spinner"; +> = {1.08}; +float gradepow_b_d +< + string UIName = "GradingPowBDay"; + string UIWidget = "Spinner"; +> = {1.05}; +float gradepow_r_in +< + string UIName = "GradingPowRInteriorNight"; + string UIWidget = "Spinner"; +> = {1.08}; +float gradepow_g_in +< + string UIName = "GradingPowGInteriorNight"; + string UIWidget = "Spinner"; +> = {1.11}; +float gradepow_b_in +< + string UIName = "GradingPowBInteriorNight"; + string UIWidget = "Spinner"; +> = {1.06}; +float gradepow_r_id +< + string UIName = "GradingPowRInteriorDay"; + string UIWidget = "Spinner"; +> = {1.05}; +float gradepow_g_id +< + string UIName = "GradingPowGInteriorDay"; + string UIWidget = "Spinner"; +> = {1.04}; +float gradepow_b_id +< + string UIName = "GradingPowBInteriorDay"; + string UIWidget = "Spinner"; +> = {1.04}; +float gradecol_r_n +< + string UIName = "GradingColRNight"; + string UIWidget = "Spinner"; +> = {-0.59}; +float gradecol_g_n +< + string UIName = "GradingColGNight"; + string UIWidget = "Spinner"; +> = {-0.26}; +float gradecol_b_n +< + string UIName = "GradingColBNight"; + string UIWidget = "Spinner"; +> = {-0.73}; +float gradecol_r_d +< + string UIName = "GradingColRDay"; + string UIWidget = "Spinner"; +> = {-0.62}; +float gradecol_g_d +< + string UIName = "GradingColGDay"; + string UIWidget = "Spinner"; +> = {-0.10}; +float gradecol_b_d +< + string UIName = "GradingColBDay"; + string UIWidget = "Spinner"; +> = {-0.81}; +float gradecol_r_in +< + string UIName = "GradingColRInteriorNight"; + string UIWidget = "Spinner"; +> = {-0.41}; +float gradecol_g_in +< + string UIName = "GradingColGInteriorNight"; + string UIWidget = "Spinner"; +> = {-0.18}; +float gradecol_b_in +< + string UIName = "GradingColBInteriorNight"; + string UIWidget = "Spinner"; +> = {-1.69}; +float gradecol_r_id +< + string UIName = "GradingColRInteriorDay"; + string UIWidget = "Spinner"; +> = {-0.60}; +float gradecol_g_id +< + string UIName = "GradingColGInteriorDay"; + string UIWidget = "Spinner"; +> = {-0.45}; +float gradecol_b_id +< + string UIName = "GradingColBInteriorDay"; + string UIWidget = "Spinner"; +> = {-0.85}; +float gradecolfact_n +< + string UIName = "GradingColFactorNight"; + string UIWidget = "Spinner"; +> = {-0.11}; +float gradecolfact_d +< + string UIName = "GradingColFactorDay"; + string UIWidget = "Spinner"; +> = {-0.14}; +float gradecolfact_in +< + string UIName = "GradingColFactorInteriorNight"; + string UIWidget = "Spinner"; +> = {-0.14}; +float gradecolfact_id +< + string UIName = "GradingColFactorInteriorDay"; + string UIWidget = "Spinner"; +> = {-0.20}; +/* Letterbox */ +/* vertical factor */ +float boxv +< + string UIName = "BoxVertical"; + string UIWidget = "Spinner"; +> = {0.90}; +/* softening */ +float boxb +< + string UIName = "BoxSoften"; + string UIWidget = "Spinner"; +> = {0.01}; +/* box alpha */ +float boxa +< + string UIName = "BoxAlpha"; + string UIWidget = "Spinner"; +> = {12.00}; +/* soften bloom texture */ +bool softbloom +< + string UIName = "BloomSoften"; + string UIWidget = "Checkbox"; +> = {false}; diff --git a/enbseries/menbprepassfilters.fx b/enbseries/menbprepassfilters.fx new file mode 100644 index 0000000..0c69bd5 --- /dev/null +++ b/enbseries/menbprepassfilters.fx @@ -0,0 +1,298 @@ +/* + menbprepassfilters.fx : MariENB prepass shader routines. + (C)2013-2014 Marisa Kirisame, UnSX Team. + Part of MariENB, the personal ENB of Marisa. + Released under the WTFPL. +*/ +VS_OUTPUT_POST VS_Pass( VS_INPUT_POST IN ) +{ + VS_OUTPUT_POST OUT; + OUT.vpos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0); + OUT.txcoord.xy = IN.txcoord.xy; + return OUT; +} +/* + Whoever wrote this shit deserves to die a slow, painful death for + commiting a crime against good programming. I'm leaving the algorithm + itself unaltered so you can see for yourself just how fucking disgusting it + is (yes, it says "linearlize"). +*/ +float linearlizeDepth( float nonlinearDepth ) +{ + float2 dofProj = float2(0.0509804,3098.0392); + float2 dofDist = float2(0.0,0.0509804); + float4 depth = nonlinearDepth; + depth.y = -dofProj.x+dofProj.y; + depth.y = 1.0/depth.y; + depth.z = depth.y*dofProj.y; + depth.z = depth.z*-dofProj.x; + depth.x = dofProj.y*-depth.y+depth.x; + depth.x = 1.0/depth.x; + depth.y = depth.z*depth.x; + depth.x = depth.z*depth.x-dofDist.y; + depth.x += dofDist.x*-0.5; + depth.x = max(depth.x,0.0); + return depth.x; +} +#define depthlinear(x) linearlizeDepth(tex2D(SamplerDepth,x).r) +/* New and improved edge detection, generally useful for contour shading */ +float4 PS_Edge( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR +{ + float2 coord = IN.txcoord.xy; + if ( noedge ) + return tex2D(SamplerColor,coord); + float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); + float2 bof = float2(1.0/bresl.x,1.0/bresl.y); + float mdx, mdy, mud; + /* this reduces texture fetches by half, big difference */ + float3x3 depths; + depths[0][0] = depthlinear(coord+float2(-1,-1)*bof); + depths[1][0] = depthlinear(coord+float2(0,-1)*bof); + depths[2][0] = depthlinear(coord+float2(1,-1)*bof); + depths[0][1] = depthlinear(coord+float2(-1,0)*bof); + depths[1][1] = depthlinear(coord); + depths[2][1] = depthlinear(coord+float2(1,0)*bof); + depths[0][2] = depthlinear(coord+float2(-1,1)*bof); + depths[1][2] = depthlinear(coord+float2(0,1)*bof); + depths[2][2] = depthlinear(coord+float2(1,1)*bof); + mdx = GX[0][0]*depths[0][0]; + mdx += GX[1][0]*depths[1][0]; + mdx += GX[2][0]*depths[2][0]; + mdx += GX[0][1]*depths[0][1]; + mdx += GX[1][1]*depths[1][1]; + mdx += GX[2][1]*depths[2][1]; + mdx += GX[0][2]*depths[0][2]; + mdx += GX[1][2]*depths[1][2]; + mdx += GX[2][2]*depths[2][2]; + mdy = GY[0][0]*depths[0][0]; + mdy += GY[1][0]*depths[1][0]; + mdy += GY[2][0]*depths[2][0]; + mdy += GY[0][1]*depths[0][1]; + mdy += GY[1][1]*depths[1][1]; + mdy += GY[2][1]*depths[2][1]; + mdy += GY[0][2]*depths[0][2]; + mdy += GY[1][2]*depths[1][2]; + mdy += GY[2][2]*depths[2][2]; + mud = pow(mdx*mdx+mdy*mdy,0.5); + float fade = 1.0-tex2D(SamplerDepth,coord).x; + mud *= saturate(pow(fade,edgefadepow)*edgefademult); + mud = saturate(pow(mud,edgepow)*edgemult); + float4 res = tex2D(SamplerColor,coord); + if ( edgeview ) + res.rgb = mud; + else + res.rgb -= mud; + return saturate(res); +} +/* Focus */ +float4 PS_ReadFocus( VS_OUTPUT_POST IN ) : COLOR +{ + if ( dofdisable ) + return 0.0; + float tod = ENightDayFactor; + float ind = EInteriorFactor; + float focusmax = lerp(lerp(focusmax_n,focusmax_d,tod),lerp(focusmax_in, + focusmax_id,tod),ind); + float cfocus = min(tex2D(SamplerDepth,0.5),focusmax*0.001); + if ( !focuscircle ) + return cfocus; + float focusradius = lerp(lerp(focusradius_n,focusradius_d,tod), + lerp(focusradius_in,focusradius_id,tod),ind); + float focusmix = lerp(lerp(focusmix_n,focusmix_d,tod),lerp(focusmix_in, + focusmix_id,tod),ind); + float step = (1.0/3.0); + float mfocus; + float2 coord; + float2 bof = float2(1.0,ScreenSize.w)*focusradius*0.001; + /* unrolled this too... *sigh* */ + coord.x = 0.5+sin(0.0)*bof.x; + coord.y = 0.5+cos(0.0)*bof.y; + mfocus = step*min(tex2D(SamplerDepth,coord),focusmax*0.001); + coord.x = 0.5+sin(2.0*pi*step)*bof.x; + coord.y = 0.5+cos(2.0*pi*step)*bof.y; + mfocus += step*min(tex2D(SamplerDepth,coord),focusmax*0.001); + coord.x = 0.5+sin(4.0*pi*step)*bof.x; + coord.y = 0.5+cos(4.0*pi*step)*bof.y; + mfocus += step*min(tex2D(SamplerDepth,coord),focusmax*0.001); + cfocus = (1.0-focusmix)*cfocus+focusmix*mfocus; + return cfocus; +} +float4 PS_WriteFocus( VS_OUTPUT_POST IN ) : COLOR +{ + if ( dofdisable ) + return 0.0; + return max(lerp(tex2D(SamplerPrev,0.5).x,tex2D(SamplerCurr,0.5).x, + saturate(FadeFactor)),0.0); +} +/* Depth of Field */ +float4 PS_DoF( VS_OUTPUT_POST IN, float2 vPos : VPOS, uniform int p ) : COLOR +{ + float2 coord = IN.txcoord.xy; + if ( dofdisable || (!doftwopass && (p != 0)) ) + return tex2D(SamplerColor,coord); + float tod = ENightDayFactor; + float ind = EInteriorFactor; + float dofpow = lerp(lerp(dofpow_n,dofpow_d,tod),lerp(dofpow_in, + dofpow_id,tod),ind); + float dofmult = lerp(lerp(dofmult_n,dofmult_d,tod),lerp(dofmult_in, + dofmult_id,tod),ind); + float doffixedfocuspow = lerp(lerp(doffixedfocuspow_n, + doffixedfocuspow_d,tod),lerp(doffixedfocuspow_in, + doffixedfocuspow_id,tod),ind); + float doffixedfocusmult = lerp(lerp(doffixedfocusmult_n, + doffixedfocusmult_d,tod),lerp(doffixedfocusmult_in, + doffixedfocusmult_id,tod),ind); + float doffixedfocusblend = lerp(lerp(doffixedfocusblend_n, + doffixedfocusblend_d,tod),lerp(doffixedfocusblend_in, + doffixedfocusblend_id,tod),ind); + float doffixedunfocuspow = lerp(lerp(doffixedunfocuspow_n, + doffixedunfocuspow_d,tod),lerp(doffixedunfocuspow_in, + doffixedunfocuspow_id,tod),ind); + float doffixedunfocusmult = lerp(lerp(doffixedunfocusmult_n, + doffixedunfocusmult_d,tod),lerp(doffixedunfocusmult_in, + doffixedunfocusmult_id,tod),ind); + float doffixedunfocusblend = lerp(lerp(doffixedunfocusblend_n, + doffixedunfocusblend_d,tod),lerp(doffixedunfocusblend_in, + doffixedunfocusblend_id,tod),ind); + float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); + float2 bof = float2(1.0/bresl.x,1.0/bresl.y); + float dep; + if ( dofsmooth ) + { + dep = gauss3[1][1]*tex2D(SamplerDepth,coord+float2(-1,-1)*bof); + dep += gauss3[0][1]*tex2D(SamplerDepth,coord+float2(0,-1)*bof); + dep += gauss3[1][1]*tex2D(SamplerDepth,coord+float2(1,-1)*bof); + dep += gauss3[1][0]*tex2D(SamplerDepth,coord+float2(-1,0)*bof); + dep += gauss3[0][0]*tex2D(SamplerDepth,coord+float2(0,0)*bof); + dep += gauss3[1][0]*tex2D(SamplerDepth,coord+float2(1,0)*bof); + dep += gauss3[1][1]*tex2D(SamplerDepth,coord+float2(-1,1)*bof); + dep += gauss3[0][1]*tex2D(SamplerDepth,coord+float2(0,1)*bof); + dep += gauss3[1][1]*tex2D(SamplerDepth,coord+float2(1,1)*bof); + } + else + dep = tex2D(SamplerDepth,coord); + float foc = tex2D(SamplerFocus,coord).x; + float dfc = abs(dep-foc); + float dff = abs(dep); + float dfu = dff; + dfc = saturate(pow(dfc,dofpow)*dofmult); + dff = saturate(pow(dff,doffixedfocuspow)*doffixedfocusmult); + dfu = saturate(pow(dfu,doffixedunfocuspow)*doffixedunfocusmult); + dfc *= lerp(1.0,dff,doffixedfocusblend); + dfc += lerp(0.0,dfu,doffixedunfocusblend); + if ( dofcutoff && (dep >= 0.999999) ) + dfc = 0.0; + dfc = saturate(dfc); + /* aaand another unrolled loop */ + float4 res; + bof *= pow(2,p); + res = gauss5[2][2]*tex2D(SamplerColor,coord+float2(-2,-2)*bof*dfc); + res += gauss5[1][2]*tex2D(SamplerColor,coord+float2(-1,-2)*bof*dfc); + 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); + res += gauss5[2][1]*tex2D(SamplerColor,coord+float2(-2,-1)*bof*dfc); + res += gauss5[1][1]*tex2D(SamplerColor,coord+float2(-1,-1)*bof*dfc); + res += gauss5[0][1]*tex2D(SamplerColor,coord+float2(0,-1)*bof*dfc); + res += gauss5[1][1]*tex2D(SamplerColor,coord+float2(1,-1)*bof*dfc); + res += gauss5[2][1]*tex2D(SamplerColor,coord+float2(2,-1)*bof*dfc); + res += gauss5[2][0]*tex2D(SamplerColor,coord+float2(-2,0)*bof*dfc); + res += gauss5[1][0]*tex2D(SamplerColor,coord+float2(-1,0)*bof*dfc); + res += gauss5[0][0]*tex2D(SamplerColor,coord+float2(0,0)*bof*dfc); + res += gauss5[1][0]*tex2D(SamplerColor,coord+float2(1,0)*bof*dfc); + res += gauss5[2][0]*tex2D(SamplerColor,coord+float2(2,0)*bof*dfc); + res += gauss5[2][1]*tex2D(SamplerColor,coord+float2(-2,1)*bof*dfc); + res += gauss5[1][1]*tex2D(SamplerColor,coord+float2(-1,1)*bof*dfc); + res += gauss5[0][1]*tex2D(SamplerColor,coord+float2(0,1)*bof*dfc); + res += gauss5[1][1]*tex2D(SamplerColor,coord+float2(1,1)*bof*dfc); + res += gauss5[2][1]*tex2D(SamplerColor,coord+float2(2,1)*bof*dfc); + res += gauss5[2][2]*tex2D(SamplerColor,coord+float2(-2,2)*bof*dfc); + res += gauss5[1][2]*tex2D(SamplerColor,coord+float2(-1,2)*bof*dfc); + 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 ) + return dfc; + return res; +} +technique ReadFocus +{ + pass p0 + { + VertexShader = compile vs_3_0 VS_Pass(); + PixelShader = compile ps_3_0 PS_ReadFocus(); + ZENABLE = FALSE; + CullMode = NONE; + ALPHATESTENABLE = FALSE; + SEPARATEALPHABLENDENABLE = FALSE; + AlphaBlendEnable = FALSE; + FogEnable = FALSE; + SRGBWRITEENABLE = FALSE; + } +} +technique WriteFocus +{ + pass p0 + { + VertexShader = compile vs_3_0 VS_Pass(); + PixelShader = compile ps_3_0 PS_WriteFocus(); + ZENABLE = FALSE; + CullMode = NONE; + ALPHATESTENABLE = FALSE; + SEPARATEALPHABLENDENABLE = FALSE; + AlphaBlendEnable = FALSE; + FogEnable = FALSE; + SRGBWRITEENABLE = FALSE; + } +} +technique PostProcess +{ + pass p0 + { + VertexShader = compile vs_3_0 VS_Pass(); + PixelShader = compile ps_3_0 PS_Edge(); + DitherEnable = FALSE; + ZEnable = FALSE; + CullMode = NONE; + ALPHATESTENABLE = FALSE; + SEPARATEALPHABLENDENABLE = FALSE; + AlphaBlendEnable = FALSE; + StencilEnable = FALSE; + FogEnable = FALSE; + SRGBWRITEENABLE = FALSE; + } +} +technique PostProcess2 +{ + pass p0 + { + VertexShader = compile vs_3_0 VS_Pass(); + PixelShader = compile ps_3_0 PS_DoF(0); + DitherEnable = FALSE; + ZEnable = FALSE; + CullMode = NONE; + ALPHATESTENABLE = FALSE; + SEPARATEALPHABLENDENABLE = FALSE; + AlphaBlendEnable = FALSE; + StencilEnable = FALSE; + FogEnable = FALSE; + SRGBWRITEENABLE = FALSE; + } +} +technique PostProcess3 +{ + pass p0 + { + VertexShader = compile vs_3_0 VS_Pass(); + PixelShader = compile ps_3_0 PS_DoF(1); + DitherEnable = FALSE; + ZEnable = FALSE; + CullMode = NONE; + ALPHATESTENABLE = FALSE; + SEPARATEALPHABLENDENABLE = FALSE; + AlphaBlendEnable = FALSE; + StencilEnable = FALSE; + FogEnable = FALSE; + SRGBWRITEENABLE = FALSE; + } +} diff --git a/menbprepassinternals.fx b/enbseries/menbprepassinternals.fx similarity index 57% rename from menbprepassinternals.fx rename to enbseries/menbprepassinternals.fx index 40739f1..c2606a5 100644 --- a/menbprepassinternals.fx +++ b/enbseries/menbprepassinternals.fx @@ -2,10 +2,23 @@ menbprepassinternals.fx : MariENB prepass internal variables. (C)2013-2014 Marisa Kirisame, UnSX Team. Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. + Released under the WTFPL. */ /* mathematical constants */ static const float pi = 3.1415926535898; +/* edge detect factors */ +static const float3x3 GX = +{ + -1, 0, 1, + -2, 0, 2, + -1, 0, 1 +}; +static const float3x3 GY = +{ + 1, 2, 1, + 0, 0, 0, + -1,-2,-1 +}; /* gaussian blur matrices */ static const float2x2 gauss3 = { @@ -18,37 +31,15 @@ static const float3x3 gauss5 = 0.0692041522491,0.0553633217993,0.0276816609, 0.0346020761246,0.0276816609,0.01384083045 }; -static const float4x4 gauss7 = -{ - 0.0632507440209,0.0527089533508,0.0301194019147,0.011294775718, - 0.0527089533508,0.0439241277923,0.0250995015956,0.00941231309835, - 0.0301194019147,0.0250995015956,0.01434257234,0.00537846462763, - 0.011294775718,0.00941231309835,0.00537846462763,0.00201692423536 -}; -/* SSAO sample sphere */ -static const float3 ssao_samples[16] = -{ - float3( 0.5381, 0.1856,-0.4319),float3( 0.1379, 0.2486, 0.4430), - float3( 0.3371, 0.5679,-0.0057),float3(-0.6999,-0.0451,-0.0019), - float3( 0.0689,-0.1598,-0.8547),float3( 0.0560, 0.0069,-0.1843), - float3(-0.0146, 0.1402, 0.0762),float3( 0.0100,-0.1924,-0.0344), - float3(-0.3577,-0.5301,-0.4358),float3(-0.3169, 0.1063, 0.0158), - float3( 0.0103,-0.5869, 0.0046),float3(-0.0897,-0.4940, 0.3287), - float3( 0.7119,-0.0154,-0.0918),float3(-0.0533, 0.0596,-0.5411), - float3( 0.0352,-0.0631, 0.5460),float3(-0.4776, 0.2847,-0.0271) -}; -/* standard stuff (not all used) */ -float4 tempF1; -float4 tempF2; -float4 tempF3; -float4 Timer; +/* standard stuff */ float4 ScreenSize; +float ENightDayFactor; +float EInteriorFactor; float FadeFactor; -extern float fWaterLevel = 1.0; -/* samplers and textures (some unused) */ +float4 Timer; +/* samplers and textures */ texture2D texColor; texture2D texDepth; -texture2D texNoise; texture2D texFocus; texture2D texCurr; texture2D texPrev; @@ -76,18 +67,6 @@ sampler2D SamplerDepth = sampler_state MaxMipLevel = 0; MipMapLodBias = 0; }; -sampler2D SamplerNoise = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = LINEAR; - MipFilter = NONE; - AddressU = Wrap; - AddressV = Wrap; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; sampler2D SamplerFocus = sampler_state { Texture = ; diff --git a/enbseries/menbprepasssettings.fx b/enbseries/menbprepasssettings.fx new file mode 100644 index 0000000..ccb08dc --- /dev/null +++ b/enbseries/menbprepasssettings.fx @@ -0,0 +1,306 @@ +/* + menbprepasssettings.fx : MariENB prepass user-tweakable variables. + (C)2013-2014 Marisa Kirisame, UnSX Team. + Part of MariENB, the personal ENB of Marisa. + Released under the WTFPL. +*/ +/* circle average focus */ +bool focuscircle +< + string UIName = "FocusCircleEnable"; + string UIWidget = "Checkbox"; +> = {false}; +/* radius of the outmost circle */ +float focusradius_n +< + string UIName = "FocusCircleRadiusNight"; + string UIWidget = "Spinner"; +> = {12.5}; +float focusradius_d +< + string UIName = "FocusCircleRadiusDay"; + string UIWidget = "Spinner"; +> = {12.5}; +float focusradius_in +< + string UIName = "FocusCircleRadiusInteriorNight"; + string UIWidget = "Spinner"; +> = {12.5}; +float focusradius_id +< + string UIName = "FocusCircleRadiusInteriorDay"; + string UIWidget = "Spinner"; +> = {12.5}; +/* mix factor with sample at screen center */ +float focusmix_n +< + string UIName = "FocusCircleMixNight"; + string UIWidget = "Spinner"; +> = {0.25}; +float focusmix_d +< + string UIName = "FocusCircleMixDay"; + string UIWidget = "Spinner"; +> = {0.25}; +float focusmix_in +< + string UIName = "FocusCircleMixInteriorNight"; + string UIWidget = "Spinner"; +> = {0.25}; +float focusmix_id +< + string UIName = "FocusCircleMixInteriorDay"; + string UIWidget = "Spinner"; +> = {0.25}; +/* maximum focus depth */ +float focusmax_n +< + string UIName = "FocusMaxNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float focusmax_d +< + string UIName = "FocusMaxDay"; + string UIWidget = "Spinner"; +> = {1.0}; +float focusmax_in +< + string UIName = "FocusMaxInteriorNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float focusmax_id +< + string UIName = "FocusMaxInteriorDay"; + string UIWidget = "Spinner"; +> = {1.0}; +/* dof filter */ +/* depth multiplier */ +float dofmult_n +< + string UIName = "DoFMultNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float dofmult_d +< + string UIName = "DoFMultDay"; + string UIWidget = "Spinner"; +> = {1.0}; +float dofmult_in +< + string UIName = "DoFMultInteriorNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float dofmult_id +< + string UIName = "DoFMultInteriorDay"; + string UIWidget = "Spinner"; +> = {1.0}; +/* depth power */ +float dofpow_n +< + string UIName = "DoFPowNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float dofpow_d +< + string UIName = "DoFPowDay"; + string UIWidget = "Spinner"; +> = {1.0}; +float dofpow_in +< + string UIName = "DoFPowInteriorNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float dofpow_id +< + string UIName = "DoFPowInteriorDay"; + string UIWidget = "Spinner"; +> = {1.0}; +/* fixed depth multiplier */ +float doffixedfocusmult_n +< + string UIName = "DoFFixedFocusedMultNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float doffixedfocusmult_d +< + string UIName = "DoFFixedFocusedMultDay"; + string UIWidget = "Spinner"; +> = {1.0}; +float doffixedfocusmult_in +< + string UIName = "DoFFixedFocusedMultInteriorNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float doffixedfocusmult_id +< + string UIName = "DoFFixedFocusedMultInteriorDay"; + string UIWidget = "Spinner"; +> = {1.0}; +/* fixed depth power */ +float doffixedfocuspow_n +< + string UIName = "DoFFixedFocusedPowNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float doffixedfocuspow_d +< + string UIName = "DoFFixedFocusedPowDay"; + string UIWidget = "Spinner"; +> = {1.0}; +float doffixedfocuspow_in +< + string UIName = "DoFFixedFocusedPowInteriorNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float doffixedfocuspow_id +< + string UIName = "DoFFixedFocusedPowInteriorDay"; + string UIWidget = "Spinner"; +> = {1.0}; +/* fixed depth blending */ +float doffixedfocusblend_n +< + string UIName = "DoFFixedFocusedBlendNight"; + string UIWidget = "Spinner"; +> = {0.0}; +float doffixedfocusblend_d +< + string UIName = "DoFFixedFocusedBlendDay"; + string UIWidget = "Spinner"; +> = {0.0}; +float doffixedfocusblend_in +< + string UIName = "DoFFixedFocusedBlendInteriorNight"; + string UIWidget = "Spinner"; +> = {0.0}; +float doffixedfocusblend_id +< + string UIName = "DoFFixedFocusedBlendInteriorDay"; + string UIWidget = "Spinner"; +> = {0.0}; +float doffixedunfocusmult_n +< + string UIName = "DoFFixedUnfocusedMultNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float doffixedunfocusmult_d +< + string UIName = "DoFFixedUnfocusedMultDay"; + string UIWidget = "Spinner"; +> = {1.0}; +float doffixedunfocusmult_in +< + string UIName = "DoFFixedUnfocusedMultInteriorNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float doffixedunfocusmult_id +< + string UIName = "DoFFixedUnfocusedMultInteriorDay"; + string UIWidget = "Spinner"; +> = {1.0}; +/* fixed depth power */ +float doffixedunfocuspow_n +< + string UIName = "DoFFixedUnfocusedPowNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float doffixedunfocuspow_d +< + string UIName = "DoFFixedUnfocusedPowDay"; + string UIWidget = "Spinner"; +> = {1.0}; +float doffixedunfocuspow_in +< + string UIName = "DoFFixedUnfocusedPowInteriorNight"; + string UIWidget = "Spinner"; +> = {1.0}; +float doffixedunfocuspow_id +< + string UIName = "DoFFixedUnfocusedPowInteriorDay"; + string UIWidget = "Spinner"; +> = {1.0}; +/* fixed depth blending */ +float doffixedunfocusblend_n +< + string UIName = "DoFFixedUnfocusedBlendNight"; + string UIWidget = "Spinner"; +> = {0.0}; +float doffixedunfocusblend_d +< + string UIName = "DoFFixedUnfocusedBlendDay"; + string UIWidget = "Spinner"; +> = {0.0}; +float doffixedunfocusblend_in +< + string UIName = "DoFFixedUnfocusedBlendInteriorNight"; + string UIWidget = "Spinner"; +> = {0.0}; +float doffixedunfocusblend_id +< + string UIName = "DoFFixedUnfocusedBlendInteriorDay"; + string UIWidget = "Spinner"; +> = {0.0}; +/* display dof factors per pixel */ +bool dofdebug +< + string UIName = "DoFDebug"; + string UIWidget = "Checkbox"; +> = {false}; +/* two-pass blur, makes you shortsighted */ +bool doftwopass +< + string UIName = "DoFTwoPass"; + string UIWidget = "Checkbox"; +> = {false}; +/* disable depth of field, in case you want just the contour filter */ +bool dofdisable +< + string UIName = "DoFDisable"; + string UIWidget = "Checkbox"; +> = {false}; +/* enable depth of field smoothing (3x3 gaussian blur, slight fps loss) */ +bool dofsmooth +< + string UIName = "DoFSmoothing"; + string UIWidget = "Checkbox"; +> = {true}; +/* enable depth of field sky cutoff (keeps sky sharp, but may look awful) */ +bool dofcutoff +< + string UIName = "DoFCutoff"; + string UIWidget = "Checkbox"; +> = {false}; +/* disable edge detect filters */ +bool noedge +< + string UIName = "EdgeDisable"; + string UIWidget = "Checkbox"; +> = {true}; +/* use "edge vision" instead of contour filter (just because it looks fancy) */ +bool edgeview +< + string UIName = "EdgeView"; + string UIWidget = "Checkbox"; +> = {false}; +/* factors */ +float edgefadepow +< + string UIName = "EdgeFadePower"; + string UIWidget = "Spinner"; +> = {1.6}; +float edgefademult +< + string UIName = "EdgeFadeMultiplier"; + string UIWidget = "Spinner"; +> = {16.0}; +float edgepow +< + string UIName = "EdgePower"; + string UIWidget = "Spinner"; +> = {1.5}; +float edgemult +< + string UIName = "EdgeMultiplier"; + string UIWidget = "Spinner"; +> = {32.0}; \ No newline at end of file diff --git a/enbsunsprite.tga b/enbsunsprite.tga deleted file mode 100644 index 28c4d5f..0000000 Binary files a/enbsunsprite.tga and /dev/null differ diff --git a/menbbloomfilters.fx b/menbbloomfilters.fx deleted file mode 100644 index 49ac9a9..0000000 --- a/menbbloomfilters.fx +++ /dev/null @@ -1,160 +0,0 @@ -/* - menbbloomfilters.fx : MariENB bloom shader routines. - (C)2013-2014 Marisa Kirisame, UnSX Team. - Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. -*/ -VS_OUTPUT_POST VS_Bloom(VS_INPUT_POST IN) -{ - VS_OUTPUT_POST OUT; - float4 pos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1); - OUT.vpos = pos; - OUT.txcoord0.xy = IN.txcoord0.xy+TempParameters.xy; - return OUT; -} -/* pre-pass bloom texture preparation */ -float4 PS_BloomPrePass(VS_OUTPUT_POST In) : COLOR -{ - float2 coord = In.txcoord0.xy; - if ( !preenable ) - return tex2D(SamplerBloom1,coord); - float4 res = 0.0; - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*presample; - int i, j; - if ( prelevel == 1 ) - { - for ( i=-2; i<=2; i++ ) - for ( j=-2; j<=2; j++ ) - res += gauss5[abs(i)][abs(j)] - *tex2D(SamplerBloom1,coord+float2(i,j) - *bof); - } - else if ( prelevel == 2 ) - { - for ( i=-3; i<=3; i++ ) - for ( j=-3; j<=3; j++ ) - res += gauss7[abs(i)][abs(j)] - *tex2D(SamplerBloom1,coord+float2(i,j) - *bof); - } - else - { - for ( i=-1; i<=1; i++ ) - for ( j=-1; j<=1; j++ ) - res += gauss3[abs(i)][abs(j)] - *tex2D(SamplerBloom1,coord+float2(i,j) - *bof); - } - return res; -} -/* multipass */ -float4 PS_BloomTexture(VS_OUTPUT_POST In) : COLOR -{ - float2 coord = In.txcoord0.xy; - float4 res = 0.0; - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*postsample - *(TempParameters.w+0.25); - int i, j; - if ( postlevel == 1 ) - { - for ( i=-2; i<=2; i++ ) - for ( j=-2; j<=2; j++ ) - res += gauss5[abs(i)][abs(j)] - *tex2D(SamplerBloom1,coord+float2(i,j) - *bof); - } - else if ( postlevel == 2 ) - { - for ( i=-3; i<=3; i++ ) - for ( j=-3; j<=3; j++ ) - res += gauss7[abs(i)][abs(j)] - *tex2D(SamplerBloom1,coord+float2(i,j) - *bof); - } - else - { - for ( i=-1; i<=1; i++ ) - for ( j=-1; j<=1; j++ ) - res += gauss3[abs(i)][abs(j)] - *tex2D(SamplerBloom1,coord+float2(i,j) - *bof); - } - return res; -} -/* end pass */ -float4 PS_BloomPostPass(VS_OUTPUT_POST In) : COLOR -{ - float2 coord = In.txcoord0.xy; - float4 res = (tex2D(SamplerBloom1,coord)+tex2D(SamplerBloom2,coord) - +tex2D(SamplerBloom3,coord)+tex2D(SamplerBloom4,coord) - +tex2D(SamplerBloom5,coord)+tex2D(SamplerBloom6,coord) - +tex2D(SamplerBloom7,coord)+tex2D(SamplerBloom8,coord))*0.125; - res = pow(saturate(res+bloombump),bloompower); - float ress = (res.r+res.g+res.b)/3.0; - res = res*bloomsaturation+ress*(1.0-bloomsaturation); - res.rgb *= bloomintensity; - return res; -} -/* techniques */ -technique BloomPrePass -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Bloom(); - PixelShader = compile ps_3_0 PS_BloomPrePass(); - ColorWriteEnable = ALPHA|RED|GREEN|BLUE; - CullMode = NONE; - AlphaBlendEnable = FALSE; - AlphaTestEnable = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique BloomTexture1 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Bloom(); - PixelShader = compile ps_3_0 PS_BloomTexture(); - ColorWriteEnable = ALPHA|RED|GREEN|BLUE; - CullMode = NONE; - AlphaBlendEnable = FALSE; - AlphaTestEnable = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique BloomTexture2 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Bloom(); - PixelShader = compile ps_3_0 PS_BloomTexture(); - ColorWriteEnable = ALPHA|RED|GREEN|BLUE; - CullMode = NONE; - AlphaBlendEnable = FALSE; - AlphaTestEnable = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique BloomPostPass -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Bloom(); - PixelShader = compile ps_3_0 PS_BloomPostPass(); - ColorWriteEnable = ALPHA|RED|GREEN|BLUE; - CullMode = NONE; - AlphaBlendEnable = FALSE; - AlphaTestEnable = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} diff --git a/menbbloomsettings.fx b/menbbloomsettings.fx deleted file mode 100644 index ebf0cce..0000000 --- a/menbbloomsettings.fx +++ /dev/null @@ -1,60 +0,0 @@ -/* - menbbloomsettings.fx : MariENB bloom user-tweakable variables. - (C)2013-2014 Marisa Kirisame, UnSX Team. - Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. -*/ -/* do bloom prepass blur */ -bool preenable -< - string UIName = "PreEnable"; - string UIWidget = "Checkbox"; -> = {true}; -/* bloom prepass blur radius */ -float presample -< - string UIName = "PreSample"; - string UIWidget = "Spinner"; -> = {2.0}; -/* bloom prepass blur level */ -int prelevel -< - string UIName = "PreLevel"; - string UIWidget = "Spinner"; -> = {2}; -/* bloom postpass blur radius */ -float postsample -< - string UIName = "PostSample"; - string UIWidget = "Spinner"; -> = {8.0}; -/* bloom postpas blur level */ -int postlevel -< - string UIName = "PostLevel"; - string UIWidget = "Spinner"; -> = {1}; -/* bloom intensity */ -float bloomintensity -< - string UIName = "BloomIntensity"; - string UIWidget = "Spinner"; -> = {0.25}; -/* bloom power */ -float bloompower -< - string UIName = "BloomPower"; - string UIWidget = "Spinner"; -> = {1.4}; -/* bloom saturation */ -float bloomsaturation -< - string UIName = "BloomSaturation"; - string UIWidget = "Spinner"; -> = {0.3}; -/* bloom offset */ -float bloombump -< - string UIName = "BloomBump"; - string UIWidget = "Spinner"; -> = {-0.10}; diff --git a/menbeffectfilters.fx b/menbeffectfilters.fx deleted file mode 100644 index 3480e6b..0000000 --- a/menbeffectfilters.fx +++ /dev/null @@ -1,179 +0,0 @@ -/* - menbeffectfilters.fx : MariENB base shader routines. - (C)2013-2014 Marisa Kirisame, UnSX Team. - Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. -*/ -VS_OUTPUT_POST VS_Pass( VS_INPUT_POST IN ) -{ - VS_OUTPUT_POST OUT; - OUT.vpos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0); - OUT.txcoord0.xy = IN.txcoord0.xy; - return OUT; -} -/* MariENB shader */ -float4 PS_Mari( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR -{ - float2 coord = IN.txcoord0.xy; - float4 res = tex2D(_s0,coord); - float tod = ENightDayFactor; - float ind = EInteriorFactor; - /* screen mud goes here */ - if ( softbloom ) - { - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*softbloomsmp; - int i,j; - if ( softbloomlv == 1 ) - { - for ( i=-2; i<=2; i++ ) - for ( j=-2; j<=2; j++ ) - res += gauss5[abs(i)][abs(j)] - *tex2D(_s3,coord+float2(i,j) - *bof)*EBloomAmount; - } - else if ( softbloomlv == 2 ) - { - for ( i=-3; i<=3; i++ ) - for ( j=-3; j<=3; j++ ) - res += gauss7[abs(i)][abs(j)] - *tex2D(_s3,coord+float2(i,j) - *bof)*EBloomAmount; - } - else - { - for ( i=-1; i<=1; i++ ) - for ( j=-1; j<=1; j++ ) - res += gauss3[abs(i)][abs(j)] - *tex2D(_s3,coord+float2(i,j) - *bof)*EBloomAmount; - } - } - else - res += tex2D(_s3,coord)*EBloomAmount; - float4 adapt = tex2D(_s4,0.5); - /* adaptation */ - if ( aenable ) - { - float adapts = clamp((adapt.r+adapt.g+adapt.b)/3.0,0.0,50.0); - float amin = lerp(lerp(amin_n,amin_d,tod),lerp(amin_in,amin_id, - tod),ind); - float amax = lerp(lerp(amax_n,amax_d,tod),lerp(amax_in,amax_id, - tod),ind); - res.rgb = res.rgb/(adapts*amax+amin); - } - /* tone mapping */ - if ( tmenable ) - { - float tone = lerp(lerp(tone_n,tone_d,tod),lerp(tone_in,tone_id, - tod),ind); - float tovr = lerp(lerp(tovr_n,tovr_d,tod),lerp(tovr_in,tovr_id, - tod),ind); - res.rgb = (res.rgb*(1+res.rgb/tovr))/(res.rgb+tone); - } - /* palette texture */ - if ( palenable ) - { - float palb = lerp(lerp(palb_n,palb_d,tod),lerp(palb_in,palb_id, - tod),ind); - res.rgb = saturate(res.rgb); - float3 bright = adapt.rgb/(adapt.rgb+1.0); - float brights = (bright.r+bright.g+bright.b)/3.0; - float3 pal = float3(tex2D(_s7,float2(res.r,brights)).r, - tex2D(_s7,float2(res.g,brights)).g, - tex2D(_s7,float2(res.b,brights)).b); - res.rgb = res.rgb*(1.0-palb)+pal.rgb*palb; - } - res.a = 1.0; - return res; - -} -/* - So... let me get this straight... rather than simply switching techniques, - Boris just compiles the program twice with and without this macro, then - toggling "UseEffect" switches between each variation? What the fuck? -*/ -#ifndef ENB_FLIPTECHNIQUE -technique Shader_D6EC7DD1 -#else -technique Shader_ORIGINALPOSTPROCESS -#endif -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_Mari(); - ColorWriteEnable = ALPHA|RED|GREEN|BLUE; - ZEnable = FALSE; - ZWriteEnable = FALSE; - CullMode = NONE; - AlphaTestEnable = FALSE; - AlphaBlendEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -#ifndef ENB_FLIPTECHNIQUE -technique Shader_ORIGINALPOSTPROCESS -#else -technique Shader_D6EC7DD1 -#endif -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - /* - >2014 - >inline assembly - Have to keep this part intact, sadly - Boris what the fuck have you done - */ - PixelShader = asm - { - ps_3_0 - def c6,0,0,0,0 - def c7,0.212500006,0.715399981,0.0720999986,1 - dcl_texcoord v0.xy - dcl_2d s0 - dcl_2d s1 - dcl_2d s2 - rcp r0.x,c2.y - texld r1,v0,s2 - mul r0.yz,r1.xxyw,c1.y - rcp r0.w,r0.y - mul r0.z,r0.w,r0.z - texld r1,v0,s1 - mul r1.xyz,r1,c1.y - dp3 r0.w,c7,r1 - mul r1.w,r0.w,r0.z - mad r0.z,r0.z,r0.w,c7.w - rcp r0.z,r0.z - mad r0.x,r1.w,r0.x,c7.w - mul r0.x,r0.x,r1.w - mul r0.x,r0.z,r0.x - cmp r0.x,-r0.w,c6.x,r0.x - rcp r0.z,r0.w - mul r0.z,r0.z,r0.x - add_sat r0.x,-r0.x,c2.x - texld r2,v0,s0 - mul r2.xyz,r2,c1.y - mul r2.xyz,r0.x,r2 - mad r1.xyz,r1,r0.z,r2 - dp3 r0.x,r1,c7 - mov r1.w,c7.w - lrp r2,c3.x,r1,r0.x - mad r1,r0.x,c4,-r2 - mad r1,c4.w,r1,r2 - mad r1,c3.w,r1,-r0.y - mad r0,c3.z,r1,r0.y - add r1,-r0,c5 - mad oC0,c5.w,r1,r0 - }; - ColorWriteEnable = ALPHA|RED|GREEN|BLUE; - ZEnable = FALSE; - ZWriteEnable = FALSE; - CullMode = NONE; - AlphaTestEnable = FALSE; - AlphaBlendEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} diff --git a/menbeffectsettings.fx b/menbeffectsettings.fx deleted file mode 100644 index 668945d..0000000 --- a/menbeffectsettings.fx +++ /dev/null @@ -1,140 +0,0 @@ -/* - menbeffectsettings.fx : MariENB base user-tweakable variables. - (C)2013-2014 Marisa Kirisame, UnSX Team. - Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. -*/ -/* Soften bloom */ -bool softbloom -< - string UIName = "EnableBloomSoften"; - string UIWidget = "Checkbox"; -> = {true}; -int softbloomlv -< - string UIName = "BloomSoftenLevel"; - string UIWidget = "Slider"; -> = {2}; -float softbloomsmp -< - string UIName = "BloomSoftenRadius"; - string UIWidget = "Slider"; -> = {1.0}; -/* Adaptation */ -bool aenable -< - string UIName = "EnableAdaptation"; - string UIWidget = "Checkbox"; -> = {true}; -float amin_n -< - string UIName = "AdaptationMinNight"; - string UIWidget = "Spinner"; -> = {0.0}; -float amin_d -< - string UIName = "AdaptationMinDay"; - string UIWidget = "Spinner"; -> = {0.0}; -float amin_in -< - string UIName = "AdaptationMinInteriorNight"; - string UIWidget = "Spinner"; -> = {0.0}; -float amin_id -< - string UIName = "AdaptationMinInteriorDay"; - string UIWidget = "Spinner"; -> = {0.0}; -float amax_n -< - string UIName = "AdaptationMaxNight"; - string UIWidget = "Spinner"; -> = {1.0}; -float amax_d -< - string UIName = "AdaptationMaxDay"; - string UIWidget = "Spinner"; -> = {1.0}; -float amax_in -< - string UIName = "AdaptationMaxInteriorNight"; - string UIWidget = "Spinner"; -> = {1.0}; -float amax_id -< - string UIName = "AdaptationMaxInteriorDay"; - string UIWidget = "Spinner"; -> = {1.0}; -/* tone mapping */ -bool tmenable -< - string UIName = "EnableTonemapping"; - string UIWidget = "Checkbox"; -> = {true}; -float tone_n -< - string UIName = "TonemappingNight"; - string UIWidget = "Spinner"; -> = {1.0}; -float tone_d -< - string UIName = "TonemappingDay"; - string UIWidget = "Spinner"; -> = {1.0}; -float tone_in -< - string UIName = "TonemappingInteriorNight"; - string UIWidget = "Spinner"; -> = {1.0}; -float tone_id -< - string UIName = "TonemappingInteriorDay"; - string UIWidget = "Spinner"; -> = {1.0}; -float tovr_n -< - string UIName = "TonemappingOversaturationNight"; - string UIWidget = "Spinner"; -> = {1.0}; -float tovr_d -< - string UIName = "TonemappingOversaturationDay"; - string UIWidget = "Spinner"; -> = {1.0}; -float tovr_in -< - string UIName = "TonemappingOversaturationInteriorNight"; - string UIWidget = "Spinner"; -> = {1.0}; -float tovr_id -< - string UIName = "TonemappingOversaturationInteriorDay"; - string UIWidget = "Spinner"; -> = {1.0}; -/* palette texture */ -bool palenable -< - string UIName = "EnablePalette"; - string UIWidget = "Checkbox"; -> = {true}; -float palb_n -< - string UIName = "PaletteBlendNight"; - string UIWidget = "Spinner"; -> = {1.0}; -float palb_d -< - string UIName = "PaletteBlendDay"; - string UIWidget = "Spinner"; -> = {1.0}; -float palb_in -< - string UIName = "PaletteBlendInteriorNight"; - string UIWidget = "Spinner"; -> = {1.0}; -float palb_id -< - string UIName = "PaletteBlendInteriorDay"; - string UIWidget = "Spinner"; -> = {1.0}; diff --git a/menbfilters.fx b/menbfilters.fx deleted file mode 100644 index d800576..0000000 --- a/menbfilters.fx +++ /dev/null @@ -1,627 +0,0 @@ -/* - menbfilters.fx : MariENB shader routines. - (C)2013-2014 Marisa Kirisame, UnSX Team. - Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. -*/ -VS_OUTPUT_POST VS_Pass( VS_INPUT_POST IN ) -{ - VS_OUTPUT_POST OUT; - OUT.vpos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0); - OUT.txcoord.xy = IN.txcoord.xy; - return OUT; -} -float4 PS_FXAA( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR -{ - float2 coord = float2(IN.txcoord.x,IN.txcoord.y); - float4 res = tex2D(SamplerColor,coord); - if ( !fxaaenable ) - return res; - float fxaareducemul_ = 1.0/max(abs(fxaareducemul),1.0); - float fxaareducemin_ = 1.0/max(abs(fxaareducemin),1.0); - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = float2(1.0/bresl.x,1.0/bresl.y); - float3 rgbNW = tex2D(SamplerColor,coord+float2(-1,-1)*bof).rgb; - float3 rgbNE = tex2D(SamplerColor,coord+float2(1,-1)*bof).rgb; - float3 rgbSW = tex2D(SamplerColor,coord+float2(-1,1)*bof).rgb; - float3 rgbSE = tex2D(SamplerColor,coord+float2(1,1)*bof).rgb; - float3 rgbM = tex2D(SamplerColor,coord).rgb; - float3 luma = float3(0.299,0.587,0.114); - float lumaNW = dot(rgbNW,luma); - float lumaNE = dot(rgbNE,luma); - float lumaSW = dot(rgbSW,luma); - float lumaSE = dot(rgbSE,luma); - float lumaM = dot(rgbM,luma); - float lumaMin = min(lumaM,min(min(lumaNW,lumaNE),min(lumaSW,lumaSE))); - float lumaMax = max(lumaM,max(max(lumaNW,lumaNE),max(lumaSW,lumaSE))); - float2 dir = float2(-((lumaNW+lumaNE)-(lumaSW+lumaSE)),((lumaNW+lumaSW) - -(lumaNE+lumaSE))); - float dirReduce = max((lumaNW+lumaNE+lumaSW+lumaSE)*(0.25 - *fxaareducemul_),fxaareducemin_); - float rcpDirMin = 1.0/(min(abs(dir.x),abs(dir.y))+dirReduce); - dir = min(float2(fxaaspanmax,fxaaspanmax),max(float2(-fxaaspanmax, - -fxaaspanmax),dir*rcpDirMin))/bresl; - float3 rgbA = (1.0/2.0)*(tex2D(SamplerColor,coord+dir*(1.0/3.0-0.5)) - .rgb+tex2D(SamplerColor,coord+dir*(2.0/3.0-0.5)).rgb); - float3 rgbB = rgbA*(1.0/2.0)+(1.0/4.0)*(tex2D(SamplerColor,coord+dir - *(0.0/3.0-0.5)).rgb+tex2D(SamplerColor,coord+dir*(3.0/3.0-0.5)) - .rgb); - float lumaB = dot(rgbB,luma); - if ( (lumaB < lumaMin) || (lumaB > lumaMax) ) - res.rgb = rgbA; - else - res.rgb = rgbB; - res.a = 1.0; - return res; -} -float4 PS_Enhance( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR -{ - float2 coord = float2(IN.txcoord.x,IN.txcoord.y); - float4 res = tex2D(SamplerColor,coord); - float tod = ENightDayFactor; - float ind = EInteriorFactor; - if ( bbenable ) - { - float4 origcolor = res; - float4 tcol = float4(0,0,0,0); - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float bbsamp = lerp(lerp(bbsamp_n,bbsamp_d,tod),lerp(bbsamp_in, - bbsamp_id,tod),ind); - float bbradius = lerp(lerp(bbradius_n,bbradius_d,tod), - lerp(bbradius_in,bbradius_id,tod),ind); - float bbcurve = lerp(lerp(bbcurve_n,bbcurve_d,tod), - lerp(bbcurve_in,bbcurve_id,tod),ind); - float bbpow = lerp(lerp(bbpow_n,bbpow_d,tod),lerp(bbpow_in, - bbpow_id,tod),ind); - float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*bbsamp; - int i, j; - if ( bblevel == 1 ) - { - for ( i=-2; i<=2; i++ ) - for ( j=-2; j<=2; j++ ) - tcol += gauss5[abs(i)][abs(j)] - *tex2D(SamplerColor,coord - +float2(i,j)*bof); - } - else if ( bblevel == 2 ) - { - for ( i=-3; i<=3; i++ ) - for ( j=-3; j<=3; j++ ) - tcol += gauss7[abs(i)][abs(j)] - *tex2D(SamplerColor,coord - +float2(i,j)*bof); - } - else - { - for ( i=-1; i<=1; i++ ) - for ( j=-1; j<=1; j++ ) - tcol += gauss3[abs(i)][abs(j)] - *tex2D(SamplerColor,coord - +float2(i,j)*bof); - } - float2 uv = (coord.xy-0.5)*bbradius; - float vig = clamp(pow(saturate(dot(uv.xy,uv.xy)),bbcurve),0.0 - ,1.0); - res.rgb = lerp(origcolor.rgb,tcol.rgb,clamp(vig*bbpow,0.0 - ,1.0)); - } - if ( dkenable ) - { - float2 bresl = float2(1.0,ScreenSize.w); - float dkradius = lerp(lerp(dkradius_n,dkradius_d,tod), - lerp(dkradius_in,dkradius_id,tod),ind); - float dkbump = lerp(lerp(dkbump_n,dkbump_d,tod),lerp(dkbump_in, - dkbump_id,tod),ind); - float dkcurve = lerp(lerp(dkcurve_n,dkcurve_d,tod), - lerp(dkcurve_in,dkcurve_id,tod),ind); - float2 bof = bresl*dkradius; - float val = 0.0; - if ( coord.x < bof.x ) - val = lerp(val,1,1.0-coord.x/bof.x); - if ( coord.y < bof.y ) - val = lerp(val,1,1.0-coord.y/bof.y); - if ( 1.0-coord.x < bof.x ) - val = lerp(val,1,1.0-(1.0-coord.x)/bof.x); - if ( 1.0-coord.y < bof.y ) - val = lerp(val,1,1.0-(1.0-coord.y)/bof.y); - val = clamp(val*dkbump,0,1); - res.rgb = lerp(res.rgb,float3(0,0,0),pow(val,dkcurve)); - } - if ( ne ) - { - float nf = lerp(lerp(nf_n,nf_d,tod),lerp(nf_in,nf_id,tod),ind); - float ns = lerp(lerp(ns_n,ns_d,tod),lerp(ns_in,ns_id,tod),ind); - float nj = lerp(lerp(nj_n,nj_d,tod),lerp(nj_in,nj_id,tod),ind); - float ni = lerp(lerp(ni_n,ni_d,tod),lerp(ni_in,ni_id,tod),ind); - float ts = Timer.x*nf; - ts *= 1000.0; - float2 tcs = coord; - float2 s1 = tcs+float2(0,ts); - float2 s2 = tcs+float2(ts,0); - float2 s3 = tcs+float2(ts,ts); - float n1, n2, n3; - float2 nr = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w) - /NOISERES; - if ( np ) - { - n1 = tex2D(SamplerNoise2,s1*nm11*nr).r; - n2 = tex2D(SamplerNoise2,s2*nm12*nr).g; - n3 = tex2D(SamplerNoise2,s3*nm13*nr).b; - s1 = tcs+float2(ts+n1*nk,n2*nk); - s2 = tcs+float2(n2,ts+n3*nk); - s3 = tcs+float2(ts+n3*nk,ts+n1*nk); - n1 = tex2D(SamplerNoise2,s1*nm21*nr).r; - n2 = tex2D(SamplerNoise2,s2*nm22*nr).g; - n3 = tex2D(SamplerNoise2,s3*nm23*nr).b; - } - else - { - n1 = tex2D(SamplerNoise3,s1*nm1*nr).r; - n2 = tex2D(SamplerNoise3,s2*nm2*nr).g; - n3 = tex2D(SamplerNoise3,s3*nm3*nr).b; - } - float n4 = (n1+n2+n3)/3; - float3 ng = float3(n4,n4,n4); - float3 nc = float3(n1,n2,n3); - float3 nt = pow(clamp(lerp(ng,nc,ns),0.0,1.0),nj); - if ( nb == 1 ) - res.rgb += nt*ni; - else if ( nb == 2 ) - { - res.r = (res.r<0.5)?(2.0*res.r*(0.5+(nt.r*ni))) - :(1.0-2.0*(1.0-res.r)*(1.0-((0.5+(nt.r*ni))))); - res.g = (res.g<0.5)?(2.0*res.g*(0.5+(nt.g*ni))) - :(1.0-2.0*(1.0-res.g)*(1.0-((0.5+(nt.g*ni))))); - res.b = (res.b<0.5)?(2.0*res.b*(0.5+(nt.b*ni))) - :(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); - else - res.rgb = lerp(res.rgb,nt,ni); - } - if ( compenable ) - { - float compbump = lerp(lerp(compbump_n,compbump_d,tod), - lerp(compbump_in,compbump_id,tod),ind); - float comppow = lerp(lerp(comppow_n,comppow_d,tod), - lerp(comppow_in,comppow_id,tod),ind); - float compsat = lerp(lerp(compsat_n,compsat_d,tod), - lerp(compsat_in,compsat_id,tod),ind); - float compfactor = lerp(lerp(compfactor_n,compfactor_d,tod), - lerp(compfactor_in,compfactor_id,tod),ind); - float4 ovr = pow(saturate(res+compbump),comppow); - float ovrs = (ovr.r+ovr.g+ovr.b)/3.0; - ovr = ovr*compsat+ovrs*(1.0-compsat); - res.rgb -= ovr.rgb*compfactor; - } - if ( gradeenable ) - { - float gradeadd_r = lerp(lerp(gradeadd_r_n,gradeadd_r_d,tod), - lerp(gradeadd_r_in,gradeadd_r_id,tod),ind); - float gradeadd_g = lerp(lerp(gradeadd_g_n,gradeadd_g_d,tod), - lerp(gradeadd_g_in,gradeadd_g_id,tod),ind); - float gradeadd_b = lerp(lerp(gradeadd_b_n,gradeadd_b_d,tod), - lerp(gradeadd_b_in,gradeadd_b_id,tod),ind); - float grademul_r = lerp(lerp(grademul_r_n,grademul_r_d,tod), - lerp(grademul_r_in,grademul_r_id,tod),ind); - float grademul_g = lerp(lerp(grademul_g_n,grademul_g_d,tod), - lerp(grademul_g_in,grademul_g_id,tod),ind); - float grademul_b = lerp(lerp(grademul_b_n,grademul_b_d,tod), - lerp(grademul_b_in,grademul_b_id,tod),ind); - float gradepow_r = lerp(lerp(gradepow_r_n,gradepow_r_d,tod), - lerp(gradepow_r_in,gradepow_r_id,tod),ind); - float gradepow_g = lerp(lerp(gradepow_g_n,gradepow_g_d,tod), - lerp(gradepow_g_in,gradepow_g_id,tod),ind); - float gradepow_b = lerp(lerp(gradepow_b_n,gradepow_b_d,tod), - lerp(gradepow_b_in,gradepow_b_id,tod),ind); - float gradecol_r = lerp(lerp(gradecol_r_n,gradecol_r_d,tod), - lerp(gradecol_r_in,gradecol_r_id,tod),ind); - float gradecol_g = lerp(lerp(gradecol_g_n,gradecol_g_d,tod), - lerp(gradecol_g_in,gradecol_g_id,tod),ind); - float gradecol_b = lerp(lerp(gradecol_b_n,gradecol_b_d,tod), - lerp(gradecol_b_in,gradecol_b_id,tod),ind); - float gradecolfact = lerp(lerp(gradecolfact_n,gradecolfact_d, - tod),lerp(gradecolfact_in,gradecolfact_id,tod),ind); - float3 gradeadd = float3(gradeadd_r,gradeadd_g,gradeadd_b); - float3 grademul = float3(grademul_r,grademul_g,grademul_b); - float3 gradepow = float3(gradepow_r,gradepow_g,gradepow_b); - float3 gradecol = float3(gradecol_r,gradecol_g,gradecol_b); - res.rgb = saturate(res.rgb+gradeadd); - res.rgb = saturate(res.rgb*grademul); - res.rgb = saturate(pow(res.rgb,gradepow)); - float tonev = (res.r+res.g+res.b)/3.0; - float3 tonecolor = gradecol*tonev; - res.rgb = res.rgb*(1.0-gradecolfact)+tonecolor*gradecolfact; - } - if ( dirtenable ) - { - float2 r = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w) - /NOISERES; - float4 ncolc = tex2D(SamplerNoise1,coord*dirtmc*r); - float2 ds = float2(res.r+res.g,res.g+res.b)/2.0; - float4 ncoll = tex2D(SamplerNoise1,ds*dirtml); - res = lerp(res,(ncolc.r+1)*res, - dirtcfactor*saturate(1-(ds.x+ds.y)*0.25)); - res = lerp(res,(ncoll.r+1)*res, - dirtlfactor*saturate(1-(ds.x+ds.y)*0.25)); - } - if ( boxe ) - { - res.rgb = saturate(res.rgb); - float boxf = pow(clamp(boxh-abs(2.0*coord.x-1.0),0.0,1.0),boxb) - *pow(clamp(boxv-abs(2.0*coord.y-1.0),0.0,1.0),boxb); - res.rgb = lerp(res.rgb*(1.0-boxa),res.rgb,boxf); - } - res.a = 1.0; - return res; -} -float4 ReducePrepass( in float4 color, in float2 coord ) -{ - color.rgb = pow(max(color.rgb,0.0),bgamma); - float4 dac; - dac.a = (color.r+color.g+color.b)/3.0; - dac.rgb = dac.a+(color.rgb-dac.a)*bsaturation; - if ( bdither == 0 ) - dac.rgb += bdbump+tex2D(SamplerNoise3,coord/NOISERES).r*bdmult; - else if ( bdither == 1 ) - dac.rgb += bdbump+checkers[int(coord.x%2)+2*int(coord.y%2)] - *bdmult; - else if ( bdither == 2 ) - dac.rgb += bdbump+ordered2[int(coord.x%2)+2*int(coord.y%2)] - *bdmult; - else if ( bdither == 3 ) - dac.rgb += bdbump+ordered3[int(coord.x%3)+3*int(coord.y%3)] - *bdmult; - else if ( bdither == 4 ) - dac.rgb += bdbump+ordered4[int(coord.x%4)+4*int(coord.y%4)] - *bdmult; - else if ( bdither == 5 ) - dac.rgb += bdbump+ordered8[int(coord.x%8)+8*int(coord.y%8)] - *bdmult; - dac = saturate(dac); - return dac; -} -float4 ReduceCGA( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - if ( bcganum == 0 ) - { - dac.a = (dac.r+dac.g+dac.b)/3.0; - return (dac.a>0.5); - } - float dist = 2.0; - int idx = 0; - if ( bcganum == 1 ) - { - for ( int i=0; i<4; i++ ) - { - if ( distance(dac.rgb,cga1l[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,cga1l[i]); - } - } - color.rgb = cga1l[idx]; - } - else if ( bcganum == 2 ) - { - for ( int i=0; i<4; i++ ) - { - if ( distance(dac.rgb,cga1h[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,cga1h[i]); - } - } - color.rgb = cga1h[idx]; - } - else if ( bcganum == 3 ) - { - for ( int i=0; i<4; i++ ) - { - if ( distance(dac.rgb,cga2l[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,cga2l[i]); - } - } - color.rgb = cga2l[idx]; - } - else if ( bcganum == 4 ) - { - for ( int i=0; i<4; i++ ) - { - if ( distance(dac.rgb,cga2h[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,cga2h[i]); - } - } - color.rgb = cga2h[idx]; - } - else if ( bcganum == 5 ) - { - for ( int i=0; i<4; i++ ) - { - if ( distance(dac.rgb,cga3l[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,cga3l[i]); - } - } - color.rgb = cga3l[idx]; - } - else if ( bcganum == 6 ) - { - for ( int i=0; i<4; i++ ) - { - if ( distance(dac.rgb,cga3h[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,cga3h[i]); - } - } - color.rgb = cga3h[idx]; - } - return color; -} -float4 ReduceEGA( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - float dist = 2.0; - int idx = 0; - if ( beganum == 0 ) - { - for ( int i=0; i<16; i++ ) - { - if ( distance(dac.rgb,stdega[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,stdega[i]); - } - } - color.rgb = stdega[idx]; - } - else - { - for ( int i=0; i<16; i++ ) - { - if ( distance(dac.rgb,aosega[i]) < dist ) - { - idx = i; - dist = distance(dac.rgb,aosega[i]); - } - } - color.rgb = aosega[idx]; - } - return color; -} -float4 ReduceRGB2( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - color.rgb = trunc(dac.rgb*4.0)/4.0; - return color; -} -float4 ReduceRGB323( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - color.rgb = trunc(dac.rgb*float3(8.0,4.0,8.0))/float3(8.0,4.0,8.0); - return color; -} -float4 ReduceRGB4( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - color.rgb = trunc(dac.rgb*16.0)/16.0; - return color; -} -float4 ReduceRGB565( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - color.rgb = trunc(dac.rgb*float3(32.0,64.0,32.0)) - /float3(32.0,64.0,32.0); - return color; -} -float4 ReduceRGB6( in float4 color, in float2 coord ) -{ - float4 dac = ReducePrepass(color,coord); - color.rgb = trunc(dac.rgb*64.0)/64.0; - return color; -} -float4 PS_Block( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR -{ - float2 coord = float2(IN.txcoord.x,IN.txcoord.y); - float4 res = tex2D(SamplerColor,coord); - if ( !benable ) - return res; - float2 rresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bresl; - if ( bresw <= 0 || bresh <= 0 ) - bresl = rresl; - else - { - if ( bresw <= 1.0 ) - bresl.x = rresl.x*bresw; - else - bresl.x = bresw; - if ( bresh <= 1.0 ) - bresl.y = rresl.y*bresh; - else - bresl.y = bresh; - } - float2 ncoord = (coord-float2(0.5,0.5))+float2(0.5,0.5); - ncoord = floor(ncoord*bresl)/bresl; - if ( bresw <= 0 || bresh <= 0 ) - ncoord = coord; - float4 tcol = tex2D(SamplerColor,ncoord); - /* clamp */ - if ( ncoord.x < 0 || ncoord.x >= 1 || ncoord.y < 0 || ncoord.y >= 1 ) - tcol *= 0; - if ( bpaltype == 0 ) - res = ReduceCGA(tcol,coord*bresl); - else if ( bpaltype == 1 ) - res = ReduceEGA(tcol,coord*bresl); - else if ( bpaltype == 2 ) - res = ReduceRGB2(tcol,coord*bresl); - else if ( bpaltype == 3 ) - res = ReduceRGB323(tcol,coord*bresl); - else if ( bpaltype == 4 ) - res = ReduceRGB4(tcol,coord*bresl); - else if ( bpaltype == 5 ) - res = ReduceRGB565(tcol,coord*bresl); - else if ( bpaltype == 6 ) - res = ReduceRGB6(tcol,coord*bresl); - else - res = tcol; - res.a = 1.0; - return res; -} -float4 PS_Curve( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR -{ - float2 coord = float2(IN.txcoord.x,IN.txcoord.y); - float4 res = tex2D(SamplerColor,coord); - if ( !crtenable ) - return res; - float4 tcol = res; - float3 eta = float3(1+chromaab*0.09,1+chromaab*0.06,1+chromaab*0.03); - float2 center = float2(coord.x-0.5,coord.y-0.5); - float zfact = 100.0/lenszoom; - float r2 = center.x*center.x+center.y*center.y; - float f = 0; - if( lensdistc == 0.0) - f = 1+r2*lensdist*0.1; - else - f = 1+r2*(lensdist*0.1+lensdistc*0.1*sqrt(r2)); - float x = f*zfact*center.x+0.5; - float y = f*zfact*center.y+0.5; - float2 rcoord = (f*eta.r)*zfact*(center.xy*0.5)+0.5; - float2 gcoord = (f*eta.g)*zfact*(center.xy*0.5)+0.5; - float2 bcoord = (f*eta.b)*zfact*(center.xy*0.5)+0.5; - float4 idist = float4(tex2D(SamplerColor,rcoord).r, - tex2D(SamplerColor,gcoord).g, - tex2D(SamplerColor,bcoord).b, - tex2D(SamplerColor,float2(x,y)).a); - res.rgb = idist.rgb; - res.a = 1.0; - return res; -} -float4 PS_Sharp( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR -{ - float2 coord = float2(IN.txcoord.x,IN.txcoord.y); - float4 res = tex2D(SamplerColor,coord); - if ( !shenable ) - return res; - float4 origcolor = res; - float4 tcol = float4(0,0,0,0); - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*shsamp; - int i, j; - tcol = float4(0,0,0,0); - for ( i=-2; i<=2; i++ ) - for ( j=-2; j<=2; j++ ) - tcol += shmat[abs(i)][abs(j)] - *tex2D(SamplerColor,coord+float2(i,j)*bof); - res = res*(1.0-shblend)+tcol*shblend; - res.a = 1.0; - return res; -} -technique PostProcess -{ - pass FXAA - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_FXAA(); - AlphaBlendEnable = TRUE; - SrcBlend = ONE; - DestBlend = ONE; - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcess2 -{ - pass Reel - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_Enhance(); - AlphaBlendEnable = TRUE; - SrcBlend = ONE; - DestBlend = ONE; - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcess3 -{ - pass Turboslut - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_Sharp(); - AlphaBlendEnable = TRUE; - SrcBlend = ONE; - DestBlend = ONE; - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcess4 -{ - pass Retrograde - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_Block(); - AlphaBlendEnable = TRUE; - SrcBlend = ONE; - DestBlend = ONE; - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcess5 -{ - pass Butt - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_Curve(); - AlphaBlendEnable = TRUE; - SrcBlend = ONE; - DestBlend = ONE; - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} diff --git a/menbinternals.fx b/menbinternals.fx deleted file mode 100644 index f097f53..0000000 --- a/menbinternals.fx +++ /dev/null @@ -1,277 +0,0 @@ -/* - menbinternals.fx : MariENB internal variables. - (C)2013-2014 Marisa Kirisame, UnSX Team. - Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. -*/ -/* texture sizes */ -#define NOISERES 256.0 -/* sharpen matrix quadrant */ -static const float3x3 shmat = -{ - 5.76,-0.5,-0.2, - -0.5,-0.25,-0.1, - -0.2,-0.1,-0.04, -}; -/* gaussian blur matrices */ -static const float2x2 gauss3 = -{ - 0.16,0.12, - 0.12,0.09 -}; -static const float3x3 gauss5 = -{ - 0.0865051903114,0.0692041522491,0.0346020761246, - 0.0692041522491,0.0553633217993,0.0276816609, - 0.0346020761246,0.0276816609,0.01384083045 -}; -static const float4x4 gauss7 = -{ - 0.0632507440209,0.0527089533508,0.0301194019147,0.011294775718, - 0.0527089533508,0.0439241277923,0.0250995015956,0.00941231309835, - 0.0301194019147,0.0250995015956,0.01434257234,0.00537846462763, - 0.011294775718,0.00941231309835,0.00537846462763,0.00201692423536 -}; -/* dithering threshold maps */ -static const float checkers[4] = -{ - 1,0, - 0,1 -}; -#define d(x) x/4.0 -static const float ordered2[4] = -{ - d(0),d(2), - d(4),d(2) -}; -#undef d -#define d(x) x/9.0 -static const float ordered3[9] = -{ - d(2),d(6),d(3), - d(5),d(0),d(8), - d(1),d(7),d(4) -}; -#undef d -#define d(x) x/16.0 -static const float ordered4[16] = -{ - d( 0),d( 8),d( 2),d(10), - d(12),d( 4),d(14),d( 6), - d( 3),d(11),d( 1),d( 9), - d(15),d( 7),d(13),d( 5) -}; -#undef d -#define d(x) x/64.0 -static const float ordered8[64] = -{ - d( 0),d(48),d(12),d(60),d( 3),d(51),d(15),d(63), - d(32),d(16),d(44),d(28),d(35),d(19),d(47),d(31), - d( 8),d(56),d( 4),d(52),d(11),d(59),d( 7),d(55), - d(40),d(24),d(36),d(20),d(43),d(27),d(39),d(23), - d( 2),d(50),d(14),d(62),d( 1),d(49),d(13),d(61), - d(34),d(18),d(46),d(30),d(33),d(17),d(45),d(29), - d(10),d(58),d( 6),d(54),d( 9),d(57),d( 5),d(53), - d(42),d(26),d(38),d(22),d(41),d(25),d(37),d(21) -}; -#undef d -/* palettes */ -#define d(x) x/3.0 -static const float3 cga1l[4] = -{ - float3(d(0),d(0),d(0)), - float3(d(0),d(2),d(2)), - float3(d(2),d(0),d(2)), - float3(d(2),d(2),d(2)) -}; -static const float3 cga1h[4] = -{ - float3(d(0),d(0),d(0)), - float3(d(1),d(3),d(3)), - float3(d(3),d(1),d(3)), - float3(d(3),d(3),d(3)) -}; -static const float3 cga2l[4] = -{ - float3(d(0),d(0),d(0)), - float3(d(0),d(2),d(0)), - float3(d(2),d(0),d(0)), - float3(d(2),d(1),d(0)) -}; -static const float3 cga2h[4] = -{ - float3(d(0),d(0),d(0)), - float3(d(1),d(3),d(1)), - float3(d(3),d(1),d(1)), - float3(d(3),d(2),d(1)) -}; -static const float3 cga3l[4] = -{ - float3(d(0),d(0),d(0)), - float3(d(0),d(2),d(2)), - float3(d(2),d(0),d(0)), - float3(d(2),d(2),d(2)) -}; -static const float3 cga3h[4] = -{ - float3(d(0),d(0),d(0)), - float3(d(1),d(3),d(3)), - float3(d(3),d(1),d(1)), - float3(d(3),d(3),d(3)) -}; -static const float3 stdega[16] = -{ - float3(d(0),d(0),d(0)), - float3(d(2),d(0),d(0)), - float3(d(0),d(2),d(0)), - float3(d(2),d(1),d(0)), - float3(d(0),d(0),d(2)), - float3(d(2),d(0),d(2)), - float3(d(0),d(2),d(2)), - float3(d(2),d(2),d(2)), - float3(d(1),d(1),d(1)), - float3(d(3),d(1),d(1)), - float3(d(1),d(3),d(1)), - float3(d(3),d(3),d(1)), - float3(d(1),d(1),d(3)), - float3(d(3),d(1),d(3)), - float3(d(1),d(3),d(3)), - float3(d(3),d(3),d(3)) -}; -#undef d -#define d(x) x/256.0 -static const float3 aosega[16] = -{ - float3(d( 0),d( 0),d( 0)), - float3(d(128),d( 0),d( 0)), - float3(d( 32),d(128),d( 0)), - float3(d(160),d( 64),d( 32)), - float3(d( 0),d( 32),d( 88)), - float3(d( 60),d( 0),d( 88)), - float3(d( 16),d(160),d(208)), - float3(d( 88),d( 88),d( 88)), - float3(d( 32),d( 32),d( 32)), - float3(d(256),d( 64),d( 64)), - float3(d( 72),d(256),d( 64)), - float3(d(256),d(224),d( 60)), - float3(d( 48),d(128),d(256)), - float3(d(192),d( 48),d(256)), - float3(d( 72),d(224),d(256)), - float3(d(256),d(256),d(256)), -}; -#undef d -/* standard stuff (not all used) */ -float tempF1; -float tempF2; -float tempF3; -float tempF4; -float tempF5; -float tempF6; -float tempF7; -float tempF8; -float tempF9; -float tempF0; -float4 ScreenSize; -float ENightDayFactor; -float EInteriorFactor; -float4 Timer; -float FieldOfView; -/* samplers and textures (some not yet used) */ -texture2D texColor; -texture2D texDepth; -texture2D texPalette; -sampler2D SamplerColor = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = LINEAR; - MipFilter = NONE; - AddressU = Clamp; - AddressV = Clamp; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -sampler2D SamplerDepth = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = LINEAR; - MipFilter = NONE; - AddressU = Clamp; - AddressV = Clamp; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -sampler2D SamplerPalette = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = LINEAR; - MipFilter = NONE; - AddressU = Clamp; - AddressV = Clamp; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -texture2D texNoise1 -< - string ResourceName = "menbnoise1.png"; ->; -texture2D texNoise2 -< - string ResourceName = "menbnoise2.png"; ->; -texture2D texNoise3 -< - string ResourceName = "menbnoise3.png"; ->; -sampler2D SamplerNoise1 = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = POINT; - MipFilter = NONE; - AddressU = Wrap; - AddressV = Wrap; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -sampler2D SamplerNoise2 = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = POINT; - MipFilter = NONE; - AddressU = Wrap; - AddressV = Wrap; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -sampler2D SamplerNoise3 = sampler_state -{ - Texture = ; - MinFilter = LINEAR; - MagFilter = LINEAR; - MipFilter = NONE; - AddressU = Wrap; - AddressV = Wrap; - SRGBTexture = FALSE; - MaxMipLevel = 0; - MipMapLodBias = 0; -}; -/* whatever */ -struct VS_OUTPUT_POST -{ - float4 vpos : POSITION; - float2 txcoord : TEXCOORD0; -}; -struct VS_INPUT_POST -{ - float3 pos : POSITION; - float2 txcoord : TEXCOORD0; -}; diff --git a/menblens.png b/menblens.png deleted file mode 100644 index 3c654c0..0000000 Binary files a/menblens.png and /dev/null differ diff --git a/menblensbump.png b/menblensbump.png deleted file mode 100644 index a503834..0000000 Binary files a/menblensbump.png and /dev/null differ diff --git a/menbnoise1.png b/menbnoise1.png deleted file mode 100644 index 2d794f5..0000000 Binary files a/menbnoise1.png and /dev/null differ diff --git a/menbnoise2.png b/menbnoise2.png deleted file mode 100644 index fb4bedf..0000000 Binary files a/menbnoise2.png and /dev/null differ diff --git a/menbnoise3.png b/menbnoise3.png deleted file mode 100644 index 3e57ebb..0000000 Binary files a/menbnoise3.png and /dev/null differ diff --git a/menbprepassfilters.fx b/menbprepassfilters.fx deleted file mode 100644 index 72804ce..0000000 --- a/menbprepassfilters.fx +++ /dev/null @@ -1,340 +0,0 @@ -/* - menbeffectfilters.fx : MariENB base shader routines. - (C)2013-2014 Marisa Kirisame, UnSX Team. - Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. -*/ -VS_OUTPUT_POST VS_Pass( VS_INPUT_POST IN ) -{ - VS_OUTPUT_POST OUT; - OUT.vpos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0); - OUT.txcoord.xy = IN.txcoord.xy; - return OUT; -} -/* Focus */ -float4 PS_ReadFocus( VS_OUTPUT_POST IN ) : COLOR -{ - float cfocus = tex2D(SamplerDepth,0.5).x; - if ( !focuscircle || (focusslice <= 0) || (focuscircles <= 0) ) - return cfocus; - int i, j; - float step = (1.0/focusslice); - float mfocus; - float2 coord; - float2 bof = float2(1.0,ScreenSize.w)*focusradius*0.01; - for ( i=0; i= celtrim ) - mud = 0.0; - mud *= saturate(depth*celfade); - if ( celmode == 1 ) - res.rgb = (1.0-saturate(tex2D(SamplerDepth,coord).x)) - *(1.0-saturate(mud*celblend)); - else if ( celmode == 2 ) - res.rgb *= saturate(mud*celblend); - else if ( celmode == 3 ) - res.rgb = saturate(mud*celblend); - else - res.rgb *= 1.0-saturate(mud*celblend); - return res; -} -/* 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); - float dep1 = tex2D(SamplerDepth,coord+ofs1).x; - float dep2 = tex2D(SamplerDepth,coord+ofs2).x; - float3 p1 = float3(ofs1,dep1-dep); - float3 p2 = float3(ofs2,dep2-dep); - float3 normal = cross(p1,p2); - normal.z = -normal.z; - return normalize(normal); -} -float4 PS_SSAO( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR -{ - float2 coord = IN.txcoord.xy; - float4 res = tex2D(SamplerColor,coord); - if ( !ssaoenable ) - return res; - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*ssaoradius; - float depth = tex2D(SamplerDepth,coord).x; - float3 normal = pseudonormal(depth,coord); - float2 nc = tex2D(SamplerNoise,coord).xy; - normal += ssaonoise*normalize(tex2D(SamplerNoise, - float2(1.0,ScreenSize.w)*nc*ssaonoisesize).xyz*2.0-1.0); - normal = normalize(normal); - float occ = 0.0; - int i; - for( i=0; i<16; i++ ) - { - float3 cs = ssao_samples[i]; - cs = reflect(cs,normal); - float2 tc = float2(coord+i*cs.xy*bof); - float nd = tex2D(SamplerDepth,tc).x; - float dif = nd-depth; - float fall; - if ( nd > depth ) - occ += 1.0/(1.0+(pow(dif,2))); - } - float uocc = 1.0-(occ/16.0); - uocc = saturate(pow(uocc+ssaobump,ssaopow)*ssaomult); - uocc *= saturate(depth*ssaofade); - if ( depth >= ssaotrim ) - uocc = 0.0; - if ( ssaodebug == 1 ) - return uocc; - else if ( ssaodebug == 2 ) - return (float4(normal.x,normal.y,normal.z,1.0)+1.0)*0.5; - res.a = (1.0-(uocc*ssaoblend)); - return res; -} -float4 PS_SSAO_Post( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR -{ - float2 coord = IN.txcoord.xy; - float4 res = tex2D(SamplerColor,coord); - if ( !ssaoenable ) - return res; - if ( !ssaobenable || (ssaodebug != 0) ) - return res*res.a; - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*ssaobradius; - int i,j; - res.a *= 0; - if ( ssaoblevel == 1 ) - { - for ( i=-2; i<=2; i++ ) - for ( j=-2; j<=2; j++ ) - res.a += gauss5[abs(i)][abs(j)] - *tex2D(SamplerColor,coord+float2(i,j) - *bof).a; - } - else if ( ssaoblevel == 2 ) - { - for ( i=-3; i<=3; i++ ) - for ( j=-3; j<=3; j++ ) - res.a += gauss7[abs(i)][abs(j)] - *tex2D(SamplerColor,coord+float2(i,j) - *bof).a; - } - else - { - for ( i=-1; i<=1; i++ ) - for ( j=-1; j<=1; j++ ) - res.a += gauss3[abs(i)][abs(j)] - *tex2D(SamplerColor,coord+float2(i,j) - *bof).a; - } - res *= res.a; - return res; -} -/* Depth of Field */ -float4 PS_DoF( VS_OUTPUT_POST IN, float2 vPos : VPOS, uniform int p ) : COLOR -{ - float2 coord = IN.txcoord.xy; - if ( !dofenable ) - return tex2D(SamplerColor,coord); - float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); - float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*dofradius - *pow(clamp(doflevel+1,1,3),p); - float dep = tex2D(SamplerDepth,coord).x; - float foc = tex2D(SamplerFocus,coord).x; - float dfc = abs(dep-foc); - dfc = saturate(pow(dfc+dofbump,dofpow)*dofmult); - if ( dep >= doftrim ) - dfc = 0.0; - int i,j; - float4 res = 0.0; - if ( doflevel == 1 ) - { - for ( i=-2; i<=2; i++ ) - for ( j=-2; j<=2; j++ ) - res += gauss5[abs(i)][abs(j)] - *tex2D(SamplerColor,coord+float2(i,j) - *bof*dfc); - } - else if ( doflevel == 2 ) - { - for ( i=-3; i<=3; i++ ) - for ( j=-3; j<=3; j++ ) - res += gauss7[abs(i)][abs(j)] - *tex2D(SamplerColor,coord+float2(i,j) - *bof*dfc); - } - else - { - for ( i=-1; i<=1; i++ ) - for ( j=-1; j<=1; j++ ) - res += gauss3[abs(i)][abs(j)] - *tex2D(SamplerColor,coord+float2(i,j) - *bof*dfc); - } - if ( dofdebug == 1 ) - return dfc; - else if ( dofdebug == 2 ) - return dep; - return (1.0-dofblend)*tex2D(SamplerColor,coord)+dofblend*res; -} -technique ReadFocus -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_ReadFocus(); - ZENABLE = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique WriteFocus -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_WriteFocus(); - ZENABLE = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcess -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_Border(); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcess2 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_SSAO(); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcess3 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_SSAO_Post(); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcess4 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_DoF(0); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} -technique PostProcess5 -{ - pass p0 - { - VertexShader = compile vs_3_0 VS_Pass(); - PixelShader = compile ps_3_0 PS_DoF(1); - DitherEnable = FALSE; - ZEnable = FALSE; - CullMode = NONE; - ALPHATESTENABLE = FALSE; - SEPARATEALPHABLENDENABLE = FALSE; - AlphaBlendEnable = FALSE; - StencilEnable = FALSE; - FogEnable = FALSE; - SRGBWRITEENABLE = FALSE; - } -} diff --git a/menbprepasssettings.fx b/menbprepasssettings.fx deleted file mode 100644 index 88b79ab..0000000 --- a/menbprepasssettings.fx +++ /dev/null @@ -1,215 +0,0 @@ -/* - menbprepasssettings.fx : MariENB prepass user-tweakable variables. - (C)2013-2014 Marisa Kirisame, UnSX Team. - Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. -*/ -/* circle average focus */ -bool focuscircle -< - string UIName = "FocusCircleEnable"; - string UIWidget = "Checkbox"; -> = {false}; -int focusslice -< - string UIName = "FocusCircleSlices"; - string UIWidget = "Spinner"; -> = {4}; -int focuscircles -< - string UIName = "FocusCircleCircles"; - string UIWidget = "Spinner"; -> = {1}; -float focusradius -< - string UIName = "FocusCircleRadius"; - string UIWidget = "Spinner"; -> = {12.5}; -float focusmix -< - string UIName = "FocusCircleMix"; - string UIWidget = "Spinner"; -> = {0.25}; -/* cel filter */ -bool celenable -< - string UIName = "CelEnable"; - string UIWidget = "Checkbox"; -> = {false}; -int celmode -< - string UIName = "CelMode"; - string UIWidget = "Spinner"; -> = {0}; -float celradius -< - string UIName = "CelRadius"; - string UIWidget = "Spinner"; -> = {1.0}; -float celpower -< - string UIName = "CelPower"; - string UIWidget = "Spinner"; -> = {1.0}; -float celbump -< - string UIName = "CelBump"; - string UIWidget = "Spinner"; -> = {0.0}; -float celmult -< - string UIName = "CelMult"; - string UIWidget = "Spinner"; -> = {1.0}; -float celblend -< - string UIName = "CelBlend"; - string UIWidget = "Spinner"; -> = {1.0}; -float celtrim -< - string UIName = "CelTrim"; - string UIWidget = "Spinner"; -> = {1.0}; -float celfade -< - string UIName = "CelFade"; - string UIWidget = "Spinner"; -> = {0.5}; -/* ssao filter */ -bool ssaoenable -< - string UIName = "SSAOEnable"; - string UIWidget = "Checkbox"; -> = {true}; -int ssaodebug -< - string UIName = "SSAODebug"; - string UIWidget = "Spinner"; -> = 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"; - string UIWidget = "Spinner"; -> = {1.0}; -float ssaonoise -< - string UIName = "SSAONoise"; - string UIWidget = "Spinner"; -> = {0.1}; -float ssaonoisesize -< - string UIName = "SSAONoiseSize"; - string UIWidget = "Spinner"; -> = {64.0}; -float ssaotrim -< - string UIName = "SSAOTrim"; - string UIWidget = "Spinner"; -> = {1.0}; -float ssaofade -< - string UIName = "SSAOFade"; - string UIWidget = "Spinner"; -> = {0.5}; -float ssaobump -< - string UIName = "SSAOBump"; - string UIWidget = "Spinner"; -> = {0.0}; -float ssaomult -< - string UIName = "SSAOMult"; - string UIWidget = "Spinner"; -> = {1.0}; -float ssaopow -< - string UIName = "SSAOPower"; - string UIWidget = "Spinner"; -> = {1.0}; -float ssaoblend -< - string UIName = "SSAOBlend"; - string UIWidget = "Spinner"; -> = {1.0}; -bool ssaobenable -< - string UIName = "SSAOBlurEnable"; - string UIWidget = "Spinner"; -> = {true}; -float ssaobradius -< - string UIName = "SSAOBlurRadius"; - string UIWidget = "Spinner"; -> = {1.0}; -int ssaoblevel -< - string UIName = "SSAOBlurLevel"; - string UIWidget = "Spinner"; -> = {2}; -/* dof filter */ -bool dofenable -< - string UIName = "DoFEnable"; - string UIWidget = "Checkbox"; -> = {true}; -int dofdebug -< - string UIName = "DoFDebug"; - string UIWidget = "Spinner"; -> = {0}; -float dofradius -< - string UIName = "DoFRadius"; - string UIWidget = "Spinner"; -> = {1.0}; -int doflevel -< - string UIName = "DoFLevel"; - string UIWidget = "Spinner"; -> = {2}; -float dofbump -< - string UIName = "DoFBump"; - string UIWidget = "Spinner"; -> = {0.0}; -float dofmult -< - string UIName = "DoFMult"; - string UIWidget = "Spinner"; -> = {1.0}; -float dofpow -< - string UIName = "DoFPow"; - string UIWidget = "Spinner"; -> = {1.0}; -float dofblend -< - string UIName = "DoFBlend"; - string UIWidget = "Spinner"; -> = {1.0}; -float doftrim -< - string UIName = "DoFTrim"; - string UIWidget = "Spinner"; -> = {1.0}; \ No newline at end of file diff --git a/menbsettings.fx b/menbsettings.fx deleted file mode 100644 index aba1f74..0000000 --- a/menbsettings.fx +++ /dev/null @@ -1,872 +0,0 @@ -/* - menbsettings.fx : MariENB user-tweakable variables. - (C)2013-2014 Marisa Kirisame, UnSX Team. - Part of MariENB, the personal ENB of Marisa. - Released under the MIT License. -*/ -/* FXAA */ -bool fxaaenable -< - string UIName = "EnableFXAA"; - string UIWidget = "Checkbox"; -> = {false}; -float fxaaspanmax -< - string UIName = "FXAASpanMax"; - string UIWidget = "Checkbox"; -> = {4.0}; -float fxaareducemul -< - string UIName = "FXAAReduceMul"; - string UIWidget = "Checkbox"; -> = {16.0}; -float fxaareducemin -< - string UIName = "FXAAReduceMin"; - string UIWidget = "Checkbox"; -> = {128.0}; -/* border blurring */ -bool bbenable -< - string UIName = "BlurEnable"; - string UIWidget = "Checkbox"; -> = {true}; -/* border blur sampling range */ -float bbsamp_n -< - string UIName = "BlurSampleNight"; - string UIWidget = "Spinner"; -> = {1.0}; -float bbsamp_d -< - string UIName = "BlurSampleDay"; - string UIWidget = "Spinner"; -> = {1.0}; -float bbsamp_in -< - string UIName = "BlurSampleInteriorNight"; - string UIWidget = "Spinner"; -> = {1.0}; -float bbsamp_id -< - string UIName = "BlurSampleInteriorDay"; - string UIWidget = "Spinner"; -> = {1.0}; -/* border blur level */ -int bblevel -< - string UIName = "BlurLevel"; - string UIWidget = "Spinner"; -> = {1}; -/* blend power of blur */ -float bbpow_n -< - string UIName = "BlurPowerNight"; - string UIWidget = "Spinner"; -> = {15.46}; -float bbpow_d -< - string UIName = "BlurPowerDay"; - string UIWidget = "Spinner"; -> = {15.46}; -float bbpow_in -< - string UIName = "BlurPowerInteriorNight"; - string UIWidget = "Spinner"; -> = {15.46}; -float bbpow_id -< - string UIName = "BlurPowerInteriorDay"; - string UIWidget = "Spinner"; -> = {15.46}; -/* falloff curve of blur towards center of screen */ -float bbcurve_n -< - string UIName = "BlurCurveNight"; - string UIWidget = "Spinner"; -> = {1.2}; -float bbcurve_d -< - string UIName = "BlurCurveDay"; - string UIWidget = "Spinner"; -> = {1.2}; -float bbcurve_in -< - string UIName = "BlurCurveInteriorNight"; - string UIWidget = "Spinner"; -> = {1.2}; -float bbcurve_id -< - string UIName = "BlurCurveInteriorDay"; - string UIWidget = "Spinner"; -> = {1.2}; -/* blur falloff radius */ -float bbradius_n -< - string UIName = "BlurRadiusNight"; - string UIWidget = "Spinner"; -> = {0.69}; -float bbradius_d -< - string UIName = "BlurRadiusDay"; - string UIWidget = "Spinner"; -> = {0.69}; -float bbradius_in -< - string UIName = "BlurRadiusInteriorNight"; - string UIWidget = "Spinner"; -> = {0.69}; -float bbradius_id -< - string UIName = "BlurRadiusInteriorDay"; - string UIWidget = "Spinner"; -> = {0.69}; -/* border darkening */ -bool dkenable -< - string UIName = "DarkEnable"; - string UIWidget = "Checkbox"; -> = {true}; -/* radius of darkening (relative to screen width) */ -float dkradius_n -< - string UIName = "DarkRadiusNight"; - string UIWidget = "Spinner"; -> = {0.37}; -float dkradius_d -< - string UIName = "DarkRadiusDay"; - string UIWidget = "Spinner"; -> = {0.37}; -float dkradius_in -< - string UIName = "DarkRadiusInteriorNight"; - string UIWidget = "Spinner"; -> = {0.37}; -float dkradius_id -< - string UIName = "DarkRadiusInteriorDay"; - string UIWidget = "Spinner"; -> = {0.37}; -/* falloff of darkening */ -float dkcurve_n -< - string UIName = "DarkCurveNight"; - string UIWidget = "Spinner"; -> = {1.94}; -float dkcurve_d -< - string UIName = "DarkCurveDay"; - string UIWidget = "Spinner"; -> = {1.94}; -float dkcurve_in -< - string UIName = "DarkCurveInteriorNight"; - string UIWidget = "Spinner"; -> = {1.94}; -float dkcurve_id -< - string UIName = "DarkCurveInteriorDay"; - string UIWidget = "Spinner"; -> = {1.94}; -/* bump of darkening */ -float dkbump_n -< - string UIName = "DarkBumpNight"; - string UIWidget = "Spinner"; -> = {0.79}; -float dkbump_d -< - string UIName = "DarkBumpDay"; - string UIWidget = "Spinner"; -> = {0.79}; -float dkbump_in -< - string UIName = "DarkBumpInteriorNight"; - string UIWidget = "Spinner"; -> = {0.79}; -float dkbump_id -< - string UIName = "DarkBumpInteriorDay"; - string UIWidget = "Spinner"; -> = {0.79}; -/* shine/bloom compensation */ -bool compenable -< - string UIName = "EnableCompensate"; - string UIWidget = "Checkbox"; -> = {true}; -/* compensation factor */ -float compfactor_n -< - string UIName = "CompensateFactorNight"; - string UIWidget = "Spinner"; -> = {0.19}; -float compfactor_d -< - string UIName = "CompensateFactorDay"; - string UIWidget = "Spinner"; -> = {0.19}; -float compfactor_in -< - string UIName = "CompensateFactorInteriorNight"; - string UIWidget = "Spinner"; -> = {0.19}; -float compfactor_id -< - string UIName = "CompensateFactorInteriorDay"; - string UIWidget = "Spinner"; -> = {0.19}; -/* compensation power */ -float comppow_n -< - string UIName = "CompensatePowerNight"; - string UIWidget = "Spinner"; -> = {1.05}; -float comppow_d -< - string UIName = "CompensatePowerDay"; - string UIWidget = "Spinner"; -> = {1.05}; -float comppow_in -< - string UIName = "CompensatePowerInteriorNight"; - string UIWidget = "Spinner"; -> = {1.05}; -float comppow_id -< - string UIName = "CompensatePowerInteriorDay"; - string UIWidget = "Spinner"; -> = {1.05}; -/* compensation saturation */ -float compsat_n -< - string UIName = "CompensateSaturationNight"; - string UIWidget = "Spinner"; -> = {0.3}; -float compsat_d -< - string UIName = "CompensateSaturationDay"; - string UIWidget = "Spinner"; -> = {0.3}; -float compsat_in -< - string UIName = "CompensateSaturationInteriorNight"; - string UIWidget = "Spinner"; -> = {0.3}; -float compsat_id -< - string UIName = "CompensateSaturationInteriorDay"; - string UIWidget = "Spinner"; -> = {0.3}; -/* brightness bump for compensation */ -float compbump_n -< - string UIName = "CompensateBumpNight"; - string UIWidget = "Spinner"; -> = {0.0}; -float compbump_d -< - string UIName = "CompensateBumpDay"; - string UIWidget = "Spinner"; -> = {0.0}; -float compbump_in -< - string UIName = "CompensateBumpInteriorNight"; - string UIWidget = "Spinner"; -> = {0.0}; -float compbump_id -< - string UIName = "CompensateBumpInteriorDay"; - string UIWidget = "Spinner"; -> = {0.0}; -bool gradeenable -< - string UIName = "EnableGrading"; - string UIWidget = "Checkbox"; -> = {true}; -/* miscellaneous color grading parameters */ -float gradeadd_r_n -< - string UIName = "GradingAddRNight"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradeadd_g_n -< - string UIName = "GradingAddGNight"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradeadd_b_n -< - string UIName = "GradingAddBNight"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradeadd_r_d -< - string UIName = "GradingAddRDay"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradeadd_g_d -< - string UIName = "GradingAddGDay"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradeadd_b_d -< - string UIName = "GradingAddBDay"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradeadd_r_in -< - string UIName = "GradingAddRInteriorNight"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradeadd_g_in -< - string UIName = "GradingAddGInteriorNight"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradeadd_b_in -< - string UIName = "GradingAddBInteriorNight"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradeadd_r_id -< - string UIName = "GradingAddRInteriorDay"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradeadd_g_id -< - string UIName = "GradingAddGInteriorDay"; - string UIWidget = "Spinner"; -> = {0.0}; -float gradeadd_b_id -< - string UIName = "GradingAddBInteriorDay"; - string UIWidget = "Spinner"; -> = {0.0}; -float grademul_r_n -< - string UIName = "GradingMulRNight"; - string UIWidget = "Spinner"; -> = {1.02}; -float grademul_g_n -< - string UIName = "GradingMulGNight"; - string UIWidget = "Spinner"; -> = {1.08}; -float grademul_b_n -< - string UIName = "GradingMulBNight"; - string UIWidget = "Spinner"; -> = {1.04}; -float grademul_r_d -< - string UIName = "GradingMulRDay"; - string UIWidget = "Spinner"; -> = {1.02}; -float grademul_g_d -< - string UIName = "GradingMulGDay"; - string UIWidget = "Spinner"; -> = {1.08}; -float grademul_b_d -< - string UIName = "GradingMulBDay"; - string UIWidget = "Spinner"; -> = {1.04}; -float grademul_r_in -< - string UIName = "GradingMulRInteriorNight"; - string UIWidget = "Spinner"; -> = {1.02}; -float grademul_g_in -< - string UIName = "GradingMulGInteriorNight"; - string UIWidget = "Spinner"; -> = {1.08}; -float grademul_b_in -< - string UIName = "GradingMulBInteriorNight"; - string UIWidget = "Spinner"; -> = {1.04}; -float grademul_r_id -< - string UIName = "GradingMulRInteriorDay"; - string UIWidget = "Spinner"; -> = {1.02}; -float grademul_g_id -< - string UIName = "GradingMulGInteriorDay"; - string UIWidget = "Spinner"; -> = {1.08}; -float grademul_b_id -< - string UIName = "GradingMulBInteriorDay"; - string UIWidget = "Spinner"; -> = {1.04}; -float gradepow_r_n -< - string UIName = "GradingPowRNight"; - string UIWidget = "Spinner"; -> = {1.07}; -float gradepow_g_n -< - string UIName = "GradingPowGNight"; - string UIWidget = "Spinner"; -> = {1.12}; -float gradepow_b_n -< - string UIName = "GradingPowBNight"; - string UIWidget = "Spinner"; -> = {1.08}; -float gradepow_r_d -< - string UIName = "GradingPowRDay"; - string UIWidget = "Spinner"; -> = {1.07}; -float gradepow_g_d -< - string UIName = "GradingPowGDay"; - string UIWidget = "Spinner"; -> = {1.12}; -float gradepow_b_d -< - string UIName = "GradingPowBDay"; - string UIWidget = "Spinner"; -> = {1.08}; -float gradepow_r_in -< - string UIName = "GradingPowRInteriorNight"; - string UIWidget = "Spinner"; -> = {1.07}; -float gradepow_g_in -< - string UIName = "GradingPowGInteriorNight"; - string UIWidget = "Spinner"; -> = {1.12}; -float gradepow_b_in -< - string UIName = "GradingPowBInteriorNight"; - string UIWidget = "Spinner"; -> = {1.08}; -float gradepow_r_id -< - string UIName = "GradingPowRInteriorDay"; - string UIWidget = "Spinner"; -> = {1.07}; -float gradepow_g_id -< - string UIName = "GradingPowGInteriorDay"; - string UIWidget = "Spinner"; -> = {1.12}; -float gradepow_b_id -< - string UIName = "GradingPowBInteriorDay"; - string UIWidget = "Spinner"; -> = {1.08}; -float gradecol_r_n -< - string UIName = "GradingColRNight"; - string UIWidget = "Spinner"; -> = {0.04}; -float gradecol_g_n -< - string UIName = "GradingColGNight"; - string UIWidget = "Spinner"; -> = {0.07}; -float gradecol_b_n -< - string UIName = "GradingColBNight"; - string UIWidget = "Spinner"; -> = {0.59}; -float gradecol_r_d -< - string UIName = "GradingColRDay"; - string UIWidget = "Spinner"; -> = {0.04}; -float gradecol_g_d -< - string UIName = "GradingColGDay"; - string UIWidget = "Spinner"; -> = {0.07}; -float gradecol_b_d -< - string UIName = "GradingColBDay"; - string UIWidget = "Spinner"; -> = {0.59}; -float gradecol_r_in -< - string UIName = "GradingColRInteriorNight"; - string UIWidget = "Spinner"; -> = {0.04}; -float gradecol_g_in -< - string UIName = "GradingColGInteriorNight"; - string UIWidget = "Spinner"; -> = {0.07}; -float gradecol_b_in -< - string UIName = "GradingColBInteriorNight"; - string UIWidget = "Spinner"; -> = {0.59}; -float gradecol_r_id -< - string UIName = "GradingColRInteriorDay"; - string UIWidget = "Spinner"; -> = {0.04}; -float gradecol_g_id -< - string UIName = "GradingColGInteriorDay"; - string UIWidget = "Spinner"; -> = {0.07}; -float gradecol_b_id -< - string UIName = "GradingColBInteriorDay"; - string UIWidget = "Spinner"; -> = {0.59}; -float gradecolfact_n -< - string UIName = "GradingColFactorNight"; - string UIWidget = "Spinner"; -> = {-0.24}; -float gradecolfact_d -< - string UIName = "GradingColFactorDay"; - string UIWidget = "Spinner"; -> = {-0.24}; -float gradecolfact_in -< - string UIName = "GradingColFactorInteriorNight"; - string UIWidget = "Spinner"; -> = {-0.24}; -float gradecolfact_id -< - string UIName = "GradingColFactorInteriorDay"; - string UIWidget = "Spinner"; -> = {-0.24}; -/* Soft grain */ -bool ne -< - string UIName = "EnableSoftGrain"; - string UIWidget = "Checkbox"; -> = {true}; -/* soft grain speed */ -float nf_n -< - string UIName = "SoftGrainSpeedNight"; - string UIWidget = "Spinner"; -> = {2.68}; -float nf_d -< - string UIName = "SoftGrainSpeedDay"; - string UIWidget = "Spinner"; -> = {2.68}; -float nf_in -< - string UIName = "SoftGrainSpeedInteriorNight"; - string UIWidget = "Spinner"; -> = {2.68}; -float nf_id -< - string UIName = "SoftGrainSpeedInteriorDay"; - string UIWidget = "Spinner"; -> = {2.68}; -/* soft grain intensity */ -float ni_n -< - string UIName = "SoftGrainIntensityNight"; - string UIWidget = "Spinner"; -> = {0.04}; -float ni_d -< - string UIName = "SoftGrainIntensityDay"; - string UIWidget = "Spinner"; -> = {0.04}; -float ni_in -< - string UIName = "SoftGrainIntensityInteriorNight"; - string UIWidget = "Spinner"; -> = {0.04}; -float ni_id -< - string UIName = "SoftGrainIntensityInteriorDay"; - string UIWidget = "Spinner"; -> = {0.04}; -/* soft grain saturation */ -float ns_n -< - string UIName = "SoftGrainSaturationNight"; - string UIWidget = "Spinner"; -> = {0.09}; -float ns_d -< - string UIName = "SoftGrainSaturationDay"; - string UIWidget = "Spinner"; -> = {0.09}; -float ns_in -< - string UIName = "SoftGrainSaturationInteriorNight"; - string UIWidget = "Spinner"; -> = {0.09}; -float ns_id -< - string UIName = "SoftGrainSaturationInteriorDay"; - string UIWidget = "Spinner"; -> = {0.09}; -/* Two-pass noise */ -bool np -< - string UIName = "SoftGrainTwopass"; - string UIWidget = "Checkbox"; -> = {true}; -/* grain blend function: 0 normal, 1 add, 2 overlay, 3 multiply */ -int nb -< - string UIName = "SoftGrainBlendfunc"; - string UIWidget = "Spinner"; -> = {1}; -/* grain deviation */ -float nk -< - string UIName = "SoftGrainDeviation"; - string UIWidget = "Spinner"; -> = {0.05}; -/* grain magnification */ -float nm1 -< - string UIName = "SoftGrainMagnification1"; - string UIWidget = "Spinner"; -> = {1.25}; -float nm2 -< - string UIName = "SoftGrainMagnification2"; - string UIWidget = "Spinner"; -> = {0.64}; -float nm3 -< - string UIName = "SoftGrainMagnification3"; - string UIWidget = "Spinner"; -> = {0.35}; -/* grain magnification pass 1 */ -float nm11 -< - string UIName = "SoftGrainMagnification11"; - string UIWidget = "Spinner"; -> = {2.05}; -float nm12 -< - string UIName = "SoftGrainMagnification12"; - string UIWidget = "Spinner"; -> = {3.11}; -float nm13 -< - string UIName = "SoftGrainMagnification13"; - string UIWidget = "Spinner"; -> = {2.22}; -/* grain magnification pass 2 */ -float nm21 -< - string UIName = "SoftGrainMagnification21"; - string UIWidget = "Spinner"; -> = {4.25}; -float nm22 -< - string UIName = "SoftGrainMagnification22"; - string UIWidget = "Spinner"; -> = {0.42}; -float nm23 -< - string UIName = "SoftGrainMagnification23"; - string UIWidget = "Spinner"; -> = {6.29}; -/* grain power */ -float nj_n -< - string UIName = "SoftGrainPowerNight"; - string UIWidget = "Spinner"; -> = {2.93}; -float nj_d -< - string UIName = "SoftGrainPowerDay"; - string UIWidget = "Spinner"; -> = {2.93}; -float nj_in -< - string UIName = "SoftGrainPowerInteriorNight"; - string UIWidget = "Spinner"; -> = {2.93}; -float nj_id -< - string UIName = "SoftGrainPowerInteriorDay"; - string UIWidget = "Spinner"; -> = {2.93}; -/* Block graphics filter with palette reduction */ -bool benable -< - string UIName = "EnableBlockGFX"; - string UIWidget = "Checkbox"; -> = {false}; -/* emulated resolution for block graphics (0 or less for real resolution) */ -float bresw -< - string UIName = "BlockGFXResolutionW"; - string UIWidget = "Spinner"; -> = {1.0}; -float bresh -< - string UIName = "BlockGFXResolutionH"; - string UIWidget = "Spinner"; -> = {1.0}; -/* palette type for block graphics */ -int bpaltype -< - string UIName = "BlockGFXpalette"; - string UIWidget = "Spinner"; -> = {5}; -/* CGA subpalette */ -int bcganum -< - string UIName = "BlockGFXcgamode"; - string UIWidget = "Spinner"; -> = {0}; -/* EGA subpalette */ -int beganum -< - string UIName = "BlockGFXegamode"; - string UIWidget = "Spinner"; -> = {0}; -/* Dithering method */ -int bdither -< - string UIName= "BlockGFXDither"; - string UIWidget = "Spinner"; -> = {4}; -/* Gamma modifier */ -float bgamma -< - string UIName= "BlockGFXPrepassGamma"; - string UIWidget = "Spinner"; -> = {1.0}; -/* dither bump */ -float bdbump -< - string UIName= "BlockGFXDitherBump"; - string UIWidget = "Spinner"; -> = {-0.01}; -/* dither multiplier */ -float bdmult -< - string UIName= "BlockGFXDitherMultiplier"; - string UIWidget = "Spinner"; -> = {0.02}; -/* dither saturation */ -float bsaturation -< - string UIName= "BlockGFXPrepassSaturation"; - string UIWidget = "Spinner"; -> = {1.0}; -/* Dirty screen effect (static noise) */ -bool dirtenable -< - string UIName = "EnableDirt"; - string UIWidget = "Checkbox"; -> = {true}; -/* dirt amount */ -float dirtcfactor -< - string UIName = "DirtCoordFactor"; - string UIWidget = "Spinner"; -> = {0.09}; -float dirtlfactor -< - string UIName = "DirtLuminanceFactor"; - string UIWidget = "Spinner"; -> = {0.0}; -float dirtmc -< - string UIName = "DirtCoordMagnification"; - string UIWidget = "Spinner"; -> = {3.04}; -float dirtml -< - string UIName = "DirtLuminanceMagnification"; - string UIWidget = "Spinner"; -> = {1.0}; -/* Letterbox */ -bool boxe -< - string UIName = "EnableBox"; - string UIWidget = "Checkbox"; -> = {true}; -/* horizontal factor */ -float boxh -< - string UIName = "BoxHorizontal"; - string UIWidget = "Spinner"; -> = {1.5}; -/* vertical factor */ -float boxv -< - string UIName = "BoxVertical"; - string UIWidget = "Spinner"; -> = {1.0}; -/* softening */ -float boxb -< - string UIName = "BoxSoften"; - string UIWidget = "Spinner"; -> = {0.02}; -/* box alpha */ -float boxa -< - string UIName = "BoxAlpha"; - string UIWidget = "Spinner"; -> = {6.07}; -/* Use CRT curvature shader */ -bool crtenable -< - string UIName = "EnableCurvature"; - string UIWidget = "Checkbox"; -> = {false}; -/* chromatic aberration on CRT: fancy effect that isn't really realistic */ -float chromaab -< - string UIName = "CurveChromaticAberration"; - string UIWidget = "Spinner"; -> = {0.93}; -/* curvature lens zoom (0.5 = none) */ -float lenszoom -< - string UIName = "CurveZoom"; - string UIWidget = "Spinner"; -> = {50.0}; -/* curvature lens distortion */ -float lensdist -< - string UIName = "CurveLens"; - string UIWidget = "Spinner"; -> = {0.0}; -/* curvature CUBIC lens distortion */ -float lensdistc -< - string UIName = "CurveLensCubic"; - string UIWidget = "Spinner"; -> = {0.0}; -/* Use sharpening filter */ -bool shenable -< - string UIName = "EnableSharpen"; - string UIWidget = "Checkbox"; -> = {false}; -float shsamp -< - string UIName = "SharpenSample"; - string UIWidget = "Spinner"; -> = {0.6}; -float shblend -< - string UIName = "SharpenBlend"; - string UIWidget = "Spinner"; -> = {0.2};