1
Fork 0

MariENB Skyrim 2.2.6

This commit is contained in:
Marisa the Magician 2019-04-07 17:42:42 +02:00
commit 591968b4ae
13 changed files with 300 additions and 212 deletions

View file

@ -14,7 +14,7 @@ EnableSunRays=true
EnableSkyLighting=true
EnableImageBasedLighting=false
EnableReflection=true
EnableSoftParticles=true
EnableSoftParticles=false
EnableParticleLights=true
EnableSunGlare=false
EnableSubSurfaceScattering=true
@ -80,10 +80,10 @@ UseAmbientIndirectLighting=true
SamplingPrecision=1
FadeFogRange=3.0
FilterType=0
AOAmountInterior=1.17
AOAmountInterior=1.18
ILAmountInterior=1.38
AOIntensity=1.17
AOIntensityInterior=1.21
AOIntensityInterior=1.24
AOType=0
AOMixingType=0
AOMixingTypeInterior=0
@ -126,10 +126,10 @@ SpecularPowerMultiplierInterior=1.0
SpecularFromLightDay=0.0
SpecularFromLightNight=0.0
SpecularFromLightInterior=0.0
AmbientLightingIntensityDay=0.36
AmbientLightingIntensityNight=0.27
AmbientLightingIntensityDay=0.28
AmbientLightingIntensityNight=0.09
AmbientLightingIntensityInterior=0.914
AmbientLightingCurveDay=0.91
AmbientLightingCurveDay=1.01
AmbientLightingCurveNight=1.3
AmbientLightingCurveInterior=0.75
AmbientLightingDesaturationDay=0.0
@ -177,10 +177,10 @@ SpecularFromLightSunrise=0.0
SpecularFromLightSunset=0.0
SpecularFromLightInteriorDay=0.0
SpecularFromLightInteriorNight=0.0
AmbientLightingIntensitySunrise=0.32
AmbientLightingIntensitySunset=0.25
AmbientLightingIntensityInteriorDay=0.37
AmbientLightingIntensityInteriorNight=0.27
AmbientLightingIntensitySunrise=0.24
AmbientLightingIntensitySunset=0.21
AmbientLightingIntensityInteriorDay=0.28
AmbientLightingIntensityInteriorNight=0.15
AmbientLightingCurveSunrise=1.03
AmbientLightingCurveSunset=1.09
AmbientLightingCurveInteriorDay=1.11
@ -189,12 +189,12 @@ AmbientLightingDesaturationSunrise=0.0
AmbientLightingDesaturationSunset=0.0
AmbientLightingDesaturationInteriorDay=0.0
AmbientLightingDesaturationInteriorNight=0.0
AmbientColorFilterAmountSunrise=0.32
AmbientColorFilterAmountDay=0.46
AmbientColorFilterAmountSunset=0.35
AmbientColorFilterAmountNight=0.38
AmbientColorFilterAmountInteriorDay=0.39
AmbientColorFilterAmountInteriorNight=0.32
AmbientColorFilterAmountSunrise=0.0
AmbientColorFilterAmountDay=0.0
AmbientColorFilterAmountSunset=0.0
AmbientColorFilterAmountNight=0.0
AmbientColorFilterAmountInteriorDay=0.0
AmbientColorFilterAmountInteriorNight=0.0
AmbientColorFilterTopSunrise=0.494, 0.443, 0.188
AmbientColorFilterTopDay=0.647, 0.627, 0.506
AmbientColorFilterTopSunset=0.42, 0.224, 0.122
@ -220,7 +220,7 @@ PointLightingIntensityInteriorNight=1.13
PointLightingCurveSunrise=1.35
PointLightingCurveSunset=1.37
PointLightingCurveInteriorDay=1.27
PointLightingCurveInteriorNight=1.29
PointLightingCurveInteriorNight=1.31
PointLightingDesaturationSunrise=0.0
PointLightingDesaturationSunset=0.0
PointLightingDesaturationInteriorDay=0.0
@ -233,12 +233,12 @@ ParticleLightsIntensityInteriorDay=0.6
ParticleLightsIntensityInteriorNight=0.68
FogColorMultiplierSunrise=0.39
FogColorMultiplierSunset=0.48
FogColorMultiplierInteriorDay=0.53
FogColorMultiplierInteriorNight=0.15
FogColorMultiplierInteriorDay=0.55
FogColorMultiplierInteriorNight=0.17
FogColorCurveSunrise=1.04
FogColorCurveSunset=1.03
FogColorCurveInteriorDay=1.07
FogColorCurveInteriorNight=1.14
FogColorCurveInteriorDay=1.11
FogColorCurveInteriorNight=1.15
ColorPowSunrise=1.0
ColorPowSunset=1.0
ColorPowInteriorDay=1.0
@ -284,14 +284,14 @@ SpecularPowerMultiplierDawn=0.56
SpecularPowerMultiplierDusk=0.57
SpecularFromLightDawn=0.0
SpecularFromLightDusk=0.0
AmbientLightingIntensityDawn=0.24
AmbientLightingIntensityDusk=0.25
AmbientLightingIntensityDawn=0.19
AmbientLightingIntensityDusk=0.18
AmbientLightingCurveDawn=1.15
AmbientLightingCurveDusk=1.15
AmbientLightingDesaturationDawn=0.0
AmbientLightingDesaturationDusk=0.0
AmbientColorFilterAmountDawn=0.29
AmbientColorFilterAmountDusk=0.28
AmbientColorFilterAmountDawn=0.0
AmbientColorFilterAmountDusk=0.0
AmbientColorFilterTopDawn=0.318, 0.22, 0.137
AmbientColorFilterTopDusk=0.302, 0.169, 0.129
AmbientColorFilterMiddleDawn=0.176, 0.122, 0.051
@ -659,26 +659,26 @@ OpacityDawn=0.27
OpacityDusk=0.2
[FIRE]
IntensityDay=1.65
IntensityNight=1.84
IntensityDay=0.95
IntensityNight=1.04
IntensityInterior=1.65
CurveDay=0.67
CurveNight=0.63
CurveDay=0.97
CurveNight=0.93
CurveInterior=1.0
IntensitySunrise=1.75
IntensitySunset=1.73
IntensityInteriorDay=2.26
IntensityInteriorNight=1.88
CurveSunrise=0.71
CurveSunset=0.73
CurveInteriorDay=0.78
CurveInteriorNight=0.75
IntensitySunrise=1.05
IntensitySunset=1.03
IntensityInteriorDay=1.01
IntensityInteriorNight=1.03
CurveSunrise=0.91
CurveSunset=0.93
CurveInteriorDay=0.98
CurveInteriorNight=0.95
AdditiveBlending=true
IgnoreWeatherSystem=true
IntensityDawn=1.82
IntensityDusk=1.88
CurveDawn=0.66
CurveDusk=0.69
IntensityDawn=1.02
IntensityDusk=1.08
CurveDawn=0.96
CurveDusk=0.99
[COLORCORRECTION]
UsePaletteTexture=true
@ -843,11 +843,11 @@ ReflectiveAmountDawn=0.14
ReflectiveAmountDusk=0.19
[RAIN]
Enable=false
EnableAntialiasing=false
Enable=true
EnableAntialiasing=true
EnableSupersampling=false
MotionStretch=0.8
MotionTransparency=0.65
MotionStretch=1.0
MotionTransparency=0.75
IgnoreWeatherSystem=true
[EYES]

View file

@ -1 +1 @@
2.2.5-1 "Waifus And Lore"
2.2.6-1 "Waifus And Lore"

View file

@ -1,9 +1,9 @@
[WEATHER001]
FileName=_hotweather.ini
WeatherIDs=81a, 12f89, 2e7ab, a6858, d9329, 10199f, 105941, 10a230, 10a233, 10a237, 10a23a, 10a23b, 10a23f, 10a240, 10a243, 10a7a5, 10a7a8, 10d9ec, 10e1e3, 10e1e4, 10e1e5, 10e1e6, 10e1e9, 10e1ea, 10e1eb, 10e1ec, 10e1ed, 10e1ee, 10e1f1, 10e1f2, 18471, 31ac0, 32336, 374b8, 374b9, 5b29c, 5b29d, 5b2a0, 1760e, 1760f, 19bbe, 19bbf, 19bc0, 1bc0d, 25d8d, 2e982, 2e983, 3ab68, 12eab9, 7761f
WeatherIDs=81a, 12f89, 2e7ab, a6858, d9329, 10199f, 105941, 10a230, 10a233, 10a237, 10a23a, 10a23b, 10a23f, 10a240, 10a243, 10a7a5, 10a7a8, 10d9ec, 10e1e3, 10e1e4, 10e1e5, 10e1e6, 10e1e9, 10e1ea, 10e1eb, 10e1ec, 10e1ed, 10e1ee, 10e1f1, 10e1f2, 18471, 31ac0, 32336, 374b8, 374b9, 5b29c, 5b29d, 5b2a0, 1760e, 1760f, 19bbe, 19bbf, 19bc0, 1bc0d, 25d8d, 2e982, 2e983, 3ab68, 12eab9, 7761f, 701d2, 67bb2
[WEATHER002]
FileName=_coldweather.ini
WeatherIDs=4d7fb, aee84, 4d7fb, c821e, c821f, c8220, c8221, d4886, ecc96, 104ab4, 10da13, 10fef8, 1407, 959f, 10e0b, 10e0e, 10e0f, 10e10, 14551, 18dbb, 18dbc, 18dbd, 19599, 195a0, 1d760, 374ba, 21311
WeatherIDs=4d7fb, aee84, 4d7fb, c821e, c821f, c8220, c8221, d4886, ecc96, 104ab4, 10da13, 10fef8, 1407, 959f, 10e0b, 10e0e, 10e0f, 10e10, 14551, 18dbb, 18dbc, 18dbd, 19599, 195a0, 1d760, 374ba, 21311, 62484, 2c603b, 2da92c
[WEATHER003]
FileName=
[WEATHER004]

View file

@ -31,12 +31,12 @@ Curve Chromatic Aberration=0.56
Curve Zooming=50.360001
Curve Distortion=0.0
Curve Sampling Soften=0.0
Enable Blur=true
Enable Blur=false
Blur Sampling Range=0.15
Enable Sharp=true
Sharp Sampling Range=0.35
Sharpening Amount=2.0
Enable Shift=true
Enable Sharp=false
Sharp Sampling Range=0.25
Sharpening Amount=3.0
Enable Shift=false
Shift Sampling Range=0.6
------Sharpening------------=false
Show Original=false

View file

@ -6,16 +6,16 @@ Bloom Intensity Interior Night=0.75
Bloom Intensity Interior Day=0.69
Bloom Contrast Night=0.96
Bloom Contrast Day=0.98
Bloom Contrast Interior Night=0.95
Bloom Contrast Interior Day=0.97
Bloom Contrast Interior Night=0.98
Bloom Contrast Interior Day=0.99
Bloom Saturation Night=1.08
Bloom Saturation Day=1.07
Bloom Saturation Interior Night=1.06
Bloom Saturation Interior Day=1.03
Bloom Offset Night=-0.03
Bloom Offset Day=-0.04
Bloom Saturation Interior Night=1.05
Bloom Saturation Interior Day=1.04
Bloom Offset Night=-0.04
Bloom Offset Day=-0.05
Bloom Offset Interior Night=-0.04
Bloom Offset Interior Day=-0.05
Bloom Offset Interior Day=-0.06
Bloom Intensity Cap Night=10.0
Bloom Intensity Cap Day=10.0
Bloom Intensity Cap Interior Night=10.0
@ -33,17 +33,17 @@ Blue Shift Interior Night Blue=1.77
Blue Shift Interior Day Red=0.08
Blue Shift Interior Day Green=-0.3
Blue Shift Interior Day Blue=1.39
Blue Shift Intensity Night=0.36
Blue Shift Intensity Day=0.29
Blue Shift Intensity Interior Night=0.42
Blue Shift Intensity Interior Day=0.34
Blue Shift Luminance Factor Per-pass=0.46
Blue Shift Color Factor Per-pass=0.96
Blue Shift Intensity Night=0.16
Blue Shift Intensity Day=0.13
Blue Shift Intensity Interior Night=0.18
Blue Shift Intensity Interior Day=0.15
Blue Shift Luminance Factor Per-pass=0.99
Blue Shift Color Factor Per-pass=1.06
Enable Anamorphic Bloom=true
Anamorphic Bloom Blend Night=0.32
Anamorphic Bloom Blend Day=0.31
Anamorphic Bloom Blend Interior Night=0.33
Anamorphic Bloom Blend Interior Day=0.31
Anamorphic Bloom Blend Interior Day=0.32
Anamorphic Bloom Blue Shift Night Red=0.06
Anamorphic Bloom Blue Shift Night Green=-0.44
Anamorphic Bloom Blue Shift Night Blue=1.39
@ -56,21 +56,21 @@ Anamorphic Bloom Blue Shift Interior Night Blue=1.54
Anamorphic Bloom Blue Shift Interior Day Red=-0.03
Anamorphic Bloom Blue Shift Interior Day Green=-0.11
Anamorphic Bloom Blue Shift Interior Day Blue=1.65
Anamorphic Bloom Blue Shift Intensity Night=0.82
Anamorphic Bloom Blue Shift Intensity Day=0.63
Anamorphic Bloom Blue Shift Interior Night=0.88
Anamorphic Bloom Blue Shift Interior Day=0.72
Anamorphic Bloom Blue Shift Intensity Night=0.47
Anamorphic Bloom Blue Shift Intensity Day=0.32
Anamorphic Bloom Blue Shift Interior Night=0.57
Anamorphic Bloom Blue Shift Interior Day=0.48
Anamorphic Bloom Contrast Night=1.24
Anamorphic Bloom Contrast Day=1.22
Anamorphic Bloom Contrast Interior Night=1.27
Anamorphic Bloom Contrast Interior Day=1.31
Anamorphic Bloom Contrast Interior Night=1.32
Anamorphic Bloom Contrast Interior Day=1.3
Anamorphic Bloom Radius Multiplier=4.0
Bloom Pass 1 Blend=1.13
Bloom Pass 2 Blend=0.95
Bloom Pass 3 Blend=0.84
Bloom Pass 4 Blend=0.64
Bloom Pass 7 Blend=0.52
Bloom Pass 8 Blend=0.34
Bloom Pass 8 Blend=0.35
Bloom Prepass Blend=0.0
Bloom Base Blend=0.0
Enable Lens Dirt=false

View file

@ -124,11 +124,11 @@ Grading Saturation Contrast Interior Day=1.03
Grading Value Intensity Night=1.06
Grading Value Intensity Day=1.04
Grading Value Intensity Interior Night=1.02
Grading Value Intensity Interior Day=1.01
Grading Value Contrast Night=1.1
Grading Value Contrast Day=1.13
Grading Value Contrast Interior Night=1.13
Grading Value Contrast Interior Day=1.16
Grading Value Intensity Interior Day=1.07
Grading Value Contrast Night=1.03
Grading Value Contrast Day=1.05
Grading Value Contrast Interior Night=1.05
Grading Value Contrast Interior Day=1.08
Colorize After HSV=true
Enable Vanilla Tint=true
Vanilla Tint Blend=1.0
@ -139,7 +139,7 @@ Fade Before Film Filters=false
Enable LUT Grading=true
LUT Blend Night=0.25
LUT Blend Day=0.39
LUT Blend Interior Night=0.29
LUT Blend Interior Night=0.31
LUT Blend Interior Day=0.34
LUT Preset=61
Enable ENB Palette=false

View file

@ -50,8 +50,8 @@ DOF Intensity Interior Night=480.799988
DOF Intensity Interior Day=432.299988
DOF Contrast Night=3.46
DOF Contrast Day=3.84
DOF Contrast Interior Night=3.2
DOF Contrast Interior Day=3.5
DOF Contrast Interior Night=3.25
DOF Contrast Interior Day=3.7
DOF Shift Night=-0.1
DOF Shift Day=-0.15
DOF Shift Interior Night=-0.05
@ -92,7 +92,7 @@ DOF Fixed Use Cutoff=true
Disable DOF=false
DOF Bilateral Blur=true
DOF Bilateral Factor=5.0
DOF Blur Radius=1.0
DOF Blur Radius=6.0
DOF Relative to FOV=true
Default FOV=75.0
DOF Relative Factor Night=2.76
@ -138,7 +138,7 @@ SSAO Noise=0
SSAO Fade Contrast Night=0.46
SSAO Fade Contrast Day=0.41
SSAO Fade Contrast Interior Night=0.58
SSAO Fade Contrast Interior Day=0.48
SSAO Fade Contrast Interior Day=0.53
SSAO Fade Intensity Night=1.27
SSAO Fade Intensity Day=1.08
SSAO Fade Intensity Interior Night=1.3
@ -147,13 +147,13 @@ SSAO Intensity=1.25
SSAO Contrast=0.65
SSAO Blending=0.8
SSAO Blur=true
SSAO Bilateral Factor=250.0
SSAO Bilateral Factor=1500.0
SSAO Range=20.0
SSAO Blur Radius=1.0
Debug SSAO=false
Sharpen Enable=true
Sharpen Radius=0.8
Sharpen Clamp=0.1
Sharpen Clamp=0.05
Sharpen Blending=6.0
SSAO Use Less Samples=true
Near Z=0.05
@ -172,7 +172,7 @@ Frost Always Enable=false
Frost Indoor Factor=0.15
Frost Night Factor=0.5
SSAO Bilateral Factor Normal=1.0
SSAO Range Min=0.0
SSAO Range Min=1.0
Frost Blur=false
Frost Blur Radius=1.0
Frost Distance Factor=16.0
@ -180,7 +180,7 @@ SSAO Blur Use Less Samples=true
Bokeh Threshold=1.0
Bokeh Blur Threshold=0.5
Bokeh Size=8.0
DOF Gather Blur Radius=8.0
DOF Gather Blur Radius=6.0
DES mode=0
DES Level=0.0
DES Blend Color=1, 0, 0
@ -218,3 +218,4 @@ Focus Plane Vertical Tilt Center=0.5
Focus Plane Horizontal Tilt=0.0
Focus Plane Vertical Tilt=0.0
Use Only Fixed DOF=false
DOF Blur Chromatic Aberration=1.5

View file

@ -436,11 +436,6 @@ float4 PS_Mari( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
if ( aenable ) res.rgb = Adaptation(res.rgb);
if ( tmapenable ) res.rgb = Tonemap(res.rgb);
if ( bloomdebug ) res.rgb *= 0;
float3 bcol = tex2D(_s3,coord).rgb*EBloomAmount;
if ( bloomlighten )
res.rgb = float3(max(res.r,bcol.r),max(res.g,bcol.g),
max(res.b,bcol.b));
else res.rgb += bcol;
if ( vgradeenable ) res.rgb = GradingGame(res.rgb);
if ( gradeenable1 ) res.rgb = GradingRGB(res.rgb);
if ( colorizeafterhsv )
@ -453,6 +448,11 @@ float4 PS_Mari( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
if ( gradeenable2 ) res.rgb = GradingColorize(res.rgb);
if ( gradeenable3 ) res.rgb = GradingHSV(res.rgb);
}
float3 bcol = tex2D(_s3,coord).rgb*EBloomAmount;
if ( bloomlighten )
res.rgb = float3(max(res.r,bcol.r),max(res.g,bcol.g),
max(res.b,bcol.b));
else res.rgb += bcol;
if ( lutenable ) res.rgb = GradingLUT(res.rgb);
if ( palenable ) res.rgb = GradingPal(res.rgb);
if ( ne ) res.rgb = FilmGrain(res.rgb,coord);

View file

@ -60,6 +60,4 @@
//#define HEAT_DDS
//#define LENSDIRT_DDS
//#define FROST_DDS
//#define FROSTBUMP_DDS
/* optional heavy features (can be toggled to reduce compile times) */
//#define MARIENB_SSAO
//#define FROSTBUMP_DDS

View file

@ -111,7 +111,6 @@ float4 PS_EdgePlusSSAOPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
float4 res = tex2D(SamplerColor,coord);
if ( sharpenable ) res.rgb = Sharpen(res.rgb,coord);
if ( edgevenable ) res.rgb = EdgeView(res.rgb,coord);
#ifdef MARIENB_SSAO
/* get occlusion using single-step Ray Marching with 64 samples */
float ssaofadepow = tod_ind(ssaofadepow);
float ssaofademult = tod_ind(ssaofademult);
@ -138,9 +137,9 @@ float4 PS_EdgePlusSSAOPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
float sdepth, so, delta;
float sclamp = ssaoclamp/100000.0;
float sclampmin = ssaoclampmin/100000.0;
if ( ssaoquarter ) [unroll] for ( i=0; i<16; i++ )
[unroll] for ( i=0; i<16; i++ )
{
sample = reflect(ssao_samples_lq[i],rnormal);
sample = reflect(ssao_samples[i],rnormal);
sample *= sign(dot(normal,sample));
so = ldepth-sample.z*bof.x;
sdepth = depthlinear(coord+bof*sample.xy/ldepth);
@ -149,23 +148,11 @@ float4 PS_EdgePlusSSAOPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
if ( (delta > sclampmin) && (delta < sclamp) )
occ += 1.0-delta;
}
else [unroll] for ( i=0; i<64; i++ )
{
sample = reflect(ssao_samples_hq[i],rnormal);
sample *= sign(dot(normal,sample));
so = ldepth-sample.z*bof.x;
sdepth = depthlinear(coord+bof*sample.xy/ldepth);
delta = saturate(so-sdepth);
delta *= 1.0-smoothstep(0.0,sclamp,delta);
if ( (delta > sclampmin) && (delta < sclamp) )
occ += 1.0-delta;
}
float uocc = saturate(occ/(ssaoquarter?16.0:64.0));
float uocc = saturate(occ/16.0);
float fade = 1.0-depth;
uocc *= saturate(pow(max(0,fade),ssaofadepow)*ssaofademult);
uocc = saturate(pow(max(0,uocc),ssaopow)*ssaomult);
res.a = saturate(1.0-(uocc*ssaoblend));
#endif
return res;
}
/*
@ -204,7 +191,7 @@ float2 DistantHeat( float2 coord )
ofs *= pow(length(ofs),heatpow);
if ( !heatalways ) ofs *= todpow
#ifndef FALLOUT
*weatherfactor(WT_HOT)
*weatherfactor(WT_HOT)+(1.0-weatherfactor(WT_COLD))
#endif
;
odep = tex2D(SamplerDepth,coord+ofs*heatstrength*distfade*0.01).x;
@ -237,7 +224,6 @@ float4 PS_Distortion( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
tex2D(SamplerColor,coord+ofs).a);
return res;
}
#ifdef MARIENB_SSAO
/*
The blur passes use bilateral filtering to mostly preserve borders.
An additional factor using difference of normals was tested, but the
@ -255,16 +241,7 @@ float4 PS_SSAOBlurH( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
res.a = 0.0;
int i;
isd = tex2D(SamplerDepth,coord).x;
if ( ssaohalfblur ) [unroll] for ( i=-7; i<=7; i++ )
{
sd = tex2D(SamplerDepth,coord+float2(i,0)*bof).x;
ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact);
sw = ds;
sw *= gauss8[abs(i)];
tw += sw;
res.a += sw*tex2D(SamplerColor,coord+float2(i,0)*bof).a;
}
else [unroll] for ( i=-15; i<=15; i++ )
[unroll] for ( i=-15; i<=15; i++ )
{
sd = tex2D(SamplerDepth,coord+float2(i,0)*bof).x;
ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact);
@ -292,16 +269,7 @@ float4 PS_SSAOBlurV( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
res.a = 0.0;
int i;
isd = tex2D(SamplerDepth,coord).x;
if ( ssaohalfblur ) [unroll] for ( i=-7; i<=7; i++ )
{
sd = tex2D(SamplerDepth,coord+float2(0,i)*bof).x;
ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact);
sw = ds;
sw *= gauss8[abs(i)];
tw += sw;
res.a += sw*tex2D(SamplerColor,coord+float2(0,i)*bof).a;
}
else [unroll] for ( i=-15; i<=15; i++ )
[unroll] for ( i=-15; i<=15; i++ )
{
sd = tex2D(SamplerDepth,coord+float2(0,i)*bof).x;
ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact);
@ -315,7 +283,6 @@ float4 PS_SSAOBlurV( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
res *= res.a;
return res;
}
#endif
/* Focus */
float4 PS_ReadFocus( VS_OUTPUT_POST IN ) : COLOR
{
@ -416,11 +383,7 @@ float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
res.a = dfc;
return res;
}
/*
This method skips blurring areas that are perfectly in focus. The
performance gain is negligible in most cases, though.
*/
/* gather blur pass */
/* gather blur pass */
float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
{
float2 coord = IN.txcoord.xy;
@ -432,20 +395,25 @@ float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 bof = 1.0/bresl;
/*
Skip blurring areas that are perfectly in focus. The performance
gain is negligible in most cases, though.
*/
if ( dfc <= dofminblur ) return tex2D(SamplerColor,coord);
float4 res = float4(0,0,0,0);
float dep = tex2D(SamplerDepth,coord).x;
float sd, ds, sw, tw = 0;
float ds, sw, tw = 0;
float2 bsz = bof*dofpradius*dfc;
float4 sc;
[unroll] for ( int i=0; i<32; i++ )
{
sc = tex2Dlod(SamplerColor,float4(coord.x
+poisson32[i].x*bsz.x,coord.y+poisson32[i].y
*bsz.y,0.0,dfc*4.0));
sc = float4(tex2D(SamplerColor,coord+poisson32[i]*bsz*(1
+dofpcha*0.1)).r,tex2D(SamplerColor,coord+poisson32[i]
*bsz).g,tex2D(SamplerColor,coord+poisson32[i]*bsz*(1
-dofpcha*0.1)).b,tex2D(SamplerColor,coord+poisson32[i]
*bsz).a);
ds = tex2D(SamplerDepth,coord+poisson32[i]*bsz).x;
sd = tex2D(SamplerColor,coord+poisson32[i]*bsz).a;
sw = (ds>dep)?1.0:sd;
sw = (ds>dep)?1.0:sc.a;
tw += sw;
res += sc*sw;
}
@ -453,6 +421,88 @@ float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
res.a = 1.0;
return res;
}
/* "bokeh" blur pass */
float4 PS_DoFBorkeh( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
{
float2 coord = IN.txcoord.xy;
if ( dofdisable ) return tex2D(SamplerColor,coord);
float dfc = tex2D(SamplerColor,coord).a;
if ( dofdebug ) return tex2D(SamplerDepth,coord).x;
if ( dfcdebug ) return dfc;
float2 bresl;
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 bof = 1.0/bresl;
float4 res = tex2D(SamplerColor,coord);
res.a = 0.0;
/*
Skip blurring areas that are perfectly in focus. The performance
gain is negligible in most cases, though.
*/
if ( dfc <= dofminblur ) return res;
float dep = tex2D(SamplerDepth,coord).x;
float sr = dofpradius*dfc;
float w = max(0,(1/(sr*sr+1))*luminance(res.rgb+0.01));
res *= w;
float tw = w;
float2 bsz = bof*sr;
float4 pc;
float sc, ds;
[unroll] for ( int i=0; i<32; i++ )
{
pc = float4(tex2D(SamplerColor,coord+poisson32[i]*bsz*(1
+dofpcha*0.1)).r,tex2D(SamplerColor,coord+poisson32[i]
*bsz).g,tex2D(SamplerColor,coord+poisson32[i]*bsz*(1
-dofpcha*0.1)).b,tex2D(SamplerColor,coord+poisson32[i]
*bsz).a);
ds = tex2D(SamplerDepth,coord+poisson32[i]*bsz).x;
sc = abs(pc.a*dofpradius);
if ( sr < 0.0 ) sc = max(abs(sr),sc);
w = (1.0/(pow(sc,2)+1))*luminance(pc.rgb+0.01);
w *= saturate(1-smoothstep(sc,sc*1.1,length(poisson32[i]*bsz)
*abs(sr)));
w *= (ds>dep)?1.0:sc;
res += pc*w;
tw += w;
}
res /= tw;
res.a = dfc;
return res;
}
float4 PS_DoFPostBlur( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
{
float2 coord = IN.txcoord.xy;
if ( dofdisable ) return tex2D(SamplerColor,coord);
float dfc = tex2D(SamplerColor,coord).a;
if ( dofdebug ) return tex2D(SamplerDepth,coord).x;
if ( dfcdebug ) return dfc;
float2 bresl;
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 bof = 1.0/bresl;
float2 ofs[16] =
{
float2(1.0,1.0), float2(-1.0,-1.0),
float2(-1.0,1.0), float2(1.0,-1.0),
float2(1.0,0.0), float2(-1.0,0.0),
float2(0.0,1.0), float2(0.0,-1.0),
float2(1.41,0.0), float2(-1.41,0.0),
float2(0.0,1.41), float2(0.0,-1.41),
float2(1.41,1.41), float2(-1.41,-1.41),
float2(-1.41,1.41), float2(1.41,-1.41)
};
float4 res = tex2D(SamplerColor,coord);
int i;
[unroll] for ( i=0; i<16; i++ )
res += tex2D(SamplerColor,coord+ofs[i]*bof*dfc);
res /= 17.0;
res.a = 1.0;
return res;
}
/* Screen frost shader. Not very realistic either, but looks fine too. */
float2 ScreenFrost( float2 coord )
{
@ -606,7 +656,6 @@ technique PostProcess2
SRGBWRITEENABLE = FALSE;
}
}
#ifdef MARIENB_SSAO
technique PostProcess3
{
pass p0
@ -692,8 +741,76 @@ technique PostProcess7
SRGBWRITEENABLE = FALSE;
}
}
#else
technique PostProcess3
technique PostProcessB <string UIName="Bokeh (WIP)";>
{
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_EdgePlusSSAOPrepass();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
ALPHATESTENABLE = FALSE;
SEPARATEALPHABLENDENABLE = FALSE;
AlphaBlendEnable = FALSE;
StencilEnable = FALSE;
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcessB2
{
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_Distortion();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
ALPHATESTENABLE = FALSE;
SEPARATEALPHABLENDENABLE = FALSE;
AlphaBlendEnable = FALSE;
StencilEnable = FALSE;
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcessB3
{
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_SSAOBlurH();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
ALPHATESTENABLE = FALSE;
SEPARATEALPHABLENDENABLE = FALSE;
AlphaBlendEnable = FALSE;
StencilEnable = FALSE;
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcessB4
{
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_SSAOBlurV();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
ALPHATESTENABLE = FALSE;
SEPARATEALPHABLENDENABLE = FALSE;
AlphaBlendEnable = FALSE;
StencilEnable = FALSE;
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcessB5
{
pass p0
{
@ -710,12 +827,12 @@ technique PostProcess3
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcess4
technique PostProcessB6
{
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_DoFGather();
PixelShader = compile ps_3_0 PS_DoFBorkeh();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
@ -727,7 +844,24 @@ technique PostProcess4
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcess5
technique PostProcessB7
{
pass p0
{
VertexShader = compile vs_3_0 VS_Pass();
PixelShader = compile ps_3_0 PS_DoFPostBlur();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
ALPHATESTENABLE = FALSE;
SEPARATEALPHABLENDENABLE = FALSE;
AlphaBlendEnable = FALSE;
StencilEnable = FALSE;
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcessB8
{
pass p0
{
@ -743,5 +877,4 @@ technique PostProcess5
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}
#endif
}

View file

@ -33,9 +33,8 @@ static const float gauss16[16] =
0.033109, 0.031485, 0.029764, 0.027971,
0.026131, 0.024268, 0.022405, 0.020563
};
#ifdef MARIENB_SSAO
/* SSAO samples */
static const float3 ssao_samples_lq[16] =
static const float3 ssao_samples[16] =
{
float3( 0.0000,-0.0002, 0.0000),float3(-0.0004, 0.0013, 0.0014),
float3(-0.0030, 0.0048,-0.0034),float3( 0.0147, 0.0046,-0.0026),
@ -46,42 +45,6 @@ static const float3 ssao_samples_lq[16] =
float3( 0.0072,-0.3534, 0.4035),float3(-0.0024,-0.2385, 0.6260),
float3(-0.1940, 0.5722,-0.5602),float3(-0.0910,-0.7548,-0.6497)
};
static const float3 ssao_samples_hq[64] =
{
float3( 0.0000,-0.0000,-0.0000),float3( 0.0000, 0.0000,-0.0000),
float3( 0.0001,-0.0000,-0.0000),float3( 0.0002, 0.0001,-0.0001),
float3(-0.0000,-0.0005, 0.0000),float3( 0.0004,-0.0004,-0.0006),
float3( 0.0005,-0.0011,-0.0004),float3(-0.0000, 0.0013,-0.0014),
float3( 0.0024, 0.0006, 0.0013),float3(-0.0017,-0.0017, 0.0030),
float3(-0.0037, 0.0033,-0.0011),float3( 0.0010, 0.0018,-0.0063),
float3( 0.0059, 0.0056,-0.0020),float3(-0.0009, 0.0083,-0.0063),
float3(-0.0110, 0.0065,-0.0016),float3( 0.0089, 0.0070,-0.0108),
float3(-0.0115,-0.0134,-0.0062),float3(-0.0121,-0.0172, 0.0071),
float3(-0.0066, 0.0246,-0.0060),float3( 0.0057,-0.0279, 0.0109),
float3(-0.0269,-0.0160,-0.0164),float3( 0.0402, 0.0045, 0.0034),
float3( 0.0248,-0.0045, 0.0390),float3( 0.0110,-0.0491,-0.0159),
float3(-0.0193,-0.0431, 0.0363),float3( 0.0441, 0.0271,-0.0426),
float3( 0.0385,-0.0428,-0.0482),float3(-0.0623,-0.0501, 0.0249),
float3( 0.0683,-0.0000, 0.0631),float3( 0.1008, 0.0180,-0.0114),
float3(-0.0156,-0.0713, 0.0871),float3(-0.0561,-0.0757, 0.0822),
float3( 0.0714, 0.0850,-0.0805),float3(-0.1320,-0.0042, 0.0711),
float3( 0.1553, 0.0486,-0.0167),float3(-0.1164,-0.0125,-0.1341),
float3( 0.1380,-0.1230,-0.0562),float3( 0.0868,-0.1897,-0.0175),
float3( 0.0749, 0.1495, 0.1525),float3(-0.2038,-0.1324,-0.0235),
float3( 0.0205, 0.1920, 0.1784),float3( 0.1637,-0.0964,-0.2092),
float3( 0.2875, 0.0966,-0.0020),float3( 0.0572,-0.0180,-0.3194),
float3(-0.3329, 0.0981,-0.0189),float3( 0.2627, 0.2092,-0.1585),
float3( 0.1783,-0.3359,-0.1108),float3( 0.2675, 0.2056,-0.2533),
float3(-0.1852, 0.3017,-0.2759),float3(-0.0944, 0.3532, 0.3061),
float3(-0.0022,-0.3744, 0.3404),float3(-0.0600,-0.4031,-0.3487),
float3(-0.2663, 0.4915, 0.1004),float3(-0.2442, 0.4253, 0.3468),
float3( 0.2583, 0.1321,-0.5645),float3(-0.0219, 0.4516, 0.4943),
float3(-0.5503, 0.2597,-0.3590),float3( 0.2239,-0.5571,-0.4398),
float3(-0.7210,-0.1982, 0.2339),float3( 0.7948,-0.1848, 0.1145),
float3(-0.7190, 0.1767, 0.4489),float3(-0.5617, 0.5845,-0.4116),
float3(-0.8919,-0.0384, 0.3360),float3(-0.0144, 0.9775,-0.2105)
};
#endif
/* For high quality DOF */
static const float2 poisson32[32] =
{

View file

@ -632,10 +632,15 @@ bool doffixedonly
> = {false};
float dofpradius
<
string UIName = "DOF Gather Blur Radius";
string UIName = "DOF Blur Radius";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {6.0};
float dofpcha
<
string UIName = "DOF Blur Chromatic Aberration";
string UIWidget = "Spinner";
> = {0.0};
#ifndef FALLOUT
bool dofrelfov
<
@ -787,7 +792,6 @@ float edgevradius
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
#ifdef MARIENB_SSAO
/* ssao filter */
string str_ssao = "Ray Marching SSAO";
bool ssaoenable
@ -906,17 +910,6 @@ bool ssaodebug
string UIName = "Debug SSAO";
string UIWidget = "Checkbox";
> = {false};
bool ssaoquarter
<
string UIName = "SSAO Use Less Samples";
string UIWidget = "Checkbox";
> = {true};
bool ssaohalfblur
<
string UIName = "SSAO Blur Use Less Samples";
string UIWidget = "Checkbox";
> = {true};
#endif
/* luma sharpen because of reasons */
string str_sharp = "Luma Sharpen";
bool sharpenable

View file

@ -156,13 +156,13 @@ Darkend
Vigilant
56A0C zzzCHMonoFogWeather -
56A0D zzzCHMonoClearWeather -
62484 zzzCOCursedWeather -
67BB2 zzzCHMolagWeatherNoCore -
701D2 zzzCHMolagWeather -
2C603B zzzCHOldForestStormRain -
2DA92C zzzCHWhaleGraveyardStormSnow -
56A0C zzzCHMonoFogWeather TEMPERATE
56A0D zzzCHMonoClearWeather TEMPERATE
62484 zzzCOCursedWeather COLD
67BB2 zzzCHMolagWeatherNoCore HOT
701D2 zzzCHMolagWeather HOT
2C603B zzzCHOldForestStormRain COLD
2DA92C zzzCHWhaleGraveyardStormSnow COLD
Enderal