1
Fork 0

MariENB FO4 3.5.0

This commit is contained in:
Marisa the Magician 2019-04-07 17:50:06 +02:00
commit f6a116122f
11 changed files with 150 additions and 788 deletions

View file

@ -67,14 +67,14 @@ GradientIntensityDusk=1.080001
GradientIntensityNight=0.410001 GradientIntensityNight=0.410001
GradientIntensityInteriorDay=1.18 GradientIntensityInteriorDay=1.18
GradientIntensityInteriorNight=0.37 GradientIntensityInteriorNight=0.37
GradientDesaturationDawn=0.35 GradientDesaturationDawn=0.0
GradientDesaturationSunrise=0.43 GradientDesaturationSunrise=0.0
GradientDesaturationDay=0.33 GradientDesaturationDay=0.0
GradientDesaturationSunset=0.45 GradientDesaturationSunset=0.0
GradientDesaturationDusk=0.36 GradientDesaturationDusk=0.0
GradientDesaturationNight=0.28 GradientDesaturationNight=0.0
GradientDesaturationInteriorDay=0.32 GradientDesaturationInteriorDay=0.0
GradientDesaturationInteriorNight=0.23 GradientDesaturationInteriorNight=0.0
GradientTopIntensityDawn=0.62 GradientTopIntensityDawn=0.62
GradientTopIntensitySunrise=0.79 GradientTopIntensitySunrise=0.79
GradientTopIntensityDay=0.990001 GradientTopIntensityDay=0.990001
@ -119,7 +119,7 @@ GradientMiddleColorFilterDawn=0.976, 0.612, 0.529
GradientMiddleColorFilterSunrise=0.984, 0.82, 0.663 GradientMiddleColorFilterSunrise=0.984, 0.82, 0.663
GradientMiddleColorFilterDay=1, 1, 1 GradientMiddleColorFilterDay=1, 1, 1
GradientMiddleColorFilterSunset=0.984, 0.784, 0.584 GradientMiddleColorFilterSunset=0.984, 0.784, 0.584
GradientMiddleColorFilterDusk=0.984, 0.651, 0.592 GradientMiddleColorFilterDusk=0.984, 0.663, 0.592
GradientMiddleColorFilterNight=0.518, 0.667, 0.988 GradientMiddleColorFilterNight=0.518, 0.667, 0.988
GradientMiddleColorFilterInteriorDay=1, 1, 1 GradientMiddleColorFilterInteriorDay=1, 1, 1
GradientMiddleColorFilterInteriorNight=0.561, 0.561, 0.976 GradientMiddleColorFilterInteriorNight=0.561, 0.561, 0.976
@ -147,11 +147,11 @@ GradientHorizonColorFilterDusk=0.992, 0.753, 0.718
GradientHorizonColorFilterNight=0.706, 0.843, 0.98 GradientHorizonColorFilterNight=0.706, 0.843, 0.98
GradientHorizonColorFilterInteriorDay=1, 1, 1 GradientHorizonColorFilterInteriorDay=1, 1, 1
GradientHorizonColorFilterInteriorNight=0.851, 0.863, 0.89 GradientHorizonColorFilterInteriorNight=0.851, 0.863, 0.89
CloudsIntensityDawn=0.87 CloudsIntensityDawn=0.64
CloudsIntensitySunrise=0.920001 CloudsIntensitySunrise=0.920001
CloudsIntensityDay=1.240001 CloudsIntensityDay=1.240001
CloudsIntensitySunset=0.940001 CloudsIntensitySunset=0.940001
CloudsIntensityDusk=0.860001 CloudsIntensityDusk=0.660001
CloudsIntensityNight=0.370001 CloudsIntensityNight=0.370001
CloudsIntensityInteriorDay=1.17 CloudsIntensityInteriorDay=1.17
CloudsIntensityInteriorNight=0.49 CloudsIntensityInteriorNight=0.49
@ -159,7 +159,7 @@ CloudsCurveDawn=0.9
CloudsCurveSunrise=0.95 CloudsCurveSunrise=0.95
CloudsCurveDay=1.0 CloudsCurveDay=1.0
CloudsCurveSunset=0.97 CloudsCurveSunset=0.97
CloudsCurveDusk=0.91 CloudsCurveDusk=0.94
CloudsCurveNight=0.84 CloudsCurveNight=0.84
CloudsCurveInteriorDay=1.02 CloudsCurveInteriorDay=1.02
CloudsCurveInteriorNight=0.83 CloudsCurveInteriorNight=0.83
@ -179,11 +179,11 @@ CloudsOpacityDusk=1.0
CloudsOpacityNight=1.0 CloudsOpacityNight=1.0
CloudsOpacityInteriorDay=1.0 CloudsOpacityInteriorDay=1.0
CloudsOpacityInteriorNight=1.0 CloudsOpacityInteriorNight=1.0
CloudsColorFilterDawn=0.937, 0.51, 0.435 CloudsColorFilterDawn=0.953, 0.639, 0.592
CloudsColorFilterSunrise=0.969, 0.749, 0.702 CloudsColorFilterSunrise=0.969, 0.749, 0.702
CloudsColorFilterDay=1, 1, 1 CloudsColorFilterDay=1, 1, 1
CloudsColorFilterSunset=0.973, 0.804, 0.745 CloudsColorFilterSunset=0.98, 0.824, 0.769
CloudsColorFilterDusk=0.976, 0.557, 0.475 CloudsColorFilterDusk=0.984, 0.667, 0.608
CloudsColorFilterNight=0.839, 0.886, 0.98 CloudsColorFilterNight=0.839, 0.886, 0.98
CloudsColorFilterInteriorDay=1, 1, 1 CloudsColorFilterInteriorDay=1, 1, 1
CloudsColorFilterInteriorNight=0.792, 0.808, 0.957 CloudsColorFilterInteriorNight=0.792, 0.808, 0.957
@ -195,14 +195,14 @@ SunIntensityDusk=1.97
SunIntensityNight=1.15 SunIntensityNight=1.15
SunIntensityInteriorDay=2.02 SunIntensityInteriorDay=2.02
SunIntensityInteriorNight=1.19 SunIntensityInteriorNight=1.19
SunDesaturationDawn=0.11 SunDesaturationDawn=0.0
SunDesaturationSunrise=0.2 SunDesaturationSunrise=0.0
SunDesaturationDay=0.33 SunDesaturationDay=0.0
SunDesaturationSunset=0.28 SunDesaturationSunset=0.0
SunDesaturationDusk=0.14 SunDesaturationDusk=0.0
SunDesaturationNight=0.08 SunDesaturationNight=0.0
SunDesaturationInteriorDay=0.35 SunDesaturationInteriorDay=0.0
SunDesaturationInteriorNight=0.22 SunDesaturationInteriorNight=0.0
SunColorFilterDawn=0.988, 0.412, 0.267 SunColorFilterDawn=0.988, 0.412, 0.267
SunColorFilterSunrise=0.992, 0.671, 0.482 SunColorFilterSunrise=0.992, 0.671, 0.482
SunColorFilterDay=1, 0.898, 0.718 SunColorFilterDay=1, 0.898, 0.718
@ -239,61 +239,61 @@ MoonColorFilterInteriorNight=0.725, 0.749, 0.843
IgnoreWeatherSystem=true IgnoreWeatherSystem=true
DirectLightingIntensityDawn=1.27 DirectLightingIntensityDawn=1.27
DirectLightingIntensitySunrise=1.47 DirectLightingIntensitySunrise=1.47
DirectLightingIntensityDay=1.72 DirectLightingIntensityDay=1.73
DirectLightingIntensitySunset=1.5 DirectLightingIntensitySunset=1.5
DirectLightingIntensityDusk=1.22 DirectLightingIntensityDusk=1.22
DirectLightingIntensityNight=1.17 DirectLightingIntensityNight=1.17
DirectLightingIntensityInteriorDay=1.64 DirectLightingIntensityInteriorDay=1.64
DirectLightingIntensityInteriorNight=1.19 DirectLightingIntensityInteriorNight=1.19
DirectLightingDesaturationDawn=0.18 DirectLightingDesaturationDawn=0.0
DirectLightingDesaturationSunrise=0.27 DirectLightingDesaturationSunrise=0.0
DirectLightingDesaturationDay=0.22 DirectLightingDesaturationDay=0.0
DirectLightingDesaturationSunset=0.28 DirectLightingDesaturationSunset=0.0
DirectLightingDesaturationDusk=0.18 DirectLightingDesaturationDusk=0.0
DirectLightingDesaturationNight=0.23 DirectLightingDesaturationNight=0.0
DirectLightingDesaturationInteriorDay=0.21 DirectLightingDesaturationInteriorDay=0.0
DirectLightingDesaturationInteriorNight=0.24 DirectLightingDesaturationInteriorNight=0.0
DirectLightingColorFilterDawn=0.984, 0.455, 0.427 DirectLightingColorFilterDawn=0.984, 0.455, 0.427
DirectLightingColorFilterSunrise=0.992, 0.824, 0.6 DirectLightingColorFilterSunrise=0.988, 0.765, 0.471
DirectLightingColorFilterDay=1, 1, 1 DirectLightingColorFilterDay=1, 0.922, 0.812
DirectLightingColorFilterSunset=0.996, 0.824, 0.722 DirectLightingColorFilterSunset=0.992, 0.729, 0.576
DirectLightingColorFilterDusk=0.984, 0.451, 0.388 DirectLightingColorFilterDusk=0.984, 0.451, 0.388
DirectLightingColorFilterNight=0.663, 0.749, 0.984 DirectLightingColorFilterNight=0.663, 0.749, 0.984
DirectLightingColorFilterInteriorDay=1, 1, 1 DirectLightingColorFilterInteriorDay=1, 1, 1
DirectLightingColorFilterInteriorNight=0.655, 0.596, 0.988 DirectLightingColorFilterInteriorNight=0.655, 0.596, 0.988
AmbientLightingIntensityDawn=0.56 AmbientLightingIntensityDawn=0.32
AmbientLightingIntensitySunrise=0.73 AmbientLightingIntensitySunrise=0.48
AmbientLightingIntensityDay=0.87 AmbientLightingIntensityDay=0.67
AmbientLightingIntensitySunset=0.74 AmbientLightingIntensitySunset=0.53
AmbientLightingIntensityDusk=0.6 AmbientLightingIntensityDusk=0.37
AmbientLightingIntensityNight=0.44 AmbientLightingIntensityNight=0.2
AmbientLightingIntensityInteriorDay=0.18 AmbientLightingIntensityInteriorDay=0.18
AmbientLightingIntensityInteriorNight=0.12 AmbientLightingIntensityInteriorNight=0.12
SkyAmbientTopIntensityDawn=0.27 SkyAmbientTopIntensityDawn=0.27
SkyAmbientTopIntensitySunrise=0.31 SkyAmbientTopIntensitySunrise=0.31
SkyAmbientTopIntensityDay=0.36 SkyAmbientTopIntensityDay=0.32
SkyAmbientTopIntensitySunset=0.32 SkyAmbientTopIntensitySunset=0.32
SkyAmbientTopIntensityDusk=0.24 SkyAmbientTopIntensityDusk=0.24
SkyAmbientTopIntensityNight=0.23 SkyAmbientTopIntensityNight=0.23
SkyAmbientTopIntensityInteriorDay=0.24 SkyAmbientTopIntensityInteriorDay=0.24
SkyAmbientTopIntensityInteriorNight=0.1 SkyAmbientTopIntensityInteriorNight=0.1
SkyAmbientBottomIntensityDawn=0.1 SkyAmbientBottomIntensityDawn=0.1
SkyAmbientBottomIntensitySunrise=0.14 SkyAmbientBottomIntensitySunrise=0.12
SkyAmbientBottomIntensityDay=0.2 SkyAmbientBottomIntensityDay=0.13
SkyAmbientBottomIntensitySunset=0.15 SkyAmbientBottomIntensitySunset=0.11
SkyAmbientBottomIntensityDusk=0.11 SkyAmbientBottomIntensityDusk=0.1
SkyAmbientBottomIntensityNight=0.07 SkyAmbientBottomIntensityNight=0.08
SkyAmbientBottomIntensityInteriorDay=0.08 SkyAmbientBottomIntensityInteriorDay=0.08
SkyAmbientBottomIntensityInteriorNight=0.03 SkyAmbientBottomIntensityInteriorNight=0.03
[SSAO_SSIL] [SSAO_SSIL]
UseIndirectLighting=true UseIndirectLighting=true
SamplingQuality=1 SamplingQuality=1
SamplingRange=0.25 SamplingRange=0.25
AOIntensity=0.66 AOIntensity=0.93
AOIntensityInterior=0.61 AOIntensityInterior=0.81
AOAmount=1.27 AOAmount=1.44
AOAmountInterior=1.2 AOAmountInterior=1.2
ILAmount=1.32 ILAmount=1.33
ILAmountInterior=1.2 ILAmountInterior=1.2
AOMixingType=2 AOMixingType=2
AOMixingTypeInterior=2 AOMixingTypeInterior=2

View file

@ -1 +1 @@
3.4.3 "Another Settlement Needs Your Help" 3.5.0 "Part of a Complete Breakfast"

View file

@ -285,8 +285,17 @@ static const float gauss4[4] =
0.134598, 0.127325, 0.107778, 0.081638, 0.134598, 0.127325, 0.107778, 0.081638,
0.055335, 0.033562, 0.018216, 0.008847 0.055335, 0.033562, 0.018216, 0.008847
};*/ };*/
/* radius: 20, std dev: 7.5 */
static const float gauss20[20] =
{
0.053690, 0.053215, 0.051815, 0.049562,
0.046572, 0.042992, 0.038987, 0.034732,
0.030397, 0.026134, 0.022073, 0.018314,
0.014928, 0.011953, 0.009403, 0.007266,
0.005516, 0.004114, 0.003014, 0.002169
};
/* radius: 40, std dev: 15 */ /* radius: 40, std dev: 15 */
static const float gauss40[40] = /*static const float gauss40[40] =
{ {
0.026823, 0.026763, 0.026585, 0.026291, 0.026823, 0.026763, 0.026585, 0.026291,
0.025886, 0.025373, 0.024760, 0.024055, 0.025886, 0.025373, 0.024760, 0.024055,
@ -298,7 +307,7 @@ static const float gauss40[40] =
0.004697, 0.004139, 0.003630, 0.003170, 0.004697, 0.004139, 0.003630, 0.003170,
0.002756, 0.002385, 0.002055, 0.001763, 0.002756, 0.002385, 0.002055, 0.001763,
0.001506, 0.001280, 0.001084, 0.000913 0.001506, 0.001280, 0.001084, 0.000913
}; };*/
/* radius: 80, std dev: 30 */ /* radius: 80, std dev: 30 */
/*static const float gauss80[80] = /*static const float gauss80[80] =
{ {
@ -448,11 +457,11 @@ float4 Anamorphic( float2 coord, Texture2D intex, float insz )
float sum = 0.0; float sum = 0.0;
float inc = flen/insz; float inc = flen/insz;
float2 pp; float2 pp;
[unroll] for ( i=-39; i<=39; i++ ) [unroll] for ( i=-19; i<=19; i++ )
{ {
pp = coord+float2(i,0)*inc; pp = coord+float2(i,0)*inc;
res += gauss40[abs(i)]*intex.Sample(Sampler,pp); res += gauss20[abs(i)]*intex.Sample(Sampler,pp);
sum += ((pp.x>=0.0)&&(pp.x<1.0))?gauss40[abs(i)]:0.0; sum += ((pp.x>=0.0)&&(pp.x<1.0))?gauss20[abs(i)]:0.0;
} }
res *= 1.0/sum; res *= 1.0/sum;
float3 flu = tod_ind(flu); float3 flu = tod_ind(flu);

View file

@ -1,17 +1,17 @@
[ENBBLOOM.FX] [ENBBLOOM.FX]
TECHNIQUE=2 TECHNIQUE=2
Bloom Intensity Night=0.61 Bloom Intensity Night=0.72
Bloom Intensity Day=0.53 Bloom Intensity Day=0.48
Bloom Intensity Interior=0.55 Bloom Intensity Interior=0.65
Bloom Contrast Night=0.83 Bloom Contrast Night=0.89
Bloom Contrast Day=0.85 Bloom Contrast Day=0.98
Bloom Contrast Interior=0.91 Bloom Contrast Interior=0.93
Bloom Saturation Night=1.39 Bloom Saturation Night=1.11
Bloom Saturation Day=1.34 Bloom Saturation Day=1.06
Bloom Saturation Interior=1.43 Bloom Saturation Interior=1.18
Bloom Offset Night=-0.03 Bloom Offset Night=-0.2
Bloom Offset Day=-0.07 Bloom Offset Day=-0.42
Bloom Offset Interior=-0.02 Bloom Offset Interior=-0.33
Bloom Intensity Cap Night=25.0 Bloom Intensity Cap Night=25.0
Bloom Intensity Cap Day=25.0 Bloom Intensity Cap Day=25.0
Bloom Intensity Cap Interior=25.0 Bloom Intensity Cap Interior=25.0
@ -23,8 +23,8 @@ Blue Shift Interior=0.337, 0.525, 0.878
Blue Shift Intensity Night=0.32 Blue Shift Intensity Night=0.32
Blue Shift Intensity Day=0.22 Blue Shift Intensity Day=0.22
Blue Shift Intensity Interior=0.31 Blue Shift Intensity Interior=0.31
Blue Shift Luminance Factor Per-pass=0.7 Blue Shift Luminance Factor Per-pass=0.48
Blue Shift Color Factor Per-pass=0.8 Blue Shift Color Factor Per-pass=0.84
Enable Anamorphic Bloom=true Enable Anamorphic Bloom=true
Anamorphic Bloom Blend Night=0.92 Anamorphic Bloom Blend Night=0.92
Anamorphic Bloom Blend Day=0.86 Anamorphic Bloom Blend Day=0.86
@ -35,11 +35,11 @@ Anamorphic Bloom Blue Shift Interior=0.537, 0.475, 0.89
Anamorphic Bloom Blue Shift Intensity Night=1.24 Anamorphic Bloom Blue Shift Intensity Night=1.24
Anamorphic Bloom Blue Shift Intensity Day=1.33 Anamorphic Bloom Blue Shift Intensity Day=1.33
Anamorphic Bloom Blue Shift Intensity Interior=1.38 Anamorphic Bloom Blue Shift Intensity Interior=1.38
Anamorphic Bloom Contrast Night=1.14 Anamorphic Bloom Contrast Night=1.25
Anamorphic Bloom Contrast Day=1.18 Anamorphic Bloom Contrast Day=1.33
Anamorphic Bloom Contrast Interior=1.23 Anamorphic Bloom Contrast Interior=1.28
Anamorphic Bloom Radius Multiplier=1.0 Anamorphic Bloom Radius Multiplier=1.0
Bloom Pass 1 Blend=0.11 Bloom Pass 1 Blend=0.16
Bloom Pass 2 Blend=0.2 Bloom Pass 2 Blend=0.2
Bloom Pass 3 Blend=0.39 Bloom Pass 3 Blend=0.39
Bloom Pass 4 Blend=0.58 Bloom Pass 4 Blend=0.58

View file

@ -783,117 +783,6 @@ bool foglimbo
string UIName = "Limbo Mode"; string UIName = "Limbo Mode";
string UIWidget = "Checkbox"; string UIWidget = "Checkbox";
> = {false}; > = {false};
/* ssao filter */
string str_ssao = "Ray Marching SSAO";
bool ssaoenable
<
string UIName = "Enable SSAO";
string UIWidget = "Checkbox";
> = {false};
float ssaoradius
<
string UIName = "SSAO Radius";
string UIWidget = "Spinner";
> = {1.0};
int ssaonoise
<
string UIName = "SSAO Noise";
string UIWidget = "Spinner";
int UIMin = 0;
int UIMax = 1;
> = {1};
float ssaofadepow_n
<
string UIName = "SSAO Fade Contrast Night";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {0.05};
float ssaofadepow_d
<
string UIName = "SSAO Fade Contrast Day";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {0.05};
float ssaofadepow_i
<
string UIName = "SSAO Fade Contrast Interior";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {0.05};
float ssaofademult_n
<
string UIName = "SSAO Fade Intensity Night";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float ssaofademult_d
<
string UIName = "SSAO Fade Intensity Day";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float ssaofademult_i
<
string UIName = "SSAO Fade Intensity Interior";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float ssaomult
<
string UIName = "SSAO Intensity";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {0.5};
float ssaopow
<
string UIName = "SSAO Contrast";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.5};
float ssaobump
<
string UIName = "SSAO Shift";
string UIWidget = "Spinner";
> = {0.0};
float ssaoblend
<
string UIName = "SSAO Blending";
string UIWidget = "Spinner";
> = {1.0};
bool ssaobenable
<
string UIName = "SSAO Blur";
string UIWidget = "Checkbox";
> = {true};
float ssaobfact
<
string UIName = "SSAO Bilateral Factor";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1000.0};
float ssaoclamp
<
string UIName = "SSAO Range";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float ssaoclampmin
<
string UIName = "SSAO Range Min";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {0.0};
float ssaobradius
<
string UIName = "SSAO Blur Radius";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
bool ssaodebug
<
string UIName = "Debug SSAO";
string UIWidget = "Checkbox";
> = {false};
/* depth-based colour grading suite */ /* depth-based colour grading suite */
string str_grade = "Depth Color Grading Suite"; string str_grade = "Depth Color Grading Suite";
float dgradedfoc float dgradedfoc
@ -1155,42 +1044,6 @@ static const float gauss16[16] =
0.033109, 0.031485, 0.029764, 0.027971, 0.033109, 0.031485, 0.029764, 0.027971,
0.026131, 0.024268, 0.022405, 0.020563 0.026131, 0.024268, 0.022405, 0.020563
}; };
/* SSAO samples */
static const float3 ssao_samples[64] =
{
float3(-0.0051, 0.0021, 0.0146),float3(-0.0197,-0.0213,-0.0116),
float3( 0.0005,-0.0432,-0.0182),float3(-0.0011,-0.0586,-0.0217),
float3(-0.0549, 0.0461, 0.0309),float3(-0.0448,-0.0764,-0.0306),
float3(-0.0366, 0.0758,-0.0699),float3(-0.0770,-0.0707,-0.0686),
float3( 0.1181,-0.0340,-0.0683),float3(-0.0647, 0.0356, 0.1377),
float3(-0.1167, 0.1262, 0.0024),float3(-0.1353,-0.0861, 0.0971),
float3(-0.0096, 0.0936, 0.1800),float3( 0.1311,-0.1013,-0.1429),
float3(-0.1186,-0.0653, 0.1913),float3( 0.1641, 0.0260, 0.1868),
float3(-0.1225,-0.2319, 0.0424),float3( 0.1036,-0.2000, 0.1684),
float3( 0.1656, 0.2022,-0.1408),float3(-0.1809,-0.1673, 0.1922),
float3(-0.2485,-0.1236, 0.1750),float3( 0.1030,-0.0550, 0.3233),
float3(-0.0405, 0.3068, 0.1827),float3(-0.0576, 0.1632, 0.3327),
float3( 0.0392, 0.3583,-0.1505),float3( 0.0082, 0.2865, 0.2879),
float3( 0.0055,-0.2835, 0.3124),float3(-0.2733, 0.1991,-0.2776),
float3( 0.2667, 0.1127,-0.3486),float3(-0.3326, 0.2740,-0.1844),
float3( 0.2887,-0.3838, 0.0630),float3( 0.1088, 0.1546, 0.4629),
float3( 0.0977,-0.3565, 0.3595),float3(-0.4204, 0.0855, 0.3133),
float3(-0.2237,-0.4932, 0.0759),float3( 0.4245, 0.3169,-0.1891),
float3( 0.0084,-0.5682, 0.1062),float3(-0.1489,-0.5296,-0.2235),
float3( 0.0014,-0.4153,-0.4460),float3( 0.0300,-0.4392, 0.4437),
float3( 0.2627, 0.4518, 0.3704),float3(-0.4945, 0.3659, 0.2285),
float3(-0.2550,-0.5311, 0.3230),float3(-0.4477, 0.0828,-0.5151),
float3( 0.4682, 0.4531,-0.2644),float3(-0.1235,-0.0366, 0.7071),
float3( 0.3545, 0.4559, 0.4536),float3(-0.1037,-0.2199,-0.7095),
float3( 0.4269, 0.5299,-0.3510),float3( 0.7051,-0.1468,-0.3027),
float3( 0.4590,-0.5669,-0.3208),float3( 0.2330, 0.1264, 0.7680),
float3(-0.3954, 0.5619,-0.4622),float3( 0.5977,-0.5110, 0.3059),
float3(-0.5800,-0.6306, 0.0672),float3(-0.2211,-0.0332,-0.8460),
float3(-0.3808,-0.2238,-0.7734),float3(-0.5616, 0.6858,-0.1887),
float3(-0.2995, 0.5165,-0.7024),float3( 0.5042,-0.0537, 0.7885),
float3(-0.6477,-0.3691, 0.5938),float3(-0.3969, 0.8815, 0.0620),
float3(-0.4300,-0.8814,-0.0852),float3(-0.1683, 0.9379, 0.3033)
};
/* For low quality DOF */ /* For low quality DOF */
static const float2 poisson32[32] = static const float2 poisson32[32] =
{ {
@ -1312,107 +1165,6 @@ float depthlinear( float2 coord )
return (2*zNear)/(zFar+zNear-z*(zFar-zNear)); return (2*zNear)/(zFar+zNear-z*(zFar-zNear));
} }
/*
Thank you Boris for not providing access to a normal buffer. Guesswork using
the depth buffer results in imprecise normals that aren't smoothed. Plus
there is no way to get the normal data from textures either. Also, three
texture fetches are needed instead of one (great!)
*/
float3 pseudonormal( float dep, float2 coord )
{
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 ofs1 = float2(0,1.0/bresl.y);
float2 ofs2 = float2(1.0/bresl.x,0);
float dep1 = TextureDepth.SampleLevel(Sampler1,coord+ofs1,0).x;
float dep2 = TextureDepth.SampleLevel(Sampler1,coord+ofs2,0).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);
}
/* SSAO Prepass */
float4 PS_SSAOPre( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord.xy;
/* get occlusion using single-step Ray Marching with 64 samples */
float ssaofadepow = tod_ind(ssaofadepow);
float ssaofademult = tod_ind(ssaofademult);
if ( !ssaoenable ) return 0.0;
float depth = TextureDepth.Sample(Sampler1,coord).x;
float ldepth = depthlinear(coord);
if ( depth >= cutoff*0.000001 ) return 1.0;
float2 bresl;
if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed;
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float3 normal = pseudonormal(depth,coord);
float2 nc = coord*(bresl/256.0);
float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*ssaoradius;
float2 nc2 = TextureNoise3.SampleLevel(Sampler2,nc+48000.0*Timer.x
*ssaonoise,0).xy;
float3 rnormal = TextureNoise3.SampleLevel(Sampler2,nc2,0).xyz*2.0-1.0;
rnormal = normalize(rnormal);
float occ = 0.0;
int i;
float3 sample;
float sdepth, so, delta;
float sclamp = ssaoclamp/100000.0;
float sclampmin = ssaoclampmin/100000.0;
[unroll] for ( i=0; i<64; i++ )
{
sample = reflect(ssao_samples[i],rnormal);
sample *= sign(dot(normal,sample));
so = ldepth-sample.z*bof.x;
sdepth = depthlinear(coord+bof*sample.xy/ldepth);
delta = saturate(so-sdepth);
delta *= 1.0-smoothstep(0.0,sclamp,delta);
if ( (delta > sclampmin) && (delta < sclamp) )
occ += 1.0-delta;
}
float uocc = saturate(occ/64.0);
float fade = 1.0-depth;
uocc *= saturate(pow(max(0,fade),ssaofadepow)*ssaofademult);
uocc = saturate(pow(max(0,uocc),ssaopow)*ssaomult+ssaobump);
return saturate(1.0-(uocc*ssaoblend));
}
/*
The blur pass uses bilateral filtering to mostly preserve borders.
An additional factor using difference of normals was tested, but the
performance decrease was too much, so it's gone forever.
*/
float4 PS_SSAOBlur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord.xy;
float4 res = TextureColor.Sample(Sampler1,coord);
float mud = RenderTargetR16F.Sample(Sampler1,coord).x;
if ( !ssaoenable ) return res;
if ( !ssaobenable )
{
if ( ssaodebug ) return saturate(mud);
return res*mud;
}
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 bof = (1.0/bresl)*ssaobradius;
float isd, sd, ds, sw, tw = 0;
mud = 0.0;
int i, j;
isd = TextureDepth.Sample(Sampler1,coord).x;
[unroll] for ( j=-7; j<=7; j++ ) [unroll] for ( i=-7; i<=7; i++ )
{
sd = TextureDepth.Sample(Sampler1,coord+float2(i,j)*bof).x;
ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact);
sw = ds;
sw *= gauss8[abs(i)]*gauss8[abs(j)];
tw += sw;
mud += sw*RenderTargetR16F.Sample(Sampler1,coord+float2(i,j)
*bof).x;
}
mud /= tw;
if ( ssaodebug ) return saturate(mud);
return res*mud;
}
/* precalculate DOF factors */ /* precalculate DOF factors */
float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{ {
@ -2026,15 +1778,7 @@ technique11 Prepass1
SetPixelShader(CompileShader(ps_5_0,PS_DepthGrade())); SetPixelShader(CompileShader(ps_5_0,PS_DepthGrade()));
} }
} }
technique11 Prepass2 <string RenderTarget="RenderTargetR16F";> technique11 Prepass2
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_SSAOPre()));
}
}
technique11 Prepass3
{ {
pass p0 pass p0
{ {
@ -2042,15 +1786,7 @@ technique11 Prepass3
SetPixelShader(CompileShader(ps_5_0,PS_Distortion())); SetPixelShader(CompileShader(ps_5_0,PS_Distortion()));
} }
} }
technique11 Prepass4 technique11 Prepass3 <string RenderTarget="RenderTargetR32F";>
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_SSAOBlur()));
}
}
technique11 Prepass5 <string RenderTarget="RenderTargetR32F";>
{ {
pass p0 pass p0
{ {
@ -2058,7 +1794,7 @@ technique11 Prepass5 <string RenderTarget="RenderTargetR32F";>
SetPixelShader(CompileShader(ps_5_0,PS_DoFPrepass())); SetPixelShader(CompileShader(ps_5_0,PS_DoFPrepass()));
} }
} }
technique11 Prepass6 technique11 Prepass4
{ {
pass p0 pass p0
{ {
@ -2066,7 +1802,7 @@ technique11 Prepass6
SetPixelShader(CompileShader(ps_5_0,PS_DoFBlur())); SetPixelShader(CompileShader(ps_5_0,PS_DoFBlur()));
} }
} }
technique11 Prepass7 technique11 Prepass5
{ {
pass p0 pass p0
{ {
@ -2074,7 +1810,7 @@ technique11 Prepass7
SetPixelShader(CompileShader(ps_5_0,PS_DoFPostBlur())); SetPixelShader(CompileShader(ps_5_0,PS_DoFPostBlur()));
} }
} }
technique11 Prepass8 technique11 Prepass6
{ {
pass p0 pass p0
{ {
@ -2099,15 +1835,7 @@ technique11 PrepassB1
SetPixelShader(CompileShader(ps_5_0,PS_DepthGrade())); SetPixelShader(CompileShader(ps_5_0,PS_DepthGrade()));
} }
} }
technique11 PrepassB2 <string RenderTarget="RenderTargetR16F";> technique11 PrepassB2
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_SSAOPre()));
}
}
technique11 PrepassB3
{ {
pass p0 pass p0
{ {
@ -2115,15 +1843,7 @@ technique11 PrepassB3
SetPixelShader(CompileShader(ps_5_0,PS_Distortion())); SetPixelShader(CompileShader(ps_5_0,PS_Distortion()));
} }
} }
technique11 PrepassB4 technique11 PrepassB3 <string RenderTarget="RenderTargetR32F";>
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_SSAOBlur()));
}
}
technique11 PrepassB5 <string RenderTarget="RenderTargetR32F";>
{ {
pass p0 pass p0
{ {
@ -2131,7 +1851,7 @@ technique11 PrepassB5 <string RenderTarget="RenderTargetR32F";>
SetPixelShader(CompileShader(ps_5_0,PS_DoFPrepass())); SetPixelShader(CompileShader(ps_5_0,PS_DoFPrepass()));
} }
} }
technique11 PrepassB6 technique11 PrepassB4
{ {
pass p0 pass p0
{ {
@ -2139,7 +1859,7 @@ technique11 PrepassB6
SetPixelShader(CompileShader(ps_5_0,PS_DoFBorkeh())); SetPixelShader(CompileShader(ps_5_0,PS_DoFBorkeh()));
} }
} }
technique11 PrepassB7 technique11 PrepassB5
{ {
pass p0 pass p0
{ {
@ -2147,7 +1867,7 @@ technique11 PrepassB7
SetPixelShader(CompileShader(ps_5_0,PS_DoFPostBlur())); SetPixelShader(CompileShader(ps_5_0,PS_DoFPostBlur()));
} }
} }
technique11 PrepassB8 technique11 PrepassB6
{ {
pass p0 pass p0
{ {

View file

@ -34,33 +34,33 @@ Grain Contrast=8.450001
Apply Grain Before Tone Mapping=true Apply Grain Before Tone Mapping=true
Enable Adaptation=true Enable Adaptation=true
Tonemapping Method=3 Tonemapping Method=3
Tonemap Exposure Night=1.42 Tonemap Exposure Night=1.08
Tonemap Exposure Day=1.31 Tonemap Exposure Day=1.12
Tonemap Exposure Interior=1.56 Tonemap Exposure Interior=1.26
Tonemap Blend Night=1.0 Tonemap Blend Night=1.0
Tonemap Blend Day=1.0 Tonemap Blend Day=1.0
Tonemap Blend Interior=1.0 Tonemap Blend Interior=1.0
Uncharted2 Shoulder Strength Night=0.22 Uncharted2 Shoulder Strength Night=0.17
Uncharted2 Shoulder Strength Day=0.3 Uncharted2 Shoulder Strength Day=0.14
Uncharted2 Shoulder Strength Interior=0.2 Uncharted2 Shoulder Strength Interior=0.2
Uncharted2 Linear Strength Night=1.54 Uncharted2 Linear Strength Night=1.3
Uncharted2 Linear Strength Day=1.57 Uncharted2 Linear Strength Day=1.46
Uncharted2 Linear Strength Interior=1.5 Uncharted2 Linear Strength Interior=1.34
Uncharted2 Linear Angle Night=0.71 Uncharted2 Linear Angle Night=0.71
Uncharted2 Linear Angle Day=0.79 Uncharted2 Linear Angle Day=0.74
Uncharted2 Linear Angle Interior=0.7 Uncharted2 Linear Angle Interior=0.77
Uncharted2 Toe Strength Night=1.34 Uncharted2 Toe Strength Night=1.58
Uncharted2 Toe Strength Day=1.29 Uncharted2 Toe Strength Day=1.7
Uncharted2 Toe Strength Interior=1.63 Uncharted2 Toe Strength Interior=1.67
Uncharted2 Toe Numerator Night=0.22 Uncharted2 Toe Numerator Night=4.57
Uncharted2 Toe Numerator Day=0.27 Uncharted2 Toe Numerator Day=4.75
Uncharted2 Toe Numerator Interior=0.25 Uncharted2 Toe Numerator Interior=4.3
Uncharted2 Toe Denominator Night=1.16 Uncharted2 Toe Denominator Night=1.16
Uncharted2 Toe Denominator Day=1.18 Uncharted2 Toe Denominator Day=1.15
Uncharted2 Toe Denominator Interior=1.22 Uncharted2 Toe Denominator Interior=1.14
Uncharted2 Linear White Night=38.509998 Uncharted2 Linear White Night=14.51
Uncharted2 Linear White Day=39.27 Uncharted2 Linear White Day=13.680001
Uncharted2 Linear White Interior=33.57 Uncharted2 Linear White Interior=15.57
SweetFX Gamma Night=0.38 SweetFX Gamma Night=0.38
SweetFX Gamma Day=0.36 SweetFX Gamma Day=0.36
SweetFX Gamma Interior=0.37 SweetFX Gamma Interior=0.37
@ -80,37 +80,37 @@ SweetFX Defog Color Night=0, 0, 1
SweetFX Defog Color Day=0, 0, 1 SweetFX Defog Color Day=0, 0, 1
SweetFX Defog Color Interior=0, 0, 1 SweetFX Defog Color Interior=0, 0, 1
Enable RGB Grading=true Enable RGB Grading=true
Grading Intensity Night=1.02, 1, 1.04 Grading Intensity Night=1.02, 1.03, 0.94
Grading Intensity Day=1.01, 0.98, 0.95 Grading Intensity Day=1.04, 1, 0.93
Grading Intensity Interior=1.02, 1, 0.99 Grading Intensity Interior=1.03, 0.98, 0.96
Grading Contrast Night=1.02, 0.97, 0.93 Grading Contrast Night=1.04, 0.99, 0.95
Grading Contrast Day=0.92, 1.02, 0.99 Grading Contrast Day=0.981, 1.02, 0.954
Grading Contrast Interior=0.99, 0.99, 0.94 Grading Contrast Interior=1.01, 0.99, 0.94
Enable Vibrance Grading=true Enable Vibrance Grading=true
Grading Color Night=-0.2, -0.31, -0.62 Grading Color Night=-0.2, -0.16, -0.64
Grading Color Day=-0.68, -0.2, -0.19 Grading Color Day=-0.66, -0.27, -0.15
Grading Color Interior=-0.19, -0.04, -0.7 Grading Color Interior=-0.19, -0.04, -0.7
Grading Color Factor Night=-0.18 Grading Color Factor Night=-0.06
Grading Color Factor Day=-0.12 Grading Color Factor Day=-0.1
Grading Color Factor Interior=-0.1 Grading Color Factor Interior=-0.11
Enable HSV Grading=true Enable HSV Grading=true
Grading Saturation Intensity Night=1.12 Grading Saturation Intensity Night=1.12
Grading Saturation Intensity Day=1.11 Grading Saturation Intensity Day=1.18
Grading Saturation Intensity Interior=1.21 Grading Saturation Intensity Interior=1.07
Grading Saturation Contrast Night=1.13 Grading Saturation Contrast Night=0.95
Grading Saturation Contrast Day=1.12 Grading Saturation Contrast Day=0.97
Grading Saturation Contrast Interior=1.15 Grading Saturation Contrast Interior=0.98
Grading Value Intensity Night=0.92 Grading Value Intensity Night=0.98
Grading Value Intensity Day=0.87 Grading Value Intensity Day=0.91
Grading Value Intensity Interior=0.95 Grading Value Intensity Interior=0.95
Grading Value Contrast Night=1.18 Grading Value Contrast Night=1.02
Grading Value Contrast Day=1.1 Grading Value Contrast Day=1.06
Grading Value Contrast Interior=1.13 Grading Value Contrast Interior=1.04
Colorize After HSV=true Colorize After HSV=true
Enable LUT Grading=true Enable LUT Grading=true
LUT Blend Night=0.34 LUT Blend Night=0.62
LUT Blend Day=0.38 LUT Blend Day=0.74
LUT Blend Interior=0.43 LUT Blend Interior=0.73
Enable Technicolor=true Enable Technicolor=true
Technicolor Blend=0.5 Technicolor Blend=0.5
Enable Vanilla Imagespace=true Enable Vanilla Imagespace=true

View file

@ -6,35 +6,6 @@
*/ */
#include "menbglobaldefs.fx" #include "menbglobaldefs.fx"
/* Paint filter */
string str_paint = "Painting Filter";
bool oilenable
<
string UIName = "Enable Oil Filter";
string UIWidget = "Checkbox";
> = {false};
/* legacy FXAA filter */
string str_fxaa = "FXAA";
bool fxaaenable
<
string UIName = "Enable FXAA";
string UIWidget = "Checkbox";
> = {false};
float fxaaspanmax
<
string UIName = "FXAA Span Max";
string UIWidget = "Checkbox";
> = {4.0};
float fxaareducemul
<
string UIName = "FXAA Reduce Mul";
string UIWidget = "Checkbox";
> = {16.0};
float fxaareducemin
<
string UIName = "FXAA Reduce Min";
string UIWidget = "Checkbox";
> = {128.0};
/* new SMAA filter */ /* new SMAA filter */
string str_smaa = "SMAA"; string str_smaa = "SMAA";
bool smaaenable bool smaaenable
@ -118,69 +89,6 @@ float lsharpblend
string UIWidget = "Spinner"; string UIWidget = "Spinner";
float UIMin = 0.0; float UIMin = 0.0;
> = {1.2}; > = {1.2};
/* lens curve with chromatic aberration */
string str_curve = "Lens Curvature";
bool curveenable
<
string UIName = "Enable Curvature";
string UIWidget = "Checkbox";
> = {false};
float chromaab
<
string UIName = "Curve Chromatic Aberration";
string UIWidget = "Spinner";
> = {0.0};
float lenszoom
<
string UIName = "Curve Zooming";
string UIWidget = "Spinner";
> = {50.0};
float lensdist
<
string UIName = "Curve Distortion";
string UIWidget = "Spinner";
> = {0.0};
/* BlurSharpShift, some people are obsessed with this nonsense */
string str_bss = "BlurSharpShift";
bool bssblurenable
<
string UIName = "Enable Blur";
string UIWidget = "Checkbox";
> = {false};
float bssblurradius
<
string UIName = "Blur Sampling Range";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {0.25};
bool bsssharpenable
<
string UIName = "Enable Sharp";
string UIWidget = "Checkbox";
> = {false};
float bsssharpradius
<
string UIName = "Sharp Sampling Range";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float bsssharpamount
<
string UIName = "Sharpening Amount";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {6.0};
bool bssshiftenable
<
string UIName = "Enable Shift";
string UIWidget = "Checkbox";
> = {false};
float bssshiftradius
<
string UIName = "Shift Sampling Range";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {0.75};
/* very cinematic black bars */ /* very cinematic black bars */
string str_box = "Black Bars"; string str_box = "Black Bars";
bool boxenable bool boxenable
@ -581,101 +489,6 @@ float4 PS_ChromaKey( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
return res; return res;
} }
/* that's right, CRT curvature */
float4 PS_Curvature( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord.xy;
float4 res = TextureColor.Sample(Sampler,coord);
if ( !curveenable ) return res;
float3 eta = float3(1+chromaab*0.009,1+chromaab*0.006,1+chromaab
*0.003);
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 = 1+r2*lensdist*0.01;
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;
int i,j;
float3 idist = float3(TextureColor.Sample(SamplerB,rcoord).r,
TextureColor.Sample(SamplerB,gcoord).g,
TextureColor.Sample(SamplerB,bcoord).b);
res.rgb = idist.rgb;
return res;
}
/* Why am I doing this */
float4 PS_Blur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord.xy;
float4 res = TextureColor.Sample(Sampler,coord);
if ( !bssblurenable ) return res;
float2 ofs[16] =
{
float2(1.0,1.0), float2(-1.0,-1.0),
float2(-1.0,1.0), float2(1.0,-1.0),
float2(1.0,0.0), float2(-1.0,0.0),
float2(0.0,1.0), float2(0.0,-1.0),
float2(1.41,0.0), float2(-1.41,0.0),
float2(0.0,1.41), float2(0.0,-1.41),
float2(1.41,1.41), float2(-1.41,-1.41),
float2(-1.41,1.41), float2(1.41,-1.41)
};
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 bof = (1.0/bresl)*bssblurradius;
int i;
[unroll] for ( i=0; i<16; i++ )
res += TextureColor.Sample(Sampler,coord+ofs[i]*bof);
res /= 17.0;
res.a = 1.0;
return res;
}
float4 PS_Sharp( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord.xy;
float4 res = TextureColor.Sample(Sampler,coord);
if ( !bsssharpenable ) return res;
float2 ofs[8] =
{
float2(1.0,1.0), float2(-1.0,-1.0),
float2(-1.0,1.0), float2(1.0,-1.0),
float2(1.41,1.41), float2(-1.41,-1.41),
float2(-1.41,1.41), float2(1.41,-1.41)
};
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 bof = (1.0/bresl)*bsssharpradius;
float4 tcol = res;
int i;
[unroll] for ( i=0; i<8; i++ )
tcol += TextureColor.Sample(Sampler,coord+ofs[i]*bof);
tcol /= 9.0;
float4 orig = res;
res = orig*(1.0+dot(orig.rgb-tcol.rgb,0.333333)*bsssharpamount);
float rg = clamp(pow(orig.b,3.0),0.0,1.0);
res = lerp(res,orig,rg);
res.a = 1.0;
return res;
}
float4 PS_Shift( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord.xy;
float4 res = TextureColor.Sample(Sampler,coord);
if ( !bssshiftenable ) return res;
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 bof = (1.0/bresl)*bssshiftradius;
res.g = TextureColor.Sample(Sampler,coord).g;
res.r = TextureColor.Sample(Sampler,coord+float2(0,-bof.y)).r;
res.b = TextureColor.Sample(Sampler,coord+float2(0,bof.y)).b;
res.a = 1.0;
return res;
}
/* That "luma sharpen" thingy, added just because someone might want it */ /* That "luma sharpen" thingy, added just because someone might want it */
float4 PS_LumaSharp( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target float4 PS_LumaSharp( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{ {
@ -754,132 +567,6 @@ float4 PS_Vignette( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
return clamp(res,0.0,1.0); return clamp(res,0.0,1.0);
} }
/* paint filter */
float4 PS_Kuwahara( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord.xy;
float4 res = TextureColor.Sample(Sampler,coord);
if ( !oilenable ) return res;
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 bof = 1.0/bresl;
float n = 16.0;
float3 m[4] =
{
float3(0,0,0),float3(0,0,0),float3(0,0,0),float3(0,0,0)
}, s[4] =
{
float3(0,0,0),float3(0,0,0),float3(0,0,0),float3(0,0,0)
}, c;
int i, j;
[loop] for ( i=-3; i<=0; i++ ) [loop] for ( j=-3; j<=0; j++ )
{
c = TextureColor.Sample(Sampler,coord+float2(i,j)*bof).rgb;
m[0] += c;
s[0] += c*c;
}
[loop] for ( i=-3; i<=0; i++ ) [loop] for ( j=0; j<=3; j++ )
{
c = TextureColor.Sample(Sampler,coord+float2(i,j)*bof).rgb;
m[1] += c;
s[1] += c*c;
}
[loop] for ( i=0; i<=3; i++ ) [loop] for ( j=-3; j<=0; j++ )
{
c = TextureColor.Sample(Sampler,coord+float2(i,j)*bof).rgb;
m[2] += c;
s[2] += c*c;
}
[loop] for ( i=0; i<=3; i++ ) [loop] for ( j=0; j<=3; j++ )
{
c = TextureColor.Sample(Sampler,coord+float2(i,j)*bof).rgb;
m[3] += c;
s[3] += c*c;
}
float min_sigma2 = 1e+2, sigma2;
[unroll] for ( i=0; i<4; i++ )
{
m[i] /= n;
s[i] = abs(s[i]/n-m[i]*m[i]);
sigma2 = s[i].r+s[i].g+s[i].b;
if ( sigma2 >= min_sigma2 ) continue;
min_sigma2 = sigma2;
res.rgb = m[i];
}
return res;
}
/* remove speckles from kuwahara filter */
float4 PS_Median( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord.xy;
float4 res = TextureColor.Sample(Sampler,coord);
if ( !oilenable ) return res;
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 bof = 1.0/bresl;
float3 m1, m2, m3;
float3 a, b, c;
a = TextureColor.Sample(Sampler,coord+float2(-1,-1)*bof).rgb;
b = TextureColor.Sample(Sampler,coord+float2( 0,-1)*bof).rgb;
c = TextureColor.Sample(Sampler,coord+float2( 1,-1)*bof).rgb;
m1 = (luminance(a)<luminance(b))?((luminance(b)<luminance(c))?b
:max(a,c)):((luminance(a)<luminance(c))?a:max(b,c));
a = TextureColor.Sample(Sampler,coord+float2(-1, 0)*bof).rgb;
b = TextureColor.Sample(Sampler,coord+float2( 0, 0)*bof).rgb;
c = TextureColor.Sample(Sampler,coord+float2( 1, 0)*bof).rgb;
m2 = (luminance(a)<luminance(b))?((luminance(b)<luminance(c))?b
:max(a,c)):((luminance(a)<luminance(c))?a:max(b,c));
a = TextureColor.Sample(Sampler,coord+float2(-1, 1)*bof).rgb;
b = TextureColor.Sample(Sampler,coord+float2( 0, 1)*bof).rgb;
c = TextureColor.Sample(Sampler,coord+float2( 1, 1)*bof).rgb;
m3 = (luminance(a)<luminance(b))?((luminance(b)<luminance(c))?b
:max(a,c)):((luminance(a)<luminance(c))?a:max(b,c));
res.rgb = (luminance(m1)<luminance(m2))?((luminance(m2)<luminance(m3))
?m2:max(m1,m3)):((luminance(m1)<luminance(m3))?m1:max(m2,m3));
return res;
}
/* Legacy MariENB FXAA, useful for further smoothing the paint filter */
float4 PS_FXAA( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = float2(IN.txcoord.x,IN.txcoord.y);
float4 res = TextureColor.Sample(Sampler,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 = TextureColor.Sample(Sampler,coord+float2(-1,-1)*bof).rgb;
float3 rgbNE = TextureColor.Sample(Sampler,coord+float2(1,-1)*bof).rgb;
float3 rgbSW = TextureColor.Sample(Sampler,coord+float2(-1,1)*bof).rgb;
float3 rgbSE = TextureColor.Sample(Sampler,coord+float2(1,1)*bof).rgb;
float3 rgbM = TextureColor.Sample(Sampler,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)*(TextureColor.Sample(Sampler,coord+dir
*(1.0/3.0-0.5)).rgb+TextureColor.Sample(Sampler,coord+dir
*(2.0/3.0-0.5)).rgb);
float3 rgbB = rgbA*(1.0/2.0)+(1.0/4.0)*(TextureColor.Sample(Sampler,
coord+dir*(0.0/3.0-0.5)).rgb+TextureColor.Sample(Sampler,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;
}
/* Colour matrix */ /* Colour matrix */
float3 ColorMatrix( float3 res ) float3 ColorMatrix( float3 res )
{ {
@ -1116,23 +803,7 @@ technique11 ExtraFilters <string UIName="MariENB";>
SetPixelShader(CompileShader(ps_5_0,PS_Append())); SetPixelShader(CompileShader(ps_5_0,PS_Append()));
} }
} }
technique11 ExtraFilters1 technique11 ExtraFilters1 <string RenderTarget="RenderTargetRGBA32";>
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_PostProcess()));
SetPixelShader(CompileShader(ps_5_0,PS_Kuwahara()));
}
}
technique11 ExtraFilters2
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_PostProcess()));
SetPixelShader(CompileShader(ps_5_0,PS_Median()));
}
}
technique11 ExtraFilters3 <string RenderTarget="RenderTargetRGBA32";>
{ {
pass p0 pass p0
{ {
@ -1142,7 +813,7 @@ technique11 ExtraFilters3 <string RenderTarget="RenderTargetRGBA32";>
SetBlendState(NoBlending,float4(0.0,0.0,0.0,0.0),0xFFFFFFFF); SetBlendState(NoBlending,float4(0.0,0.0,0.0,0.0),0xFFFFFFFF);
} }
} }
technique11 ExtraFilters4 <string RenderTarget="RenderTargetRGBA64";> technique11 ExtraFilters2 <string RenderTarget="RenderTargetRGBA64";>
{ {
pass p0 pass p0
{ {
@ -1152,7 +823,7 @@ technique11 ExtraFilters4 <string RenderTarget="RenderTargetRGBA64";>
SetBlendState(NoBlending, float4(0.0,0.0,0.0,0.0),0xFFFFFFFF); SetBlendState(NoBlending, float4(0.0,0.0,0.0,0.0),0xFFFFFFFF);
} }
} }
technique11 ExtraFilters5 technique11 ExtraFilters3
{ {
pass p0 pass p0
{ {
@ -1160,7 +831,7 @@ technique11 ExtraFilters5
SetPixelShader(CompileShader(ps_5_0,PS_ToSRGB())); SetPixelShader(CompileShader(ps_5_0,PS_ToSRGB()));
} }
} }
technique11 ExtraFilters6 technique11 ExtraFilters4
{ {
pass p0 pass p0
{ {
@ -1168,15 +839,7 @@ technique11 ExtraFilters6
SetPixelShader(CompileShader(ps_5_0,SMAANeighborhoodBlendingWrapPS())); SetPixelShader(CompileShader(ps_5_0,SMAANeighborhoodBlendingWrapPS()));
} }
} }
technique11 ExtraFilters7 technique11 ExtraFilters5
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_PostProcess()));
SetPixelShader(CompileShader(ps_5_0,PS_FXAA()));
}
}
technique11 ExtraFilters8
{ {
pass p0 pass p0
{ {
@ -1184,31 +847,7 @@ technique11 ExtraFilters8
SetPixelShader(CompileShader(ps_5_0,PS_LumaSharp())); SetPixelShader(CompileShader(ps_5_0,PS_LumaSharp()));
} }
} }
technique11 ExtraFilters9 technique11 ExtraFilters6
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_PostProcess()));
SetPixelShader(CompileShader(ps_5_0,PS_Blur()));
}
}
technique11 ExtraFilters10
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_PostProcess()));
SetPixelShader(CompileShader(ps_5_0,PS_Sharp()));
}
}
technique11 ExtraFilters11
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_PostProcess()));
SetPixelShader(CompileShader(ps_5_0,PS_Shift()));
}
}
technique11 ExtraFilters12
{ {
pass p0 pass p0
{ {
@ -1216,7 +855,7 @@ technique11 ExtraFilters12
SetPixelShader(CompileShader(ps_5_0,PS_ChromaKey())); SetPixelShader(CompileShader(ps_5_0,PS_ChromaKey()));
} }
} }
technique11 ExtraFilters13 technique11 ExtraFilters7
{ {
pass p0 pass p0
{ {
@ -1224,15 +863,7 @@ technique11 ExtraFilters13
SetPixelShader(CompileShader(ps_5_0,PS_Vignette())); SetPixelShader(CompileShader(ps_5_0,PS_Vignette()));
} }
} }
technique11 ExtraFilters14 technique11 ExtraFilters8
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_PostProcess()));
SetPixelShader(CompileShader(ps_5_0,PS_Curvature()));
}
}
technique11 ExtraFilters15
{ {
pass p0 pass p0
{ {
@ -1240,3 +871,5 @@ technique11 ExtraFilters15
SetPixelShader(CompileShader(ps_5_0,PS_Cinematic())); SetPixelShader(CompileShader(ps_5_0,PS_Cinematic()));
} }
} }

View file

@ -31,7 +31,7 @@ Box Horizontal Ratio=2.39
Box Vertical Ratio=1.0 Box Vertical Ratio=1.0
Enable Vignette=false Enable Vignette=false
Enable Border Blur=false Enable Border Blur=false
Vignette Shape=2 Vignette Shape=1
Vignette Blending Mode=0 Vignette Blending Mode=0
Vignette Contrast=9.83 Vignette Contrast=9.83
Vignette Intensity=0.47 Vignette Intensity=0.47

Binary file not shown.

Binary file not shown.

Binary file not shown.