Alpha 2
|
|
@ -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.
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
||||
|
||||
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.
|
||||
|
|
|
|||
12
effect.txt
|
|
@ -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"
|
||||
BIN
enblensmask.png
|
Before Width: | Height: | Size: 1.2 MiB |
BIN
enbpalette.bmp
|
Before Width: | Height: | Size: 192 KiB |
597
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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
BIN
enbseries/enbpalette.bmp
Normal file
|
After Width: | Height: | Size: 192 KiB |
|
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4 KiB |
|
|
@ -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;
|
||||
153
enbseries/menbbloomfilters.fx
Normal file
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
90
enbseries/menbbloomsettings.fx
Normal file
|
|
@ -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};
|
||||
221
enbseries/menbeffectfilters.fx
Normal file
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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 = <texs1>;
|
||||
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 = <texs2>;
|
||||
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 = <texs3>;
|
||||
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 = <texs4>;
|
||||
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 = <texs7>;
|
||||
MinFilter = POINT;
|
||||
MagFilter = POINT;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Clamp;
|
||||
AddressV = Clamp;
|
||||
402
enbseries/menbeffectsettings.fx
Normal file
|
|
@ -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};
|
||||
298
enbseries/menbprepassfilters.fx
Normal file
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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 = <texNoise>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Wrap;
|
||||
AddressV = Wrap;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerFocus = sampler_state
|
||||
{
|
||||
Texture = <texFocus>;
|
||||
306
enbseries/menbprepasssettings.fx
Normal file
|
|
@ -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};
|
||||
BIN
enbsunsprite.tga
|
Before Width: | Height: | Size: 361 KiB |
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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};
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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};
|
||||
627
menbfilters.fx
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
277
menbinternals.fx
|
|
@ -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 = <texColor>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Clamp;
|
||||
AddressV = Clamp;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerDepth = sampler_state
|
||||
{
|
||||
Texture = <texDepth>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Clamp;
|
||||
AddressV = Clamp;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerPalette = sampler_state
|
||||
{
|
||||
Texture = <texPalette>;
|
||||
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 = <texNoise1>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = POINT;
|
||||
MipFilter = NONE;
|
||||
AddressU = Wrap;
|
||||
AddressV = Wrap;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerNoise2 = sampler_state
|
||||
{
|
||||
Texture = <texNoise2>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = POINT;
|
||||
MipFilter = NONE;
|
||||
AddressU = Wrap;
|
||||
AddressV = Wrap;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerNoise3 = sampler_state
|
||||
{
|
||||
Texture = <texNoise3>;
|
||||
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;
|
||||
};
|
||||
BIN
menblens.png
|
Before Width: | Height: | Size: 1.6 MiB |
BIN
menblensbump.png
|
Before Width: | Height: | Size: 2 MiB |
BIN
menbnoise1.png
|
Before Width: | Height: | Size: 181 KiB |
BIN
menbnoise2.png
|
Before Width: | Height: | Size: 108 KiB |
BIN
menbnoise3.png
|
Before Width: | Height: | Size: 193 KiB |
|
|
@ -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<focuscircles; i++ )
|
||||
{
|
||||
mfocus = 0.0;
|
||||
for ( j=0; j<focusslice; j++ )
|
||||
{
|
||||
coord.x = 0.5+cos(2.0*pi*float(j)*step)*bof.x;
|
||||
coord.y = 0.5+sin(2.0*pi*float(j)*step)*bof.y;
|
||||
mfocus += step*tex2D(SamplerDepth,coord).x;
|
||||
}
|
||||
bof *= 0.5;
|
||||
cfocus = (1.0-focusmix)*cfocus+focusmix*mfocus;
|
||||
}
|
||||
return cfocus;
|
||||
}
|
||||
float4 PS_WriteFocus( VS_OUTPUT_POST IN ) : COLOR
|
||||
{
|
||||
return max(lerp(tex2D(SamplerPrev,0.5).x,tex2D(SamplerCurr,0.5).x,
|
||||
saturate(FadeFactor)),0.0);
|
||||
}
|
||||
/* Dummy */
|
||||
float4 PS_DummyPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
||||
{
|
||||
return tex2D(SamplerColor,IN.txcoord.xy);
|
||||
}
|
||||
/* border detect */
|
||||
float4 PS_Border( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
||||
{
|
||||
float2 coord = IN.txcoord.xy;
|
||||
float4 res = tex2D(SamplerColor,coord);
|
||||
if ( !celenable )
|
||||
return res;
|
||||
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||
float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*celradius;
|
||||
float3x3 GX = {-1,0,1,-2,0,2,-1,0,1}, GY = {1,2,1,0,0,0,-1,-2,-1};
|
||||
float mdx = 0, mdy = 0, mud;
|
||||
int i,j;
|
||||
for ( i=-1; i<=1; i++ )
|
||||
{
|
||||
for ( j=-1; j<=1; j++ )
|
||||
{
|
||||
mdx += GX[i+1][j+1]*tex2D(SamplerDepth,coord
|
||||
+float2(i,j)*bof).x;
|
||||
mdy += GY[i+1][j+1]*tex2D(SamplerDepth,coord
|
||||
+float2(i,j)*bof).x;
|
||||
}
|
||||
}
|
||||
mud = pow(pow(mdx,2)+pow(mdy,2),0.5);
|
||||
mud = saturate(pow(mud+celbump,celpower)*celmult);
|
||||
float depth = tex2D(SamplerDepth,coord).x;
|
||||
if ( depth >= 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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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};
|
||||
872
menbsettings.fx
|
|
@ -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};
|
||||