1
Fork 0

MariENB FO4 3.4.0

This commit is contained in:
Marisa the Magician 2019-04-07 17:49:25 +02:00
commit 98d725388b
28 changed files with 2842 additions and 734 deletions

View file

@ -56,22 +56,22 @@ AmountInteriorNight=1.0
[SKY] [SKY]
IgnoreWeatherSystem=true IgnoreWeatherSystem=true
Enable=true Enable=true
GradientIntensityDawn=0.89 GradientIntensityDawn=1.02
GradientIntensitySunrise=1.15 GradientIntensitySunrise=1.15
GradientIntensityDay=1.29 GradientIntensityDay=1.29
GradientIntensitySunset=1.130001 GradientIntensitySunset=1.130001
GradientIntensityDusk=0.920001 GradientIntensityDusk=1.080001
GradientIntensityNight=0.620001 GradientIntensityNight=0.410001
GradientIntensityInteriorDay=1.18 GradientIntensityInteriorDay=1.18
GradientIntensityInteriorNight=0.35 GradientIntensityInteriorNight=0.37
GradientDesaturationDawn=0.0 GradientDesaturationDawn=0.35
GradientDesaturationSunrise=0.0 GradientDesaturationSunrise=0.43
GradientDesaturationDay=0.0 GradientDesaturationDay=0.33
GradientDesaturationSunset=0.0 GradientDesaturationSunset=0.45
GradientDesaturationDusk=0.0 GradientDesaturationDusk=0.36
GradientDesaturationNight=0.0 GradientDesaturationNight=0.28
GradientDesaturationInteriorDay=0.0 GradientDesaturationInteriorDay=0.32
GradientDesaturationInteriorNight=0.0 GradientDesaturationInteriorNight=0.23
GradientTopIntensityDawn=0.62 GradientTopIntensityDawn=0.62
GradientTopIntensitySunrise=0.79 GradientTopIntensitySunrise=0.79
GradientTopIntensityDay=0.990001 GradientTopIntensityDay=0.990001
@ -100,7 +100,7 @@ GradientMiddleIntensityDawn=0.84
GradientMiddleIntensitySunrise=1.02 GradientMiddleIntensitySunrise=1.02
GradientMiddleIntensityDay=1.27 GradientMiddleIntensityDay=1.27
GradientMiddleIntensitySunset=1.03 GradientMiddleIntensitySunset=1.03
GradientMiddleIntensityDusk=0.89 GradientMiddleIntensityDusk=0.96
GradientMiddleIntensityNight=0.66 GradientMiddleIntensityNight=0.66
GradientMiddleIntensityInteriorDay=1.0 GradientMiddleIntensityInteriorDay=1.0
GradientMiddleIntensityInteriorNight=0.55 GradientMiddleIntensityInteriorNight=0.55
@ -112,11 +112,11 @@ GradientMiddleCurveDusk=0.92
GradientMiddleCurveNight=0.88 GradientMiddleCurveNight=0.88
GradientMiddleCurveInteriorDay=1.05 GradientMiddleCurveInteriorDay=1.05
GradientMiddleCurveInteriorNight=0.87 GradientMiddleCurveInteriorNight=0.87
GradientMiddleColorFilterDawn=0.965, 0.463, 0.337 GradientMiddleColorFilterDawn=0.976, 0.612, 0.529
GradientMiddleColorFilterSunrise=0.976, 0.702, 0.443 GradientMiddleColorFilterSunrise=0.984, 0.82, 0.663
GradientMiddleColorFilterDay=1, 1, 1 GradientMiddleColorFilterDay=1, 1, 1
GradientMiddleColorFilterSunset=0.976, 0.694, 0.412 GradientMiddleColorFilterSunset=0.984, 0.784, 0.584
GradientMiddleColorFilterDusk=0.969, 0.463, 0.365 GradientMiddleColorFilterDusk=0.984, 0.651, 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
@ -124,7 +124,7 @@ GradientHorizonIntensityDawn=1.11
GradientHorizonIntensitySunrise=1.25 GradientHorizonIntensitySunrise=1.25
GradientHorizonIntensityDay=1.310001 GradientHorizonIntensityDay=1.310001
GradientHorizonIntensitySunset=1.24 GradientHorizonIntensitySunset=1.24
GradientHorizonIntensityDusk=1.12 GradientHorizonIntensityDusk=1.11
GradientHorizonIntensityNight=0.930001 GradientHorizonIntensityNight=0.930001
GradientHorizonIntensityInteriorDay=1.32 GradientHorizonIntensityInteriorDay=1.32
GradientHorizonIntensityInteriorNight=0.94 GradientHorizonIntensityInteriorNight=0.94
@ -132,24 +132,24 @@ GradientHorizonCurveDawn=0.82
GradientHorizonCurveSunrise=0.86 GradientHorizonCurveSunrise=0.86
GradientHorizonCurveDay=0.92 GradientHorizonCurveDay=0.92
GradientHorizonCurveSunset=0.87 GradientHorizonCurveSunset=0.87
GradientHorizonCurveDusk=0.84 GradientHorizonCurveDusk=0.87
GradientHorizonCurveNight=0.78 GradientHorizonCurveNight=0.78
GradientHorizonCurveInteriorDay=0.9 GradientHorizonCurveInteriorDay=0.9
GradientHorizonCurveInteriorNight=0.98 GradientHorizonCurveInteriorNight=0.98
GradientHorizonColorFilterDawn=0.961, 0.306, 0.161 GradientHorizonColorFilterDawn=0.984, 0.667, 0.6
GradientHorizonColorFilterSunrise=0.976, 0.565, 0.388 GradientHorizonColorFilterSunrise=0.992, 0.839, 0.773
GradientHorizonColorFilterDay=1, 1, 1 GradientHorizonColorFilterDay=1, 1, 1
GradientHorizonColorFilterSunset=0.973, 0.557, 0.416 GradientHorizonColorFilterSunset=0.992, 0.827, 0.773
GradientHorizonColorFilterDusk=0.973, 0.259, 0.133 GradientHorizonColorFilterDusk=0.992, 0.753, 0.718
GradientHorizonColorFilterNight=0.655, 0.816, 0.976 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.74 CloudsIntensityDawn=0.87
CloudsIntensitySunrise=0.920001 CloudsIntensitySunrise=0.920001
CloudsIntensityDay=1.240001 CloudsIntensityDay=1.240001
CloudsIntensitySunset=0.910001 CloudsIntensitySunset=0.940001
CloudsIntensityDusk=0.750001 CloudsIntensityDusk=0.860001
CloudsIntensityNight=0.440001 CloudsIntensityNight=0.370001
CloudsIntensityInteriorDay=1.17 CloudsIntensityInteriorDay=1.17
CloudsIntensityInteriorNight=0.49 CloudsIntensityInteriorNight=0.49
CloudsCurveDawn=0.9 CloudsCurveDawn=0.9
@ -157,7 +157,7 @@ CloudsCurveSunrise=0.95
CloudsCurveDay=1.0 CloudsCurveDay=1.0
CloudsCurveSunset=0.97 CloudsCurveSunset=0.97
CloudsCurveDusk=0.91 CloudsCurveDusk=0.91
CloudsCurveNight=0.86 CloudsCurveNight=0.84
CloudsCurveInteriorDay=1.02 CloudsCurveInteriorDay=1.02
CloudsCurveInteriorNight=0.83 CloudsCurveInteriorNight=0.83
CloudsDesaturationDawn=0.0 CloudsDesaturationDawn=0.0
@ -237,27 +237,27 @@ IgnoreWeatherSystem=true
DirectLightingIntensityDawn=1.27 DirectLightingIntensityDawn=1.27
DirectLightingIntensitySunrise=1.47 DirectLightingIntensitySunrise=1.47
DirectLightingIntensityDay=1.72 DirectLightingIntensityDay=1.72
DirectLightingIntensitySunset=1.47 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.06 DirectLightingDesaturationDawn=0.18
DirectLightingDesaturationSunrise=0.12 DirectLightingDesaturationSunrise=0.27
DirectLightingDesaturationDay=0.14 DirectLightingDesaturationDay=0.22
DirectLightingDesaturationSunset=0.11 DirectLightingDesaturationSunset=0.28
DirectLightingDesaturationDusk=0.1 DirectLightingDesaturationDusk=0.18
DirectLightingDesaturationNight=0.04 DirectLightingDesaturationNight=0.23
DirectLightingDesaturationInteriorDay=0.14 DirectLightingDesaturationInteriorDay=0.21
DirectLightingDesaturationInteriorNight=0.04 DirectLightingDesaturationInteriorNight=0.24
DirectLightingColorFilterDawn=0.976, 0.278, 0.231 DirectLightingColorFilterDawn=0.984, 0.455, 0.427
DirectLightingColorFilterSunrise=0.988, 0.788, 0.525 DirectLightingColorFilterSunrise=0.992, 0.824, 0.6
DirectLightingColorFilterDay=1, 1, 1 DirectLightingColorFilterDay=1, 1, 1
DirectLightingColorFilterSunset=0.992, 0.831, 0.553 DirectLightingColorFilterSunset=0.996, 0.824, 0.722
DirectLightingColorFilterDusk=0.976, 0.271, 0.192 DirectLightingColorFilterDusk=0.984, 0.451, 0.388
DirectLightingColorFilterNight=0.424, 0.569, 0.973 DirectLightingColorFilterNight=0.663, 0.749, 0.984
DirectLightingColorFilterInteriorDay=1, 1, 1 DirectLightingColorFilterInteriorDay=1, 1, 1
DirectLightingColorFilterInteriorNight=0.584, 0.506, 0.984 DirectLightingColorFilterInteriorNight=0.655, 0.596, 0.988
AmbientLightingIntensityDawn=0.56 AmbientLightingIntensityDawn=0.56
AmbientLightingIntensitySunrise=0.73 AmbientLightingIntensitySunrise=0.73
AmbientLightingIntensityDay=0.88 AmbientLightingIntensityDay=0.88
@ -270,15 +270,15 @@ AmbientLightingIntensityInteriorNight=0.12
UseIndirectLighting=true UseIndirectLighting=true
SamplingQuality=1 SamplingQuality=1
SamplingRange=0.25 SamplingRange=0.25
AOIntensity=0.96 AOIntensity=0.66
AOIntensityInterior=0.82 AOIntensityInterior=0.61
AOAmount=1.27 AOAmount=1.27
AOAmountInterior=1.2 AOAmountInterior=1.2
ILAmount=1.34 ILAmount=1.32
ILAmountInterior=1.2 ILAmountInterior=1.2
AOMixingType=2 AOMixingType=2
AOMixingTypeInterior=3 AOMixingTypeInterior=2
ResolutionScale=0.5 ResolutionScale=1.0
SourceTexturesScale=0.5 SourceTexturesScale=0.5
[FOG] [FOG]
IgnoreWeatherSystem=true IgnoreWeatherSystem=true

BIN
enbseries/SMAA/AreaTex.dds Normal file

Binary file not shown.

View file

@ -0,0 +1,24 @@
Copyright (C) 2013 Jorge Jimenez (jorge@iryoku.com)
Copyright (C) 2013 Jose I. Echevarria (joseignacioechevarria@gmail.com)
Copyright (C) 2013 Belen Masia (bmasia@unizar.es)
Copyright (C) 2013 Fernando Navarro (fernandn@microsoft.com)
Copyright (C) 2013 Diego Gutierrez (diegog@unizar.es)
Permission is hereby granted, free of charge, to any person obtaining a copy
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. As clarification, there is no
requirement that the copyright notice and permission be included in binary
distributions 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.

1361
enbseries/SMAA/SMAA.fxh Normal file

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -1 +1 @@
3.3.1 "Red Sunset" 3.4.0 "Another Settlement Needs Your Help"

View file

@ -13,7 +13,7 @@ Texture2D TexturePrevious;
SamplerState Sampler0 SamplerState Sampler0
{ {
Filter = MIN_MAG_MIP_LINEAR; Filter = MIN_MAG_MIP_POINT;
AddressU = Clamp; AddressU = Clamp;
AddressV = Clamp; AddressV = Clamp;
}; };
@ -50,7 +50,10 @@ float4 PS_Downsample( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
float4 res = float4(0,0,0,0); float4 res = float4(0,0,0,0);
int x, y; int x, y;
[unroll] for ( y=-8; y<8; y++ ) [unroll] for ( x=-8; x<8; x++ ) [unroll] for ( y=-8; y<8; y++ ) [unroll] for ( x=-8; x<8; x++ )
res += TextureCurrent.Sample(Sampler0,coord+float2(x,y)*ssz); {
res += TextureCurrent.Sample(Sampler0,coord
+float2(x+0.5,y+0.5)*ssz);
}
res /= 256.0; res /= 256.0;
res = luminance(res.rgb); res = luminance(res.rgb);
res.w = 1.0; res.w = 1.0;
@ -67,7 +70,8 @@ float4 PS_Adaptation(VS_OUTPUT_POST IN, float4 v0 : SV_Position0) : SV_Target
int x, y; int x, y;
[unroll] for ( y=-8; y<8; y++ ) [unroll] for ( x=-8; x<8; x++ ) [unroll] for ( y=-8; y<8; y++ ) [unroll] for ( x=-8; x<8; x++ )
{ {
smp = TextureCurrent.Sample(Sampler0,coord+float2(x,y)*ssz).x; smp = TextureCurrent.Sample(Sampler0,coord
+float2(x+0.5,y+0.5)*ssz).x;
smpmax = max(smpmax,smp); smpmax = max(smpmax,smp);
res += smp; res += smp;
} }

View file

@ -335,7 +335,7 @@ Texture2D RenderTarget256;
Texture2D RenderTarget128; Texture2D RenderTarget128;
Texture2D RenderTarget64; Texture2D RenderTarget64;
Texture2D RenderTarget32; Texture2D RenderTarget32;
Texture2D RenderTargetRGBA64F; Texture2D RenderTarget16;
SamplerState Sampler SamplerState Sampler
{ {
@ -412,11 +412,7 @@ float4 PS_PrePass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
return res; return res;
} }
/* /* progressive downsizing of textures, with interpolation. */
progressive downsizing of textures, with interpolation.
First downsample is unnecessary because both textures are the same size.
*/
float4 PS_Downsize( VS_OUTPUT_POST IN, float4 v0 : SV_Position0, float4 PS_Downsize( VS_OUTPUT_POST IN, float4 v0 : SV_Position0,
uniform Texture2D intex, uniform float insz ) : SV_Target uniform Texture2D intex, uniform float insz ) : SV_Target
{ {
@ -445,7 +441,7 @@ float4 PS_Downsize( VS_OUTPUT_POST IN, float4 v0 : SV_Position0,
float4 Anamorphic( float2 coord, Texture2D intex, float insz ) float4 Anamorphic( float2 coord, Texture2D intex, float insz )
{ {
float4 res = float4(0.0,0.0,0.0,0.0), float4 res = float4(0.0,0.0,0.0,0.0),
base = RenderTargetRGBA64F.Sample(Sampler,coord); base = RenderTarget1024.Sample(Sampler,coord);
int i; int i;
float sum = 0.0; float sum = 0.0;
float inc = flen/insz; float inc = flen/insz;
@ -498,7 +494,7 @@ float4 PS_VerticalBlur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0,
float2 coord = IN.txcoord0.xy; float2 coord = IN.txcoord0.xy;
float4 res = float4(0.0,0.0,0.0,0.0), float4 res = float4(0.0,0.0,0.0,0.0),
base = RenderTargetRGBA64F.Sample(Sampler,coord); base = RenderTarget1024.Sample(Sampler,coord);
int i; int i;
float sum = 0.0; float sum = 0.0;
float inc = bloomradiusy/insz; float inc = bloomradiusy/insz;
@ -525,12 +521,12 @@ float4 PS_VerticalBlur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0,
float4 PS_PostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target float4 PS_PostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{ {
float2 coord = IN.txcoord0.xy; float2 coord = IN.txcoord0.xy;
float4 res = bloommix1*RenderTarget1024.Sample(Sampler2,coord); float4 res = bloommix1*RenderTarget512.Sample(Sampler2,coord);
res += bloommix2*RenderTarget512.Sample(Sampler2,coord); res += bloommix2*RenderTarget256.Sample(Sampler2,coord);
res += bloommix3*RenderTarget256.Sample(Sampler2,coord); res += bloommix3*RenderTarget128.Sample(Sampler2,coord);
res += bloommix4*RenderTarget128.Sample(Sampler2,coord); res += bloommix4*RenderTarget64.Sample(Sampler2,coord);
res += bloommix5*RenderTarget64.Sample(Sampler2,coord); res += bloommix5*RenderTarget32.Sample(Sampler2,coord);
res += bloommix6*RenderTarget32.Sample(Sampler2,coord); res += bloommix6*RenderTarget16.Sample(Sampler2,coord);
res.rgb /= 6.0; res.rgb /= 6.0;
res.rgb = clamp(res.rgb,0.0,32768.0); res.rgb = clamp(res.rgb,0.0,32768.0);
res.a = 1.0; res.a = 1.0;
@ -540,13 +536,13 @@ float4 PS_PostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
float4 PS_SPostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target float4 PS_SPostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{ {
float2 coord = IN.txcoord0.xy; float2 coord = IN.txcoord0.xy;
float4 res = bloommixs*RenderTarget128.Sample(Sampler2,coord); float4 res = bloommixs*RenderTarget64.Sample(Sampler2,coord);
res.rgb = clamp(res.rgb,0.0,32768.0); res.rgb = clamp(res.rgb,0.0,32768.0);
res.a = 1.0; res.a = 1.0;
return res; return res;
} }
technique11 BloomSimplePass <string UIName="MariENB Simple Bloom"; string RenderTarget="RenderTargetRGBA64F";> technique11 BloomSimplePass <string UIName="MariENB Simple Bloom"; string RenderTarget="RenderTarget1024";>
{ {
pass p0 pass p0
{ {
@ -554,15 +550,7 @@ technique11 BloomSimplePass <string UIName="MariENB Simple Bloom"; string Render
SetPixelShader(CompileShader(ps_5_0,PS_PrePass())); SetPixelShader(CompileShader(ps_5_0,PS_PrePass()));
} }
} }
technique11 BloomSimplePass1 <string RenderTarget="RenderTarget1024";> technique11 BloomSimplePass1 <string RenderTarget="RenderTarget512";>
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTargetRGBA64F,0.0)));
}
}
technique11 BloomSimplePass2 <string RenderTarget="RenderTarget512";>
{ {
pass p0 pass p0
{ {
@ -570,7 +558,7 @@ technique11 BloomSimplePass2 <string RenderTarget="RenderTarget512";>
SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget1024,1024.0))); SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget1024,1024.0)));
} }
} }
technique11 BloomSimplePass3 <string RenderTarget="RenderTarget256";> technique11 BloomSimplePass2 <string RenderTarget="RenderTarget256";>
{ {
pass p0 pass p0
{ {
@ -578,7 +566,7 @@ technique11 BloomSimplePass3 <string RenderTarget="RenderTarget256";>
SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget512,512.0))); SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget512,512.0)));
} }
} }
technique11 BloomSimplePass4 <string RenderTarget="RenderTarget128";> technique11 BloomSimplePass3 <string RenderTarget="RenderTarget128";>
{ {
pass p0 pass p0
{ {
@ -586,20 +574,28 @@ technique11 BloomSimplePass4 <string RenderTarget="RenderTarget128";>
SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget256,256.0))); SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget256,256.0)));
} }
} }
technique11 BloomSimplePass4 <string RenderTarget="RenderTarget64";>
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget128,128.0)));
}
}
technique11 BloomSimplePass5 technique11 BloomSimplePass5
{ {
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget128,128.0))); SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget64,64.0)));
} }
} }
technique11 BloomSimplePass6 <string RenderTarget="RenderTarget128";> technique11 BloomSimplePass6 <string RenderTarget="RenderTarget64";>
{ {
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,128.0,3.0))); SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,64.0,3.0)));
} }
} }
technique11 BloomSimplePass7 technique11 BloomSimplePass7
@ -611,7 +607,7 @@ technique11 BloomSimplePass7
} }
} }
technique11 BloomPass <string UIName="MariENB Multi Bloom"; string RenderTarget="RenderTargetRGBA64F";> technique11 BloomPass <string UIName="MariENB Multi Bloom"; string RenderTarget="RenderTarget1024";>
{ {
pass p0 pass p0
{ {
@ -619,15 +615,7 @@ technique11 BloomPass <string UIName="MariENB Multi Bloom"; string RenderTarget=
SetPixelShader(CompileShader(ps_5_0,PS_PrePass())); SetPixelShader(CompileShader(ps_5_0,PS_PrePass()));
} }
} }
technique11 BloomPass1 <string RenderTarget="RenderTarget1024";> technique11 BloomPass1 <string RenderTarget="RenderTarget512";>
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTargetRGBA64F,0.0)));
}
}
technique11 BloomPass2 <string RenderTarget="RenderTarget512";>
{ {
pass p0 pass p0
{ {
@ -635,7 +623,7 @@ technique11 BloomPass2 <string RenderTarget="RenderTarget512";>
SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget1024,1024.0))); SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget1024,1024.0)));
} }
} }
technique11 BloomPass3 <string RenderTarget="RenderTarget256";> technique11 BloomPass2 <string RenderTarget="RenderTarget256";>
{ {
pass p0 pass p0
{ {
@ -643,7 +631,7 @@ technique11 BloomPass3 <string RenderTarget="RenderTarget256";>
SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget512,512.0))); SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget512,512.0)));
} }
} }
technique11 BloomPass4 <string RenderTarget="RenderTarget128";> technique11 BloomPass3 <string RenderTarget="RenderTarget128";>
{ {
pass p0 pass p0
{ {
@ -651,7 +639,7 @@ technique11 BloomPass4 <string RenderTarget="RenderTarget128";>
SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget256,256.0))); SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget256,256.0)));
} }
} }
technique11 BloomPass5 <string RenderTarget="RenderTarget64";> technique11 BloomPass4 <string RenderTarget="RenderTarget64";>
{ {
pass p0 pass p0
{ {
@ -659,7 +647,7 @@ technique11 BloomPass5 <string RenderTarget="RenderTarget64";>
SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget128,128.0))); SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget128,128.0)));
} }
} }
technique11 BloomPass6 <string RenderTarget="RenderTarget32";> technique11 BloomPass5 <string RenderTarget="RenderTarget32";>
{ {
pass p0 pass p0
{ {
@ -667,23 +655,15 @@ technique11 BloomPass6 <string RenderTarget="RenderTarget32";>
SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget64,64.0))); SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget64,64.0)));
} }
} }
technique11 BloomPass6 <string RenderTarget="RenderTarget16";>
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_Downsize(RenderTarget32,32.0)));
}
}
technique11 BloomPass7 technique11 BloomPass7
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget1024,1024.0)));
}
}
technique11 BloomPass8 <string RenderTarget="RenderTarget1024";>
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,1024.0,0.0)));
}
}
technique11 BloomPass9
{ {
pass p0 pass p0
{ {
@ -691,15 +671,15 @@ technique11 BloomPass9
SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget512,512.0))); SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget512,512.0)));
} }
} }
technique11 BloomPass10 <string RenderTarget="RenderTarget512";> technique11 BloomPass8 <string RenderTarget="RenderTarget512";>
{ {
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,512.0,1.0))); SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,512.0,0.0)));
} }
} }
technique11 BloomPass11 technique11 BloomPass9
{ {
pass p0 pass p0
{ {
@ -707,15 +687,15 @@ technique11 BloomPass11
SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget256,256.0))); SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget256,256.0)));
} }
} }
technique11 BloomPass12 <string RenderTarget="RenderTarget256";> technique11 BloomPass10 <string RenderTarget="RenderTarget256";>
{ {
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,256.0,2.0))); SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,256.0,1.0)));
} }
} }
technique11 BloomPass13 technique11 BloomPass11
{ {
pass p0 pass p0
{ {
@ -723,15 +703,15 @@ technique11 BloomPass13
SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget128,128.0))); SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget128,128.0)));
} }
} }
technique11 BloomPass14 <string RenderTarget="RenderTarget128";> technique11 BloomPass12 <string RenderTarget="RenderTarget128";>
{ {
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,128.0,3.0))); SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,128.0,2.0)));
} }
} }
technique11 BloomPass15 technique11 BloomPass13
{ {
pass p0 pass p0
{ {
@ -739,15 +719,15 @@ technique11 BloomPass15
SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget64,64.0))); SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget64,64.0)));
} }
} }
technique11 BloomPass16 <string RenderTarget="RenderTarget64";> technique11 BloomPass14 <string RenderTarget="RenderTarget64";>
{ {
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,64.0,4.0))); SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,64.0,3.0)));
} }
} }
technique11 BloomPass17 technique11 BloomPass15
{ {
pass p0 pass p0
{ {
@ -755,12 +735,28 @@ technique11 BloomPass17
SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget32,32.0))); SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget32,32.0)));
} }
} }
technique11 BloomPass18 <string RenderTarget="RenderTarget32";> technique11 BloomPass16 <string RenderTarget="RenderTarget32";>
{ {
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,32.0,5.0))); SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,32.0,4.0)));
}
}
technique11 BloomPass17
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget16,16.0)));
}
}
technique11 BloomPass18 <string RenderTarget="RenderTarget16";>
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,16.0,5.0)));
} }
} }
technique11 BloomPass19 technique11 BloomPass19

View file

@ -1,13 +1,13 @@
[ENBBLOOM.FX] [ENBBLOOM.FX]
TECHNIQUE=2 TECHNIQUE=2
Bloom Intensity Night=0.39 Bloom Intensity Night=0.26
Bloom Intensity Day=0.31 Bloom Intensity Day=0.22
Bloom Intensity Interior=0.35 Bloom Intensity Interior=0.19
Bloom Contrast Night=0.94 Bloom Contrast Night=0.81
Bloom Contrast Day=0.99 Bloom Contrast Day=0.89
Bloom Contrast Interior=0.96 Bloom Contrast Interior=0.91
Bloom Saturation Night=1.39 Bloom Saturation Night=1.39
Bloom Saturation Day=1.35 Bloom Saturation Day=1.33
Bloom Saturation Interior=1.43 Bloom Saturation Interior=1.43
Bloom Offset Night=0.0 Bloom Offset Night=0.0
Bloom Offset Day=0.0 Bloom Offset Day=0.0
@ -21,28 +21,28 @@ Blue Shift Night=0.294, 0.424, 0.859
Blue Shift Day=0.22, 0.537, 0.855 Blue Shift Day=0.22, 0.537, 0.855
Blue Shift Interior=0.337, 0.525, 0.878 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.2 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.7
Blue Shift Color Factor Per-pass=0.8 Blue Shift Color Factor Per-pass=0.8
Enable Anamorphic Bloom=true Enable Anamorphic Bloom=true
Anamorphic Bloom Blend Night=0.59 Anamorphic Bloom Blend Night=0.92
Anamorphic Bloom Blend Day=0.55 Anamorphic Bloom Blend Day=0.86
Anamorphic Bloom Blend Interior=0.64 Anamorphic Bloom Blend Interior=0.83
Anamorphic Bloom Blue Shift Night=0.553, 0.404, 0.851 Anamorphic Bloom Blue Shift Night=0.553, 0.404, 0.851
Anamorphic Bloom Blue Shift Day=0.424, 0.384, 0.831 Anamorphic Bloom Blue Shift Day=0.424, 0.384, 0.831
Anamorphic Bloom Blue Shift Interior=0.537, 0.475, 0.89 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.16 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.41 Anamorphic Bloom Contrast Night=1.14
Anamorphic Bloom Contrast Day=1.45 Anamorphic Bloom Contrast Day=1.18
Anamorphic Bloom Contrast Interior=1.36 Anamorphic Bloom Contrast Interior=1.23
Anamorphic Bloom Radius Multiplier=1.0 Anamorphic Bloom Radius Multiplier=1.0
Bloom Pass 1 Blend=0.11 Bloom Pass 1 Blend=0.11
Bloom Pass 2 Blend=0.24 Bloom Pass 2 Blend=0.2
Bloom Pass 3 Blend=0.39 Bloom Pass 3 Blend=0.39
Bloom Pass 4 Blend=0.53 Bloom Pass 4 Blend=0.58
Bloom Pass 5 Blend=0.78 Bloom Pass 5 Blend=0.72
Bloom Pass 6 Blend=0.9 Bloom Pass 6 Blend=0.86
Bloom Single Pass Blend=0.52 Bloom Single Pass Blend=0.35

View file

@ -626,6 +626,163 @@ float edgevradius
string UIWidget = "Spinner"; string UIWidget = "Spinner";
float UIMin = 0.0; float UIMin = 0.0;
> = {1.0}; > = {1.0};
bool edgevinv
<
string UIName = "Invert Edgevision";
string UIWidget = "Checkbox";
> = {false};
bool edgevblend
<
string UIName = "Blend Edgevision";
string UIWidget = "Checkbox";
> = {false};
/* use luma edge detection filter */
string str_com = "Edge Detect";
bool comenable
<
string UIName = "Enable Edge Detect";
string UIWidget = "Checkbox";
> = {false};
float compow
<
string UIName = "Edge Detect Contrast";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float commult
<
string UIName = "Edge Detect Intensity";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float comradius
<
string UIName = "Edge Detect Radius";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
bool cominv
<
string UIName = "Invert Edge Detect";
string UIWidget = "Checkbox";
> = {false};
bool comblend
<
string UIName = "Blend Edge Detect";
string UIWidget = "Checkbox";
> = {false};
/* use edge threshold filter aka "linevision" */
string str_cont = "Linevision";
bool contenable
<
string UIName = "Enable Linevision";
string UIWidget = "Checkbox";
> = {false};
/* factors */
float contfadepow_n
<
string UIName = "Linevision Fade Contrast Night";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {2.0};
float contfadepow_d
<
string UIName = "Linevision Fade Contrast Day";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {2.0};
float contfadepow_i
<
string UIName = "Linevision Fade Contrast Interior";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {2.0};
float contfademult_n
<
string UIName = "Linevision Fade Intensity Night";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {500.0};
float contfademult_d
<
string UIName = "Linevision Fade Intensity Day";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {500.0};
float contfademult_i
<
string UIName = "Linevision Fade Intensity Interior";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {500.0};
float contpow
<
string UIName = "Linevision Contrast";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float contmult
<
string UIName = "Linevision Intensity";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {2.0};
float contradius
<
string UIName = "Linevision Radius";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float contthreshold
<
string UIName = "Linevision Threshold";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {0.05};
bool continv
<
string UIName = "Invert Linevision";
string UIWidget = "Checkbox";
> = {false};
bool contblend
<
string UIName = "Blend Linevision";
string UIWidget = "Checkbox";
> = {false};
/* fog filter */
string str_fog = "Custom Fog Filter";
bool fogenable
<
string UIName = "Enable Custom Fog";
string UIWidget = "Checkbox";
> = {false};
float fogpow
<
string UIName = "Fog Contrast";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float fogmult
<
string UIName = "Fog Intensity";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float fogbump
<
string UIName = "Fog Shift";
string UIWidget = "Spinner";
> = {0.0};
float3 fogcolor
<
string UIName = "Fog Color";
string UIWidget = "Spinner";
> = {1.0,1.0,1.0};
bool foglimbo
<
string UIName = "Limbo Mode";
string UIWidget = "Checkbox";
> = {false};
/* ssao filter */ /* ssao filter */
string str_ssao = "Ray Marching SSAO"; string str_ssao = "Ray Marching SSAO";
bool ssaoenable bool ssaoenable
@ -693,6 +850,11 @@ float ssaopow
string UIWidget = "Spinner"; string UIWidget = "Spinner";
float UIMin = 0.0; float UIMin = 0.0;
> = {1.5}; > = {1.5};
float ssaobump
<
string UIName = "SSAO Shift";
string UIWidget = "Spinner";
> = {0.0};
float ssaoblend float ssaoblend
< <
string UIName = "SSAO Blending"; string UIName = "SSAO Blending";
@ -979,6 +1141,12 @@ static const float3x3 GY =
0, 0, 0, 0, 0, 0,
-1,-2,-1 -1,-2,-1
}; };
/* radius: 8, std dev: 3 */
static const float gauss8[8] =
{
0.134598, 0.127325, 0.107778, 0.081638,
0.055335, 0.033562, 0.018216, 0.008847
};
/* radius: 16, std dev: 13 */ /* radius: 16, std dev: 13 */
static const float gauss16[16] = static const float gauss16[16] =
{ {
@ -988,18 +1156,42 @@ static const float gauss16[16] =
0.026131, 0.024268, 0.022405, 0.020563 0.026131, 0.024268, 0.022405, 0.020563
}; };
/* SSAO samples */ /* SSAO samples */
static const float3 ssao_samples[16] = static const float3 ssao_samples[64] =
{ {
float3( 0.0000,-0.0002, 0.0000),float3(-0.0004, 0.0013, 0.0014), float3(-0.0051, 0.0021, 0.0146),float3(-0.0197,-0.0213,-0.0116),
float3(-0.0030, 0.0048,-0.0034),float3( 0.0147, 0.0046,-0.0026), float3( 0.0005,-0.0432,-0.0182),float3(-0.0011,-0.0586,-0.0217),
float3(-0.0097, 0.0275,-0.0092),float3(-0.0178,-0.0072, 0.0491), float3(-0.0549, 0.0461, 0.0309),float3(-0.0448,-0.0764,-0.0306),
float3( 0.0227,-0.0431,-0.0681),float3( 0.1052, 0.0332,-0.0588), float3(-0.0366, 0.0758,-0.0699),float3(-0.0770,-0.0707,-0.0686),
float3( 0.0997, 0.0056, 0.1473),float3(-0.1252, 0.2019, 0.0564), float3( 0.1181,-0.0340,-0.0683),float3(-0.0647, 0.0356, 0.1377),
float3(-0.1054,-0.2072, 0.2271),float3(-0.0542, 0.3096, 0.2814), float3(-0.1167, 0.1262, 0.0024),float3(-0.1353,-0.0861, 0.0971),
float3( 0.0072,-0.3534, 0.4035),float3(-0.0024,-0.2385, 0.6260), float3(-0.0096, 0.0936, 0.1800),float3( 0.1311,-0.1013,-0.1429),
float3(-0.1940, 0.5722,-0.5602),float3(-0.0910,-0.7548,-0.6497) 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 high quality DOF */ /* For low quality DOF */
static const float2 poisson32[32] = static const float2 poisson32[32] =
{ {
float2( 0.7284430,-0.1927130),float2( 0.4051600,-0.2312710), float2( 0.7284430,-0.1927130),float2( 0.4051600,-0.2312710),
@ -1042,7 +1234,7 @@ Texture2D RenderTargetR32F; /* for DOF */
Texture2D TextureNoise3 Texture2D TextureNoise3
< <
string ResourceName = "menbnoise2.png"; string ResourceName = "menbnoise3.png";
>; >;
Texture2D TextureHeat Texture2D TextureHeat
< <
@ -1164,7 +1356,7 @@ float4 PS_SSAOPre( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
float sdepth, so, delta; float sdepth, so, delta;
float sclamp = ssaoclamp/100000.0; float sclamp = ssaoclamp/100000.0;
float sclampmin = ssaoclampmin/100000.0; float sclampmin = ssaoclampmin/100000.0;
[unroll] for ( i=0; i<16; i++ ) [unroll] for ( i=0; i<64; i++ )
{ {
sample = reflect(ssao_samples[i],rnormal); sample = reflect(ssao_samples[i],rnormal);
sample *= sign(dot(normal,sample)); sample *= sign(dot(normal,sample));
@ -1175,64 +1367,47 @@ float4 PS_SSAOPre( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
if ( (delta > sclampmin) && (delta < sclamp) ) if ( (delta > sclampmin) && (delta < sclamp) )
occ += 1.0-delta; occ += 1.0-delta;
} }
float uocc = saturate(occ/16.0); float uocc = saturate(occ/64.0);
float fade = 1.0-depth; float fade = 1.0-depth;
uocc *= saturate(pow(max(0,fade),ssaofadepow)*ssaofademult); uocc *= saturate(pow(max(0,fade),ssaofadepow)*ssaofademult);
uocc = saturate(pow(max(0,uocc),ssaopow)*ssaomult); uocc = saturate(pow(max(0,uocc),ssaopow)*ssaomult+ssaobump);
return saturate(1.0-(uocc*ssaoblend)); return saturate(1.0-(uocc*ssaoblend));
} }
/* /*
The blur passes use bilateral filtering to mostly preserve borders. The blur pass uses bilateral filtering to mostly preserve borders.
An additional factor using difference of normals was tested, but the An additional factor using difference of normals was tested, but the
performance decrease was too much, so it's gone forever. performance decrease was too much, so it's gone forever.
*/ */
float4 PS_SSAOBlurH( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target float4 PS_SSAOBlur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{ {
float2 coord = IN.txcoord.xy; float2 coord = IN.txcoord.xy;
if ( !ssaoenable ) return 0.0; float4 res = TextureColor.Sample(Sampler1,coord);
if ( !ssaobenable ) return TextureColor.Sample(Sampler1,coord); float mud = RenderTargetR16F.Sample(Sampler1,coord).x;
float bresl = ScreenSize.x; if ( !ssaoenable ) return res;
float bof = (1.0/bresl)*ssaobradius; if ( !ssaobenable )
float isd, sd, ds, sw, tw = 0;
float res = 0.0;
int i;
isd = TextureDepth.Sample(Sampler1,coord).x;
[unroll] for ( i=-15; i<=15; i++ )
{ {
sd = TextureDepth.Sample(Sampler1,coord+float2(i,0)*bof).x; 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); ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact);
sw = ds; sw = ds;
sw *= gauss16[abs(i)]; sw *= gauss8[abs(i)]*gauss8[abs(j)];
tw += sw; tw += sw;
res += sw*TextureColor.Sample(Sampler1,coord+float2(i,0) mud += sw*RenderTargetR16F.Sample(Sampler1,coord+float2(i,j)
*bof).x; *bof).x;
} }
res /= tw; mud /= tw;
return res; if ( ssaodebug ) return saturate(mud);
} return res*mud;
float4 PS_SSAOBlurV( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord.xy;
if ( !ssaoenable ) return 0.0;
if ( !ssaobenable ) return TextureColor.Sample(Sampler1,coord);
float bresl = ScreenSize.x*ScreenSize.w;
float bof = (1.0/bresl)*ssaobradius;
float isd, sd, ds, sw, tw = 0;
float res = 0.0;
int i;
isd = TextureDepth.Sample(Sampler1,coord).x;
[unroll] for ( i=-15; i<=15; i++ )
{
sd = TextureDepth.Sample(Sampler1,coord+float2(0,i)*bof).x;
ds = 1.0/pow(1.0+abs(isd-sd),ssaobfact);
sw = ds;
sw *= gauss16[abs(i)];
tw += sw;
res += sw*TextureColor.Sample(Sampler1,coord+float2(0,i)
*bof).x;
}
res /= tw;
return res;
} }
/* precalculate DOF factors */ /* precalculate DOF factors */
@ -1312,9 +1487,97 @@ float3 EdgeView( float3 res, float2 coord )
mdy += GY[2][2]*depths[2][2]; mdy += GY[2][2]*depths[2][2];
mud = pow(mdx*mdx+mdy*mdy,0.5); mud = pow(mdx*mdx+mdy*mdy,0.5);
float fade = 1.0-TextureDepth.Sample(Sampler1,coord).x; float fade = 1.0-TextureDepth.Sample(Sampler1,coord).x;
mud *= saturate(pow(max(0,fade),edgevfadepow)*edgevfademult); mud *= clamp(pow(max(0,fade),edgevfadepow)*edgevfademult,0.0,1.0);
mud = saturate(pow(max(0,mud),edgevpow)*edgevmult); mud = clamp(pow(max(0,mud),edgevpow)*edgevmult,0.0,1.0);
return mud; if ( edgevblend ) return res-(edgevinv?1.0-mud:mud);
return edgevinv?1.0-mud:mud;
}
/* luminance edge detection */
float3 EdgeDetect( float3 res, float2 coord )
{
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
if ( fixed.x>0 && fixed.y>0 ) bresl = fixed;
float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*comradius;
float mdx = 0, mdy = 0, mud = 0;
float3x3 lums;
float3 col;
col = TextureOriginal.Sample(Sampler1,coord+float2(-1,-1)*bof).rgb;
lums[0][0] = luminance(col);
col = TextureOriginal.Sample(Sampler1,coord+float2(0,-1)*bof).rgb;
lums[0][1] = luminance(col);
col = TextureOriginal.Sample(Sampler1,coord+float2(1,-1)*bof).rgb;
lums[0][2] = luminance(col);
col = TextureOriginal.Sample(Sampler1,coord+float2(-1,0)*bof).rgb;
lums[1][0] = luminance(col);
col = TextureOriginal.Sample(Sampler1,coord+float2(0,0)*bof).rgb;
lums[1][1] = luminance(col);
col = TextureOriginal.Sample(Sampler1,coord+float2(1,0)*bof).rgb;
lums[1][2] = luminance(col);
col = TextureOriginal.Sample(Sampler1,coord+float2(-1,1)*bof).rgb;
lums[2][0] = luminance(col);
col = TextureOriginal.Sample(Sampler1,coord+float2(0,1)*bof).rgb;
lums[2][1] = luminance(col);
col = TextureOriginal.Sample(Sampler1,coord+float2(1,1)*bof).rgb;
lums[2][2] = luminance(col);
mdx += GX[0][0]*lums[0][0];
mdx += GX[0][1]*lums[0][1];
mdx += GX[0][2]*lums[0][2];
mdx += GX[1][0]*lums[1][0];
mdx += GX[1][1]*lums[1][1];
mdx += GX[1][2]*lums[1][2];
mdx += GX[2][0]*lums[2][0];
mdx += GX[2][1]*lums[2][1];
mdx += GX[2][2]*lums[2][2];
mdy += GY[0][0]*lums[0][0];
mdy += GY[0][1]*lums[0][1];
mdy += GY[0][2]*lums[0][2];
mdy += GY[1][0]*lums[1][0];
mdy += GY[1][1]*lums[1][1];
mdy += GY[1][2]*lums[1][2];
mdy += GY[2][0]*lums[2][0];
mdy += GY[2][1]*lums[2][1];
mdy += GY[2][2]*lums[2][2];
mud = pow(max(mdx*mdx+mdy*mdy,0.0),0.5);
mud = clamp(pow(max(mud,0.0),compow)*commult,0.0,1.0);
if ( comblend ) return res-(cominv?1.0-mud:mud);
return cominv?1.0-mud:mud;
}
/* linevision filter */
float3 LineView( float3 res, float2 coord )
{
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
if ( fixed.x>0 && fixed.y>0 ) bresl = fixed;
float contfadepow = tod_ind(contfadepow);
float contfademult = tod_ind(contfademult);
float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*contradius;
float dep = depthlinear(coord);
float cont = depthlinear(coord+float2(-1,-1)*bof);
cont += depthlinear(coord+float2(0,-1)*bof);
cont += depthlinear(coord+float2(1,-1)*bof);
cont += depthlinear(coord+float2(-1,0)*bof);
cont += depthlinear(coord+float2(1,0)*bof);
cont += depthlinear(coord+float2(-1,1)*bof);
cont += depthlinear(coord+float2(0,1)*bof);
cont += depthlinear(coord+float2(1,1)*bof);
cont /= 8.0;
float mud = 0.0;
if ( abs(cont-dep) > (contthreshold*0.00001) ) mud = 1.0;
float fade = 1.0-TextureDepth.Sample(Sampler1,coord).x;
mud *= clamp(pow(max(0.0,fade),contfadepow)*contfademult,0.0,1.0);
mud = clamp(pow(max(0.0,mud),contpow)*contmult,0.0,1.0);
if ( contblend ) return res-(continv?1.0-mud:mud);
return continv?1.0-mud:mud;
}
/* fog filter */
float3 Limbo( float3 res, float2 coord )
{
float mud = clamp(pow(max(0.0,depthlinear(coord)),fogpow)*fogmult
+fogbump,0.0,1.0);
if ( foglimbo ) return fogcolor*mud;
return lerp(res,fogcolor,mud);
} }
/* Colour grading based on depth */ /* Colour grading based on depth */
@ -1367,17 +1630,25 @@ float3 DepthGrade( float3 res, float2 coord )
return res; return res;
} }
/* apply SSAO to screen */ float4 PS_DepthGrade( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
float4 PS_SSAOApply( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{ {
float2 coord = IN.txcoord.xy; float2 coord = IN.txcoord.xy;
float4 res = TextureOriginal.Sample(Sampler1,coord); float4 res = TextureColor.Sample(Sampler1,coord);
if ( edgevenable ) res.rgb = EdgeView(res.rgb,coord);
res.rgb = DepthGrade(res.rgb,coord); res.rgb = DepthGrade(res.rgb,coord);
if ( !ssaoenable ) return res; res.rgb = max(res.rgb,0.0);
float mud = RenderTargetR16F.Sample(Sampler1,coord).x; return res;
if ( ssaodebug ) return saturate(mud); }
return res*mud;
float4 PS_PreFilters( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord.xy;
float4 res = TextureColor.Sample(Sampler1,coord);
if ( edgevenable ) res.rgb = EdgeView(res.rgb,coord);
if ( comenable ) res.rgb = EdgeDetect(res.rgb,coord);
if ( contenable ) res.rgb = LineView(res.rgb,coord);
if ( fogenable ) res.rgb = Limbo(res.rgb,coord);
res.rgb = max(res.rgb,0.0);
return res;
} }
/* Distant hot air refraction. Not very realistic, but does the job. */ /* Distant hot air refraction. Not very realistic, but does the job. */
@ -1741,7 +2012,7 @@ technique11 Prepass <string UIName="MariENB";>
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_SSAOPre())); SetPixelShader(CompileShader(ps_5_0,PS_PreFilters()));
} }
} }
technique11 Prepass1 technique11 Prepass1
@ -1749,7 +2020,7 @@ technique11 Prepass1
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_SSAOBlurH())); SetPixelShader(CompileShader(ps_5_0,PS_DepthGrade()));
} }
} }
technique11 Prepass2 <string RenderTarget="RenderTargetR16F";> technique11 Prepass2 <string RenderTarget="RenderTargetR16F";>
@ -1757,15 +2028,15 @@ technique11 Prepass2 <string RenderTarget="RenderTargetR16F";>
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_SSAOBlurV())); SetPixelShader(CompileShader(ps_5_0,PS_SSAOPre()));
} }
} }
technique11 Prepass3 <string RenderTarget="RenderTargetR32F";> technique11 Prepass3
{ {
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_DoFPrepass())); SetPixelShader(CompileShader(ps_5_0,PS_Distortion()));
} }
} }
technique11 Prepass4 technique11 Prepass4
@ -1773,15 +2044,15 @@ technique11 Prepass4
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_SSAOApply())); SetPixelShader(CompileShader(ps_5_0,PS_SSAOBlur()));
} }
} }
technique11 Prepass5 technique11 Prepass5 <string RenderTarget="RenderTargetR32F";>
{ {
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_Distortion())); SetPixelShader(CompileShader(ps_5_0,PS_DoFPrepass()));
} }
} }
technique11 Prepass6 technique11 Prepass6
@ -1814,7 +2085,7 @@ technique11 PrepassB <string UIName="MariENB (HQ Bokeh)";>
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_SSAOPre())); SetPixelShader(CompileShader(ps_5_0,PS_PreFilters()));
} }
} }
technique11 PrepassB1 technique11 PrepassB1
@ -1822,7 +2093,7 @@ technique11 PrepassB1
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_SSAOBlurH())); SetPixelShader(CompileShader(ps_5_0,PS_DepthGrade()));
} }
} }
technique11 PrepassB2 <string RenderTarget="RenderTargetR16F";> technique11 PrepassB2 <string RenderTarget="RenderTargetR16F";>
@ -1830,15 +2101,15 @@ technique11 PrepassB2 <string RenderTarget="RenderTargetR16F";>
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_SSAOBlurV())); SetPixelShader(CompileShader(ps_5_0,PS_SSAOPre()));
} }
} }
technique11 PrepassB3 <string RenderTarget="RenderTargetR32F";> technique11 PrepassB3
{ {
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_DoFPrepass())); SetPixelShader(CompileShader(ps_5_0,PS_Distortion()));
} }
} }
technique11 PrepassB4 technique11 PrepassB4
@ -1846,15 +2117,15 @@ technique11 PrepassB4
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_SSAOApply())); SetPixelShader(CompileShader(ps_5_0,PS_SSAOBlur()));
} }
} }
technique11 PrepassB5 technique11 PrepassB5 <string RenderTarget="RenderTargetR32F";>
{ {
pass p0 pass p0
{ {
SetVertexShader(CompileShader(vs_5_0,VS_Quad())); SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_Distortion())); SetPixelShader(CompileShader(ps_5_0,PS_DoFPrepass()));
} }
} }
technique11 PrepassB6 technique11 PrepassB6

View file

@ -7,13 +7,13 @@ Near Z=0.05
Far Z=3098.0 Far Z=3098.0
Distortion Chromatic Aberration=9.5 Distortion Chromatic Aberration=9.5
Enable Hot Air Refraction=true Enable Hot Air Refraction=true
Heat Texture Size=11.71 Heat Texture Size=16.48
Heat Speed=0.56 Heat Speed=0.69
Heat Fade Contrast=235.0 Heat Fade Contrast=47.670006
Heat Fade Intensity=1.14 Heat Fade Intensity=1.08
Heat Fade Offset=-0.81 Heat Fade Offset=-0.97
Heat Intensity=0.45 Heat Intensity=0.82
Heat Contrast=1.19 Heat Contrast=0.55
Heat Factor Dawn=-0.17 Heat Factor Dawn=-0.17
Heat Factor Sunrise=0.62 Heat Factor Sunrise=0.62
Heat Factor Day=1.06 Heat Factor Day=1.06
@ -60,14 +60,14 @@ DOF Fixed Focus Blend Day=1.0
DOF Fixed Focus Blend Interior=1.0 DOF Fixed Focus Blend Interior=1.0
DOF Fixed Focus Depth=0.01 DOF Fixed Focus Depth=0.01
DOF Fixed Focus Cap=0.01 DOF Fixed Focus Cap=0.01
DOF Fixed Unfocus Intensity Night=1.13 DOF Fixed Unfocus Intensity Night=1.11
DOF Fixed Unfocus Intensity Day=1.06 DOF Fixed Unfocus Intensity Day=1.07
DOF Fixed Unfocus Intensity Interior=1.24 DOF Fixed Unfocus Intensity Interior=1.15
DOF Fixed Unfocus Contrast Night=96.980003 DOF Fixed Unfocus Contrast Night=96.980003
DOF Fixed Unfocus Contrast Day=134.399994 DOF Fixed Unfocus Contrast Day=134.399994
DOF Fixed Unfocus Contrast Interior=65.19001 DOF Fixed Unfocus Contrast Interior=65.19001
DOF Fixed Unfocus Shift Night=-0.95 DOF Fixed Unfocus Shift Night=-0.96
DOF Fixed Unfocus Shift Day=-1.16 DOF Fixed Unfocus Shift Day=-1.06
DOF Fixed Unfocus Shift Interior=-0.78 DOF Fixed Unfocus Shift Interior=-0.78
DOF Fixed Unfocus Blend Night=1.0 DOF Fixed Unfocus Blend Night=1.0
DOF Fixed Unfocus Blend Day=1.0 DOF Fixed Unfocus Blend Day=1.0
@ -103,8 +103,8 @@ SSAO Fade Contrast Interior=0.65
SSAO Fade Intensity Night=10.5 SSAO Fade Intensity Night=10.5
SSAO Fade Intensity Day=12.5 SSAO Fade Intensity Day=12.5
SSAO Fade Intensity Interior=11.5 SSAO Fade Intensity Interior=11.5
SSAO Intensity=1.25 SSAO Intensity=1.5
SSAO Contrast=0.65 SSAO Contrast=0.5
SSAO Blending=0.8 SSAO Blending=0.8
SSAO Blur=true SSAO Blur=true
SSAO Bilateral Factor=1500.0 SSAO Bilateral Factor=1500.0
@ -175,7 +175,7 @@ Grading Saturation Contrast Night=1.11
Grading Saturation Contrast Day=1.05 Grading Saturation Contrast Day=1.05
Grading Saturation Contrast Interior=1.07 Grading Saturation Contrast Interior=1.07
Grading Value Intensity Night=0.88 Grading Value Intensity Night=0.88
Grading Value Intensity Day=0.87 Grading Value Intensity Day=0.88
Grading Value Intensity Interior=0.84 Grading Value Intensity Interior=0.84
Grading Value Contrast Night=0.72 Grading Value Contrast Night=0.72
Grading Value Contrast Day=0.68 Grading Value Contrast Day=0.68
@ -190,3 +190,37 @@ Grading Contrast Interior=1.02, 0.98, 0.92
Grading Color Night=-0.32, -0.54, -1.19 Grading Color Night=-0.32, -0.54, -1.19
Grading Color Day=-0.91, -0.4, -0.67 Grading Color Day=-0.91, -0.4, -0.67
Grading Color Interior=-0.66, -0.33, -0.93 Grading Color Interior=-0.66, -0.33, -0.93
Invert Edgevision=false
Blend Edgevision=false
Enable Edge Detect=false
Edge Detect Contrast=1.0
Edge Detect Intensity=1.0
Edge Detect Radius=1.0
Invert Edge Detect=false
Blend Edge Detect=false
Enable Linevision=false
Linevision Fade Contrast Night=2.0
Linevision Fade Contrast Day=2.0
Linevision Fade Contrast Interior=2.0
Linevision Fade Intensity Night=700.0
Linevision Fade Intensity Day=800.0
Linevision Fade Intensity Interior=600.0
Linevision Contrast=1.0
Linevision Intensity=1.0
Linevision Radius=1.0
Linevision Threshold=0.1
Invert Linevision=false
Blend Linevision=false
Enable Custom Fog=false
Fog Contrast=1.0
Fog Intensity=1.0
Fog Shift=0.0
Fog ColorX=1.0
Fog ColorY=1.0
Fog ColorZ=1.0
Limbo Mode=false
SSAO Shift=-0.5
Luma Sharpen Enable=true
Luma Sharpen Radius=0.8
Luma Sharpen Clamp=0.1
Luma Sharpen Blending=8.0

View file

@ -192,6 +192,33 @@ bool nbt
string UIName = "Apply Grain Before Tone Mapping"; string UIName = "Apply Grain Before Tone Mapping";
string UIWidget = "Checkbox"; string UIWidget = "Checkbox";
> = {true}; > = {true};
/* old dirt filter */
string str_dirt = "Screen Dirt";
bool dirtenable
<
string UIName = "Enable Dirt";
string UIWidget = "Checkbox";
> = {false};
float dirtcfactor
<
string UIName = "Dirt Coord Factor";
string UIWidget = "Spinner";
> = {0.1};
float dirtlfactor
<
string UIName = "Dirt Luminance Factor";
string UIWidget = "Spinner";
> = {0.0};
float dirtmc
<
string UIName = "Dirt Coord Zoom";
string UIWidget = "Spinner";
> = {3.0};
float dirtml
<
string UIName = "Dirt Luminance Zoom";
string UIWidget = "Spinner";
> = {1.0};
/* eye adaptation */ /* eye adaptation */
string str_adaptation = "Eye Adaptation"; string str_adaptation = "Eye Adaptation";
bool aenable bool aenable
@ -536,29 +563,6 @@ float lutblend_i
string UIName = "LUT Blend Interior"; string UIName = "LUT Blend Interior";
string UIWidget = "Spinner"; string UIWidget = "Spinner";
> = {1.0}; > = {1.0};
#ifdef LUTMODE_LEGACY
int clut_n
<
string UIName = "LUT Preset Night";
string UIWidget = "Spinner";
int UIMin = 0;
int UIMax = 63;
> = {1};
int clut_d
<
string UIName = "LUT Preset Day";
string UIWidget = "Spinner";
int UIMin = 0;
int UIMax = 63;
> = {1};
int clut_i
<
string UIName = "LUT Preset Interior";
string UIWidget = "Spinner";
int UIMin = 0;
int UIMax = 63;
> = {1};
#endif
/* technicolor shader */ /* technicolor shader */
string str_tech = "Technicolor"; string str_tech = "Technicolor";
bool techenable bool techenable
@ -654,48 +658,30 @@ Texture2D TextureColor;
Texture2D TextureBloom; Texture2D TextureBloom;
Texture2D TextureAdaptation; Texture2D TextureAdaptation;
Texture2D TextureNoise2 Texture2D TextureNoise1
< <
string ResourceName = "menbnoise1.png"; string ResourceName = "menbnoise1.png";
>; >;
Texture2D TextureNoise3 Texture2D TextureNoise2
< <
string ResourceName = "menbnoise2.png"; string ResourceName = "menbnoise2.png";
>; >;
#ifdef LUTMODE_LEGACY Texture2D TextureNoise3
Texture2D TextureLUT
< <
string ResourceName = "menblutpreset.png"; string ResourceName = "menbnoise3.png";
>; >;
#else Texture3D TextureLUTN
Texture2D TextureLUTN
< <
#ifdef LUTMODE_16 string ResourceName = "menblut_night.dds";
string ResourceName = "menblut16_night.png";
#endif
#ifdef LUTMODE_64
string ResourceName = "menblut64_night.png";
#endif
>; >;
Texture2D TextureLUTD Texture3D TextureLUTD
< <
#ifdef LUTMODE_16 string ResourceName = "menblut_day.dds";
string ResourceName = "menblut16_day.png";
#endif
#ifdef LUTMODE_64
string ResourceName = "menblut64_day.png";
#endif
>; >;
Texture2D TextureLUTI Texture3D TextureLUTI
< <
#ifdef LUTMODE_16 string ResourceName = "menblut_interior.dds";
string ResourceName = "menblut16_interior.png";
#endif
#ifdef LUTMODE_64
string ResourceName = "menblut64_interior.png";
#endif
>; >;
#endif
Texture2D TextureTonemap Texture2D TextureTonemap
< <
string ResourceName = "menbfilmlut.png"; string ResourceName = "menbfilmlut.png";
@ -727,30 +713,12 @@ SamplerState Sampler2
AddressU = Wrap; AddressU = Wrap;
AddressV = Wrap; AddressV = Wrap;
}; };
SamplerState SamplerLUT SamplerState SamplerLUT
{ {
Filter = MIN_MAG_MIP_LINEAR; Filter = MIN_MAG_MIP_LINEAR;
AddressU = Wrap; AddressU = Clamp;
AddressV = Wrap; AddressV = Clamp;
MaxLOD = 0; AddressW = Clamp;
MinLOD = 0;
};
SamplerState SamplerNoise2
{
Filter = MIN_LINEAR_MAG_MIP_POINT;
AddressU = Wrap;
AddressV = Wrap;
MaxLOD = 0;
MinLOD = 0;
};
SamplerState SamplerNoise3
{
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Wrap;
AddressV = Wrap;
MaxLOD = 0;
MinLOD = 0;
}; };
struct VS_INPUT_POST struct VS_INPUT_POST
@ -914,58 +882,13 @@ float3 GradingHSV( float3 res )
/* LUT colour grading */ /* LUT colour grading */
float3 GradingLUT( float3 res ) float3 GradingLUT( float3 res )
{ {
/* /* night sample */
gross hacks were needed to "fix" the way direct3d interpolates on float3 tcl_n = TextureLUTN.Sample(SamplerLUT,res).rgb;
sampling, and to manually interpolate on the blue channel /* day sample */
float3 tcl_d = TextureLUTD.Sample(SamplerLUT,res).rgb;
this could be alleviated if I could have all the LUTs as volume /* interior sample */
maps, but I think ENB can't load them. float3 tcl_i = TextureLUTI.Sample(SamplerLUT,res).rgb;
*/ float3 tcol = tod_ind(tcl);
float3 tcol = clamp(res,0.0001,0.9999);
tcol.rg = tcol.rg*0.5+0.25;
#ifdef LUTMODE_LEGACY
float2 lc1 = float2(tcol.r/16.0+floor(tcol.b*16.0)/16.0,tcol.g/64.0);
float2 lc2 = float2(tcol.r/16.0+ceil(tcol.b*16.0)/16.0,tcol.g/64.0);
float dec = (ceil(tcol.b*16.0)==16.0)?(0.0):frac(tcol.b*16.0);
/* night samples */
float3 tcl1_n = TextureLUT.Sample(SamplerLUT,lc1
+float2(0,clut_n/64.0)).rgb;
float3 tcl2_n = TextureLUT.Sample(SamplerLUT,lc2
+float2(0,clut_n/64.0)).rgb;
/* day samples */
float3 tcl1_d = TextureLUT.Sample(SamplerLUT,lc1
+float2(0,clut_d/64.0)).rgb;
float3 tcl2_d = TextureLUT.Sample(SamplerLUT,lc2
+float2(0,clut_d/64.0)).rgb;
/* interior samples */
float3 tcl1_i = TextureLUT.Sample(SamplerLUT,lc1
+float2(0,clut_i/64.0)).rgb;
float3 tcl2_i = TextureLUT.Sample(SamplerLUT,lc2
+float2(0,clut_i/64.0)).rgb;
#else
#ifdef LUTMODE_16
float2 lc1 = float2(tcol.r,tcol.g/16.0+floor(tcol.b*16.0)/16.0);
float2 lc2 = float2(tcol.r,tcol.g/16.0+ceil(tcol.b*16.0)/16.0);
float dec = (ceil(tcol.b*16.0)==16.0)?(0.0):frac(tcol.b*16.0);
#endif
#ifdef LUTMODE_64
float2 lc1 = float2(tcol.r,tcol.g/64.0+floor(tcol.b*64.0)/64.0);
float2 lc2 = float2(tcol.r,tcol.g/64.0+ceil(tcol.b*64.0)/64.0);
float dec = (ceil(tcol.b*64.0)==64.0)?(0.0):frac(tcol.b*64.0);
#endif
/* night samples */
float3 tcl1_n = TextureLUTN.Sample(SamplerLUT,lc1).rgb;
float3 tcl2_n = TextureLUTN.Sample(SamplerLUT,lc2).rgb;
/* day samples */
float3 tcl1_d = TextureLUTD.Sample(SamplerLUT,lc1).rgb;
float3 tcl2_d = TextureLUTD.Sample(SamplerLUT,lc2).rgb;
/* interior samples */
float3 tcl1_i = TextureLUTI.Sample(SamplerLUT,lc1).rgb;
float3 tcl2_i = TextureLUTI.Sample(SamplerLUT,lc2).rgb;
#endif
float3 tcl1 = tod_ind(tcl1);
float3 tcl2 = tod_ind(tcl2);
tcol = lerp(tcl1,tcl2,dec);
float lutblend = tod_ind(lutblend); float lutblend = tod_ind(lutblend);
return lerp(res,tcol,lutblend); return lerp(res,tcol,lutblend);
} }
@ -998,21 +921,21 @@ float3 FilmGrain( float3 res, float2 coord )
*/ */
if ( np ) if ( np )
{ {
n1 = TextureNoise2.Sample(SamplerNoise2,s1*nm1.x*nr).r; n1 = TextureNoise2.Sample(Sampler2,s1*nm1.x*nr).r;
n2 = TextureNoise2.Sample(SamplerNoise2,s2*nm1.y*nr).g; n2 = TextureNoise2.Sample(Sampler2,s2*nm1.y*nr).g;
n3 = TextureNoise2.Sample(SamplerNoise2,s3*nm1.z*nr).b; n3 = TextureNoise2.Sample(Sampler2,s3*nm1.z*nr).b;
s1 = tcs+float2(ts+n1*nk,n2*nk); s1 = tcs+float2(ts+n1*nk,n2*nk);
s2 = tcs+float2(n2,ts+n3*nk); s2 = tcs+float2(n2,ts+n3*nk);
s3 = tcs+float2(ts+n3*nk,ts+n1*nk); s3 = tcs+float2(ts+n3*nk,ts+n1*nk);
n1 = TextureNoise2.Sample(SamplerNoise2,s1*nm2.x*nr).r; n1 = TextureNoise2.Sample(Sampler2,s1*nm2.x*nr).r;
n2 = TextureNoise2.Sample(SamplerNoise2,s2*nm2.y*nr).g; n2 = TextureNoise2.Sample(Sampler2,s2*nm2.y*nr).g;
n3 = TextureNoise2.Sample(SamplerNoise2,s3*nm2.z*nr).b; n3 = TextureNoise2.Sample(Sampler2,s3*nm2.z*nr).b;
} }
else else
{ {
n1 = TextureNoise3.Sample(SamplerNoise3,s1*nm.x*nr).r; n1 = TextureNoise3.Sample(Sampler2,s1*nm.x*nr).r;
n2 = TextureNoise3.Sample(SamplerNoise3,s2*nm.y*nr).g; n2 = TextureNoise3.Sample(Sampler2,s2*nm.y*nr).g;
n3 = TextureNoise3.Sample(SamplerNoise3,s3*nm.z*nr).b; n3 = TextureNoise3.Sample(Sampler2,s3*nm.z*nr).b;
} }
float n4 = (n1+n2+n3)/3; float n4 = (n1+n2+n3)/3;
float3 ng = float3(n4,n4,n4); float3 ng = float3(n4,n4,n4);
@ -1098,6 +1021,20 @@ float2 ScreenFrost( float2 coord )
return coord+ofs; return coord+ofs;
} }
/* Old MariENB 0.x screen dirt filter, updated */
float3 ScreenDirt( float3 res, float2 coord )
{
float2 nr = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w)/256.0;
float3 ncolc = TextureNoise1.Sample(Sampler2,coord*dirtmc*nr).rgb;
float2 ds = float2(res.r+res.g,res.g+res.b)/2.0;
float3 ncoll = TextureNoise1.Sample(Sampler2,ds*dirtml).rgb;
res = lerp(res,(ncolc.r+1.0)*res,dirtcfactor
*saturate(1.0-(ds.x+ds.y)*0.25));
res = lerp(res,(ncoll.r+1.0)*res,dirtlfactor
*saturate(1.0-(ds.x+ds.y)*0.25));
return res;
}
float4 PS_Draw( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target float4 PS_Draw( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{ {
float2 coord = IN.txcoord0.xy; float2 coord = IN.txcoord0.xy;
@ -1105,41 +1042,28 @@ float4 PS_Draw( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed; if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed;
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float4 res, mud; float4 res, mud;
[branch] if ( frostenable ) if ( frostenable )
{ {
float2 ofs = ScreenFrost(coord); float2 ofs = ScreenFrost(coord);
ofs -= coord; ofs -= coord;
if ( (distcha != 0.0) && (length(ofs) != 0.0) ) float2 ofr, ofg, ofb;
{ ofr = ofs*(1.0-distcha*0.01);
float2 ofr, ofg, ofb; ofg = ofs;
ofr = ofs*(1.0-distcha*0.01); ofb = ofs*(1.0+distcha*0.01);
ofg = ofs; res = float4(TextureColor.Sample(Sampler0,coord+ofr).r,
ofb = ofs*(1.0+distcha*0.01); TextureColor.Sample(Sampler0,coord+ofg).g,
res = float4(TextureColor.Sample(Sampler0,coord+ofr).r, TextureColor.Sample(Sampler0,coord+ofb).b,1.0);
TextureColor.Sample(Sampler0,coord+ofg).g,
TextureColor.Sample(Sampler0,coord+ofb).b,1.0);
#ifdef SKYRIMSE #ifdef SKYRIMSE
mud = float4(TextureBloom.Sample(Sampler1,coord+ofr).r, mud = float4(TextureBloom.Sample(Sampler1,coord+ofr).r,
TextureBloom.Sample(Sampler1,coord+ofg).g, TextureBloom.Sample(Sampler1,coord+ofg).g,
TextureBloom.Sample(Sampler1,coord+ofb).b,1.0); TextureBloom.Sample(Sampler1,coord+ofb).b,1.0);
#else #else
mud = float4(TextureBloom.Sample(Sampler1, mud = float4(TextureBloom.Sample(Sampler1,
Params01[4].zw*(coord+ofr)).r, Params01[4].zw*(coord+ofr)).r,
TextureBloom.Sample(Sampler1,Params01[4].zw TextureBloom.Sample(Sampler1,Params01[4].zw
*(coord+ofg)).g,TextureBloom.Sample(Sampler1, *(coord+ofg)).g,TextureBloom.Sample(Sampler1,
Params01[4].zw*(coord+ofb)).b,1.0); Params01[4].zw*(coord+ofb)).b,1.0);
#endif #endif
}
else
{
res = TextureColor.Sample(Sampler0,coord+ofs);
#ifdef SKYRIMSE
mud = TextureBloom.Sample(Sampler1,coord+ofs);
#else
mud = TextureBloom.Sample(Sampler1,Params01[4].zw
*(coord+ofs));
#endif
}
float2 nc = coord*(bresl/FROSTSIZE)*frostsize; float2 nc = coord*(bresl/FROSTSIZE)*frostsize;
float bmp = pow(max(0,TextureFrost.SampleLevel(Sampler2,nc, float bmp = pow(max(0,TextureFrost.SampleLevel(Sampler2,nc,
0).z),frostbpow); 0).z),frostbpow);
@ -1168,6 +1092,7 @@ float4 PS_Draw( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
res.rgb += bcol; res.rgb += bcol;
if ( aenable ) res.rgb *= adapt.x; if ( aenable ) res.rgb *= adapt.x;
if ( nbt && ne ) res.rgb = FilmGrain(res.rgb,coord); if ( nbt && ne ) res.rgb = FilmGrain(res.rgb,coord);
if ( dirtenable ) res.rgb = ScreenDirt(res.rgb,coord);
res.rgb = Tonemap(res.rgb); res.rgb = Tonemap(res.rgb);
if ( vgradeenable ) res.rgb = GradingGame(res.rgb,adapt.y); if ( vgradeenable ) res.rgb = GradingGame(res.rgb,adapt.y);
if ( gradeenable1 ) res.rgb = GradingRGB(res.rgb); if ( gradeenable1 ) res.rgb = GradingRGB(res.rgb);

View file

@ -34,28 +34,28 @@ 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.17 Tonemap Exposure Night=1.18
Tonemap Exposure Day=1.33 Tonemap Exposure Day=1.31
Tonemap Exposure Interior=1.23 Tonemap Exposure Interior=1.23
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.32 Uncharted2 Shoulder Strength Night=0.17
Uncharted2 Shoulder Strength Day=0.28 Uncharted2 Shoulder Strength Day=0.28
Uncharted2 Shoulder Strength Interior=0.22 Uncharted2 Shoulder Strength Interior=0.22
Uncharted2 Linear Strength Night=1.49 Uncharted2 Linear Strength Night=1.58
Uncharted2 Linear Strength Day=1.54 Uncharted2 Linear Strength Day=1.54
Uncharted2 Linear Strength Interior=1.45 Uncharted2 Linear Strength Interior=1.55
Uncharted2 Linear Angle Night=0.66 Uncharted2 Linear Angle Night=0.71
Uncharted2 Linear Angle Day=0.75 Uncharted2 Linear Angle Day=0.77
Uncharted2 Linear Angle Interior=0.71 Uncharted2 Linear Angle Interior=0.74
Uncharted2 Toe Strength Night=0.9 Uncharted2 Toe Strength Night=0.95
Uncharted2 Toe Strength Day=1.05 Uncharted2 Toe Strength Day=1.05
Uncharted2 Toe Strength Interior=1.17 Uncharted2 Toe Strength Interior=1.17
Uncharted2 Toe Numerator Night=0.22 Uncharted2 Toe Numerator Night=0.22
Uncharted2 Toe Numerator Day=0.27 Uncharted2 Toe Numerator Day=0.27
Uncharted2 Toe Numerator Interior=0.25 Uncharted2 Toe Numerator Interior=0.25
Uncharted2 Toe Denominator Night=1.2 Uncharted2 Toe Denominator Night=1.19
Uncharted2 Toe Denominator Day=1.25 Uncharted2 Toe Denominator Day=1.25
Uncharted2 Toe Denominator Interior=1.22 Uncharted2 Toe Denominator Interior=1.22
Uncharted2 Linear White Night=38.509998 Uncharted2 Linear White Night=38.509998
@ -90,29 +90,29 @@ Enable Vibrance Grading=true
Grading Color Night=-0.2, -0.31, -0.62 Grading Color Night=-0.2, -0.31, -0.62
Grading Color Day=-0.84, -0.19, -0.3 Grading Color Day=-0.84, -0.19, -0.3
Grading Color Interior=-0.19, -0.04, -0.7 Grading Color Interior=-0.19, -0.04, -0.7
Grading Color Factor Night=-0.11 Grading Color Factor Night=-0.21
Grading Color Factor Day=-0.15 Grading Color Factor Day=-0.15
Grading Color Factor Interior=-0.09 Grading Color Factor Interior=-0.09
Enable HSV Grading=true Enable HSV Grading=true
Grading Saturation Intensity Night=1.05 Grading Saturation Intensity Night=1.12
Grading Saturation Intensity Day=1.09 Grading Saturation Intensity Day=1.09
Grading Saturation Intensity Interior=1.02 Grading Saturation Intensity Interior=1.06
Grading Saturation Contrast Night=1.12 Grading Saturation Contrast Night=1.13
Grading Saturation Contrast Day=1.23 Grading Saturation Contrast Day=1.12
Grading Saturation Contrast Interior=1.18 Grading Saturation Contrast Interior=1.18
Grading Value Intensity Night=0.92 Grading Value Intensity Night=0.98
Grading Value Intensity Day=0.94 Grading Value Intensity Day=0.94
Grading Value Intensity Interior=0.88 Grading Value Intensity Interior=0.88
Grading Value Contrast Night=1.09 Grading Value Contrast Night=1.18
Grading Value Contrast Day=1.12 Grading Value Contrast Day=1.14
Grading Value Contrast Interior=1.05 Grading Value Contrast Interior=1.13
Colorize After HSV=true Colorize After HSV=true
Enable LUT Grading=true Enable LUT Grading=true
LUT Blend Night=0.32 LUT Blend Night=0.31
LUT Blend Day=0.36 LUT Blend Day=0.35
LUT Blend Interior=0.28 LUT Blend Interior=0.28
Enable Technicolor=true Enable Technicolor=true
Technicolor Blend=0.5 Technicolor Blend=0.6
Enable Vanilla Imagespace=true Enable Vanilla Imagespace=true
Vanilla Tint Contrast=1.14 Vanilla Tint Contrast=1.14
Vanilla Tint Strength=1.0 Vanilla Tint Strength=1.0
@ -123,3 +123,8 @@ Vanilla Vibrance Blend=0.91
Vanilla Contrast Blend=0.96 Vanilla Contrast Blend=0.96
Display Bloom=false Display Bloom=false
Display Adaptation=false Display Adaptation=false
Enable Dirt=false
Dirt Coord Factor=0.08
Dirt Luminance Factor=0.0
Dirt Coord Zoom=2.49
Dirt Luminance Zoom=1.0

File diff suppressed because it is too large Load diff

View file

@ -15,13 +15,13 @@ Dither Range=0.1
Enable Chroma Key=false Enable Chroma Key=false
Chroma Key Red=0, 1, 0 Chroma Key Red=0, 1, 0
Chroma Key Depth=0.99 Chroma Key Depth=0.99
Enable Blur=true Enable Blur=false
Blur Sampling Range=0.2 Blur Sampling Range=0.2
Enable Sharp=true Enable Sharp=false
Sharp Sampling Range=0.41 Sharp Sampling Range=0.41
Sharpening Amount=1.76 Sharpening Amount=1.76
Enable Shift=false Enable Shift=false
Shift Sampling Range=0.6 Shift Sampling Range=0.5
Luma Sharpen Enable=true Luma Sharpen Enable=true
Luma Sharpen Radius=0.8 Luma Sharpen Radius=0.8
Luma Sharpen Clamp=0.1 Luma Sharpen Clamp=0.1
@ -44,3 +44,53 @@ Border Blur Intensity=3.74
Border Blur Shift=0.0 Border Blur Shift=0.0
Border Blur Radius=1.0 Border Blur Radius=1.0
Vignette Color=-0.03, -0.05, -0.07 Vignette Color=-0.03, -0.05, -0.07
Enable Oil Filter=false
Enable FXAA=false
FXAA Span Max=4.0
FXAA Reduce Mul=16.0
FXAA Reduce Min=128.0
Chroma Key Depth Horizontal Tilt Center=0.5
Chroma Key Depth Vertical Tilt Center=0.5
Chroma Key Depth Horizontal Tilt=0.0
Chroma Key Depth Vertical Tilt=0.0
Enable Curvature=false
Curve Chromatic Aberration=0.0
Curve Zooming=50.0
Curve Distortion=0.0
Enable Color Matrix=false
Color Matrix Red Red=1.0
Color Matrix Red Green=0.0
Color Matrix Red Blue=0.0
Color Matrix Green Red=0.0
Color Matrix Green Green=1.0
Color Matrix Green Blue=0.0
Color Matrix Blue Red=0.0
Color Matrix Blue Green=0.0
Color Matrix Blue Blue=1.0
Normalize Matrix=false
Enable Hue-Saturation=false
Overlap=0.5
Global Hue=0.0
Global Saturation=0.0
Global Value=0.0
Red Hue=0.0
Red Saturation=0.0
Red Value=0.0
Yellow Hue=0.0
Yellow Saturation=0.0
Yellow Value=0.0
Green Hue=0.0
Green Saturation=0.0
Green Value=0.0
Cyan Hue=0.0
Cyan Saturation=0.0
Cyan Value=0.0
Blue Hue=0.0
Blue Saturation=0.0
Blue Value=0.0
Magenta Hue=0.0
Magenta Saturation=0.0
Magenta Value=0.0
Enable SMAA=true
SMAA Edge Detection Mode=2
SMAA Debugging=0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View file

@ -68,12 +68,12 @@
#define NOISESIZE 256.0 #define NOISESIZE 256.0
#define HEATSIZE 1024.0 #define HEATSIZE 1024.0
#define FROSTSIZE 1024.0 #define FROSTSIZE 1024.0
/* LUT mode (use only one) - The 256px option was discarded for size reasons */
//#define LUTMODE_LEGACY
//#define LUTMODE_16
#define LUTMODE_64
/* some textures can be provided as DDS rather than PNG to save space */ /* some textures can be provided as DDS rather than PNG to save space */
//#define HEAT_DDS //#define HEAT_DDS
//#define FROST_DDS //#define FROST_DDS
//#define FROSTBUMP_DDS
//#define VIGNETTE_DDS //#define VIGNETTE_DDS
/* SMAA quality */
//#define SMAA_PRESET_LOW
//#define SMAA_PRESET_MEDIUM
//#define SMAA_PRESET_HIGH
#define SMAA_PRESET_ULTRA

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

BIN
enbseries/menblut_day.dds Normal file

Binary file not shown.

Binary file not shown.

BIN
enbseries/menblut_night.dds Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

After

Width:  |  Height:  |  Size: 181 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 KiB

After

Width:  |  Height:  |  Size: 108 KiB

Before After
Before After

BIN
enbseries/menbnoise3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 KiB