1
Fork 0

MariENB FO4 3.0.3a

This commit is contained in:
Marisa the Magician 2019-04-07 17:47:18 +02:00
commit 11f9cab93b
8 changed files with 301 additions and 313 deletions

View file

@ -400,16 +400,12 @@ SamplerState Sampler
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Border;
AddressV = Border;
MaxLOD = 0;
MinLOD = 0;
};
SamplerState Sampler2
{
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Clamp;
AddressV = Clamp;
MaxLOD = 0;
MinLOD = 0;
};
SamplerState SamplerLens
@ -417,8 +413,6 @@ SamplerState SamplerLens
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Mirror;
AddressV = Mirror;
MaxLOD = 0;
MinLOD = 0;
};
struct VS_INPUT_POST
@ -472,7 +466,7 @@ float4 PS_PrePass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
float bloomintensity = tod_ind(bloomintensity);
float4 res = TextureDownsampled.Sample(Sampler2,coord);
float3 hsv = rgb2hsv(res.rgb);
if ( hsv.z > bloomcap ) hsv.z = bloomcap;
hsv.z = min(hsv.z,bloomcap);
res.rgb = hsv2rgb(hsv);
res = max(res+bloombump,0.0);
hsv = rgb2hsv(res.rgb);
@ -493,8 +487,8 @@ float4 PS_Downsize( VS_OUTPUT_POST IN, float4 v0 : SV_Position0,
{
float2 coord = IN.txcoord0.xy;
float2 ssz;
if ( insz > 0.0 ) ssz = float2(1.0/insz,1.0/insz);
else return intex.Sample(Sampler2,coord);
if ( insz <= 0.0 ) return intex.Sample(Sampler2,coord);
ssz = float2(1.0/insz,1.0/insz);
float4 res = 0.25*(intex.Sample(Sampler2,coord)
+intex.Sample(Sampler2,coord+float2(ssz.x,0.0))
+intex.Sample(Sampler2,coord+float2(0.0,ssz.y))
@ -591,43 +585,56 @@ float4 PS_VerticalBlur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0,
}
/* end pass, mix it all up */
float4 PS_PostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0,
uniform bool simple) : SV_Target
float4 PS_PostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord0.xy;
float4 res = float4(0.0,0.0,0.0,0.0);
if ( simple ) res += bloommixs*RenderTarget32.Sample(Sampler2,coord);
else
{
res += bloommix1*RenderTarget1024.Sample(Sampler2,coord);
res += bloommix2*RenderTarget512.Sample(Sampler2,coord);
res += bloommix3*RenderTarget256.Sample(Sampler2,coord);
res += bloommix4*RenderTarget128.Sample(Sampler2,coord);
res += bloommix5*RenderTarget64.Sample(Sampler2,coord);
res += bloommix6*RenderTarget32.Sample(Sampler2,coord);
res.rgb /= 6.0;
}
float4 res = bloommix1*RenderTarget1024.Sample(Sampler2,coord);
res += bloommix2*RenderTarget512.Sample(Sampler2,coord);
res += bloommix3*RenderTarget256.Sample(Sampler2,coord);
res += bloommix4*RenderTarget128.Sample(Sampler2,coord);
res += bloommix5*RenderTarget64.Sample(Sampler2,coord);
res += bloommix6*RenderTarget32.Sample(Sampler2,coord);
res.rgb /= 6.0;
res.rgb = clamp(res.rgb,0.0,32768.0);
res.a = 1.0;
if ( !dirtenable ) return res;
/* crappy lens filter, useful when playing characters with glasses */
float4 mud = float4(0.0,0.0,0.0,0.0);
float2 ccoord = coord;
#ifdef ASPECT_LENSDIRT
ccoord.y = (coord.y-0.5)*ScreenSize.w+0.5;
#endif
float4 crap = TextureLens.Sample(SamplerLens,ccoord);
if ( simple ) mud += dirtmixs*RenderTarget32.Sample(Sampler2,coord);
else
{
mud += dirtmix1*RenderTarget1024.Sample(Sampler2,coord);
mud += dirtmix2*RenderTarget512.Sample(Sampler2,coord);
mud += dirtmix3*RenderTarget256.Sample(Sampler2,coord);
mud += dirtmix4*RenderTarget128.Sample(Sampler2,coord);
mud += dirtmix5*RenderTarget64.Sample(Sampler2,coord);
mud += dirtmix6*RenderTarget32.Sample(Sampler2,coord);
mud.rgb /= 6.0;
}
float4 mud = dirtmix1*RenderTarget1024.Sample(Sampler2,coord);
mud += dirtmix2*RenderTarget512.Sample(Sampler2,coord);
mud += dirtmix3*RenderTarget256.Sample(Sampler2,coord);
mud += dirtmix4*RenderTarget128.Sample(Sampler2,coord);
mud += dirtmix5*RenderTarget64.Sample(Sampler2,coord);
mud += dirtmix6*RenderTarget32.Sample(Sampler2,coord);
mud.rgb /= 6.0;
mud.rgb = clamp(mud.rgb,0.0,32768.0);
float mudmax = luminance(mud.rgb);
float mudn = max(mudmax/(1.0+mudmax),0.0);
mudn = pow(mudn,max(ldirtpow-crap.a,0.0));
mud.rgb *= mudn*ldirtfactor*crap.rgb;
res += max(mud,0.0);
res.a = 1.0;
return res;
}
float4 PS_SPostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord0.xy;
float4 res = bloommixs*RenderTarget32.Sample(Sampler2,coord);
res.rgb = clamp(res.rgb,0.0,32768.0);
res.a = 1.0;
if ( !dirtenable ) return res;
/* crappy lens filter, useful when playing characters with glasses */
float2 ccoord = coord;
#ifdef ASPECT_LENSDIRT
ccoord.y = (coord.y-0.5)*ScreenSize.w+0.5;
#endif
float4 crap = TextureLens.Sample(SamplerLens,ccoord);
float4 mud = dirtmixs*RenderTarget32.Sample(Sampler2,coord);
mud.rgb = clamp(mud.rgb,0.0,32768.0);
float mudmax = luminance(mud.rgb);
float mudn = max(mudmax/(1.0+mudmax),0.0);
@ -718,7 +725,7 @@ technique11 BloomSimplePass9
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_PostPass(true)));
SetPixelShader(CompileShader(ps_5_0,PS_SPostPass()));
}
}
@ -887,6 +894,6 @@ technique11 BloomPass19
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_PostPass(false)));
SetPixelShader(CompileShader(ps_5_0,PS_PostPass()));
}
}

View file

@ -2,41 +2,41 @@
TECHNIQUE=1
Bloom Intensity Night=1.05
Bloom Intensity Day=1.13
Bloom Intensity Interior=1.09
Bloom Intensity Interior=1.1
Bloom Contrast Night=0.54
Bloom Contrast Day=0.86
Bloom Contrast Interior=0.67
Bloom Contrast Interior=0.66
Bloom Saturation Night=0.82
Bloom Saturation Day=0.61
Bloom Saturation Interior=0.75
Bloom Offset Night=-0.14
Bloom Offset Night=-0.16
Bloom Offset Day=-0.32
Bloom Offset Interior=-0.23
Bloom Offset Interior=-0.27
Bloom Intensity Cap Night=100.0
Bloom Intensity Cap Day=100.0
Bloom Intensity Cap Interior=100.0
Bloom Blur Radius=1.0
Blue Shift Night=0.2, 0.6, 1
Blue Shift Day=0.2, 0.6, 1
Blue Shift Interior=0.2, 0.6, 1
Blue Shift Intensity Night=0.49
Blue Shift Intensity Day=0.32
Blue Shift Intensity Interior=0.48
Blue Shift Luminance Factor Per-pass=0.23
Blue Shift Night=0.294, 0.424, 0.859
Blue Shift Day=0.22, 0.537, 0.855
Blue Shift Interior=0.337, 0.525, 0.878
Blue Shift Intensity Night=0.99
Blue Shift Intensity Day=0.72
Blue Shift Intensity Interior=0.88
Blue Shift Luminance Factor Per-pass=0.24
Blue Shift Color Factor Per-pass=0.34
Enable Anamorphic Bloom=true
Anamorphic Bloom Blend Night=0.73
Anamorphic Bloom Blend Day=0.62
Anamorphic Bloom Blend Interior=0.67
Anamorphic Bloom Blue Shift Night=0.4, 0.1, 1
Anamorphic Bloom Blue Shift Day=0.4, 0.1, 1
Anamorphic Bloom Blue Shift Interior=0.4, 0.1, 1
Anamorphic Bloom Blue Shift Intensity Night=2.71
Anamorphic Bloom Blue Shift Intensity Day=1.590001
Anamorphic Bloom Blue Shift Intensity Interior=1.86
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 Interior=0.537, 0.475, 0.89
Anamorphic Bloom Blue Shift Intensity Night=3.31
Anamorphic Bloom Blue Shift Intensity Day=2.59
Anamorphic Bloom Blue Shift Intensity Interior=2.86
Anamorphic Bloom Contrast Night=1.17
Anamorphic Bloom Contrast Day=1.31
Anamorphic Bloom Contrast Interior=1.22
Anamorphic Bloom Contrast Interior=1.24
Anamorphic Bloom Radius Multiplier=1.0
Bloom Intensity Interior Night=1.33
Bloom Intensity Interior Day=1.26
@ -93,9 +93,9 @@ Dirt Pass 3 Blend=0.24
Dirt Pass 4 Blend=0.4
Dirt Pass 5 Blend=0.67
Dirt Pass 6 Blend=3.66
Dirt Contrast=0.85
Dirt Factor=2.33
Dirt Contrast=0.94
Dirt Factor=1.84
Bloom Blur Radius X=1.92
Bloom Blur Radius Y=1.08
Bloom Single Pass Blend=0.41
Dirt Single Pass Blend=1.43
Bloom Single Pass Blend=0.37
Dirt Single Pass Blend=0.71

View file

@ -930,24 +930,18 @@ SamplerState Sampler0
Filter = MIN_MAG_MIP_POINT;
AddressU = Clamp;
AddressV = Clamp;
MinLod = 0;
MaxLod = 0;
};
SamplerState Sampler1
{
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Clamp;
AddressV = Clamp;
MinLod = 0;
MaxLod = 0;
};
SamplerState Sampler2
{
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Wrap;
AddressV = Wrap;
MinLod = 0;
MaxLod = 0;
};
struct VS_INPUT_POST
@ -1282,18 +1276,16 @@ float4 PS_Distortion( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
if ( heatenable ) ofs = DistantHeat(ofs);
ofs -= coord;
float4 res;
if ( (distcha != 0.0) && (length(ofs) != 0) )
{
float2 ofr, ofg, ofb;
ofr = ofs*(1.0-distcha*0.01);
ofg = ofs;
ofb = ofs*(1.0+distcha*0.01);
res = float4(TextureColor.Sample(Sampler1,coord+ofr).r,
TextureColor.Sample(Sampler1,coord+ofg).g,
TextureColor.Sample(Sampler1,coord+ofb).b,
TextureColor.Sample(Sampler1,coord+ofs).a);
}
else res = TextureColor.Sample(Sampler1,coord+ofs);
if ( (distcha == 0.0) || (length(ofs) == 0.0) )
return TextureColor.Sample(Sampler1,coord+ofs);
float2 ofr, ofg, ofb;
ofr = ofs*(1.0-distcha*0.01);
ofg = ofs;
ofb = ofs*(1.0+distcha*0.01);
res = float4(TextureColor.Sample(Sampler1,coord+ofr).r,
TextureColor.Sample(Sampler1,coord+ofg).g,
TextureColor.Sample(Sampler1,coord+ofb).b,
TextureColor.Sample(Sampler1,coord+ofs).a);
return res;
}
@ -1374,29 +1366,26 @@ float4 PS_DoFBlur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed;
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 bof = 1.0/bresl;
if ( dfc > dofminblur )
if ( dfc <= dofminblur ) return TextureColor.Sample(Sampler1,coord);
float4 res = float4(0,0,0,0);
float dep = TextureDepth.Sample(Sampler1,coord).x;
float sd, ds, sw, tw = 0;
float2 bsz = bof*dofpradius*dfc;
float4 sc;
[unroll] for ( int i=0; i<32; i++ )
{
float4 res = float4(0,0,0,0);
float dep = TextureDepth.Sample(Sampler1,coord).x;
float sd, ds, sw, tw = 0;
float2 bsz = bof*dofpradius*dfc;
float4 sc;
[unroll] for ( int i=0; i<32; i++ )
{
sc = TextureColor.Sample(Sampler1,coord+poisson32[i]
*bsz);
ds = TextureDepth.Sample(Sampler1,coord+poisson32[i]
*bsz).x;
sd = RenderTargetR32F.Sample(Sampler1,coord
+poisson32[i]*bsz).x;
sw = (ds>dep)?1.0:sd;
tw += sw;
res += sc*sw;
}
res /= tw;
return res;
sc = TextureColor.SampleLevel(Sampler1,coord+poisson32[i]*bsz,
dfc*4.0);
ds = TextureDepth.Sample(Sampler1,coord+poisson32[i]*bsz).x;
sd = RenderTargetR32F.Sample(Sampler1,coord+poisson32[i]
*bsz).x;
sw = (ds>dep)?1.0:sd;
tw += sw;
res += sc*sw;
}
else return TextureColor.Sample(Sampler1,coord);
res /= tw;
return res;
}
/* simple gaussian / bilateral blur */
@ -1483,23 +1472,22 @@ float4 PS_FrostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
float2 bresl;
if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed;
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 ofs = coord;
if ( frostenable ) ofs = ScreenFrost(ofs);
ofs -= coord;
float4 res;
if ( (distcha != 0.0) && (length(ofs) != 0.0) )
{
float2 ofr, ofg, ofb;
ofr = ofs*(1.0-distcha*0.01);
ofg = ofs;
ofb = ofs*(1.0+distcha*0.01);
res = float4(TextureColor.Sample(Sampler1,coord+ofr).r,
TextureColor.Sample(Sampler1,coord+ofg).g,
TextureColor.Sample(Sampler1,coord+ofb).b,1.0);
}
else res = TextureColor.Sample(Sampler1,coord+ofs);
if ( frostenable )
{
float2 ofs = ScreenFrost(coord);
ofs -= coord;
if ( (distcha != 0.0) && (length(ofs) != 0.0) )
{
float2 ofr, ofg, ofb;
ofr = ofs*(1.0-distcha*0.01);
ofg = ofs;
ofb = ofs*(1.0+distcha*0.01);
res = float4(TextureColor.Sample(Sampler1,coord+ofr).r,
TextureColor.Sample(Sampler1,coord+ofg).g,
TextureColor.Sample(Sampler1,coord+ofb).b,1.0);
}
else res = TextureColor.Sample(Sampler1,coord+ofs);
float2 nc = coord*(bresl/FROSTSIZE)*frostsize;
float bmp = pow(TextureFrost.Sample(Sampler2,nc).x,frostbpow);
float dist = distance(coord,float2(0.5,0.5))*2.0;
@ -1512,6 +1500,7 @@ float4 PS_FrostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
else dist *= todpow;
res.rgb *= 1.0+bmp*dist;
}
else res = TextureColor.Sample(Sampler1,coord);
if ( !focusdisplay ) return res;
if ( distance(coord,focuscenter) < 0.01 ) res.rgb = float3(1,0,0);
float cstep = (1.0/3.0);

View file

@ -1,5 +1,5 @@
[ENBDEPTHOFFIELD.FX]
TECHNIQUE=1
TECHNIQUE=2
Fixed Resolution Width=1920
Fixed Resolution Height=1080
Depth Cutoff=999998.0
@ -12,7 +12,7 @@ Underwater Speed=24.3, 21.9, 26.5
Underwater Amplitude=0.1, 0.11, 0.07
Underwater Zoom=0.15
Always Underwater=false
Enable Hot Air Refraction=false
Enable Hot Air Refraction=true
Heat Texture Size=6.4
Heat Speed=0.45
Heat Fade Contrast=235.0
@ -28,8 +28,8 @@ Frost Strength=0.05
Frost Radial Contrast=0.8
Frost Radial Intensity=1.2
Frost Radial Offset=-0.9
Frost Texture Blend=3.8
Frost Texture Blend Contrast=4.5
Frost Texture Blend=3.72
Frost Texture Blend Contrast=4.52
Frost Texture Size=1.0
Frost Indoor Factor=0.0
Frost Night Factor=0.0
@ -180,7 +180,7 @@ Frost Factor Sunrise=0.0
Frost Factor Day=0.0
Frost Factor Sunset=0.0
Frost Factor Dusk=0.0
Frost Factor Night=0.28
Frost Factor Night=1.0
Frost Factor Interior=0.0
DOF Bilateral Factor=20.0
DOF Bilateral Radius=1.0

View file

@ -486,16 +486,12 @@ SamplerState Sampler0
Filter = MIN_MAG_MIP_POINT;
AddressU = Clamp;
AddressV = Clamp;
MaxLOD = 0;
MinLOD = 0;
};
SamplerState Sampler1
{
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Clamp;
AddressV = Clamp;
MaxLOD = 0;
MinLOD = 0;
};
SamplerState SamplerLUT
{

View file

@ -2,7 +2,7 @@
TECHNIQUE=1
Enable Grain=true
Grain Speed=2500.0
Grain Intensity=0.02
Grain Intensity=0.03
Grain Saturation=-0.23
Grain Two-Pass=true
Grain Blending Mode=3
@ -16,54 +16,54 @@ Enable Tonemapping=true
Tonemap Shoulder Strength Night=1.12
Tonemap Shoulder Strength Day=1.22
Tonemap Shoulder Strength Interior=1.14
Tonemap Linear Strength Night=0.7
Tonemap Linear Strength Night=0.67
Tonemap Linear Strength Day=0.87
Tonemap Linear Strength Interior=0.92
Tonemap Linear Angle Night=0.76
Tonemap Linear Strength Interior=0.75
Tonemap Linear Angle Night=0.85
Tonemap Linear Angle Day=0.73
Tonemap Linear Angle Interior=0.58
Tonemap Toe Strength Night=0.91
Tonemap Linear Angle Interior=0.77
Tonemap Toe Strength Night=0.93
Tonemap Toe Strength Day=0.81
Tonemap Toe Strength Interior=0.69
Tonemap Toe Numerator Night=3.73
Tonemap Toe Strength Interior=0.83
Tonemap Toe Numerator Night=3.74
Tonemap Toe Numerator Day=3.93
Tonemap Toe Numerator Interior=2.72
Tonemap Toe Denominator Night=1.34
Tonemap Toe Numerator Interior=3.8
Tonemap Toe Denominator Night=1.33
Tonemap Toe Denominator Day=1.14
Tonemap Toe Denominator Interior=1.07
Tonemap Linear White Night=1.29
Tonemap Toe Denominator Interior=1.25
Tonemap Linear White Night=1.28
Tonemap Linear White Day=1.39
Tonemap Linear White Interior=1.37
Tonemap Linear White Interior=1.32
Enable RGB Grading=true
Grading Intensity Night=1.04, 1.08, 1.07
Grading Intensity Day=1.09, 1.04, 1.01
Grading Intensity Interior=1.1, 1.05, 1.02
Grading Contrast Night=0.97, 0.94, 0.96
Grading Contrast Day=0.89, 0.99, 0.97
Grading Contrast Day=0.84, 0.94, 0.97
Grading Contrast Interior=0.94, 0.96, 0.99
Enable Vibrance Grading=true
Grading Color Night=-0.91, -0.62, -0.94
Grading Color Day=-0.81, -0.15, -0.47
Grading Color Day=-1.16, -0.06, -0.23
Grading Color Interior=-0.47, -0.12, -0.14
Grading Color Factor Night=-0.15
Grading Color Factor Day=-0.07
Grading Color Factor Interior=-0.09
Grading Color Factor Night=-0.14
Grading Color Factor Day=-0.12
Grading Color Factor Interior=-0.1
Enable HSV Grading=true
Grading Saturation Intensity Night=1.42
Grading Saturation Intensity Day=1.54
Grading Saturation Intensity Day=1.51
Grading Saturation Intensity Interior=1.46
Grading Saturation Contrast Night=1.22
Grading Saturation Contrast Day=1.19
Grading Saturation Contrast Night=1.21
Grading Saturation Contrast Day=1.07
Grading Saturation Contrast Interior=1.1
Grading Value Intensity Night=1.03
Grading Value Intensity Day=1.03
Grading Value Intensity Day=1.11
Grading Value Intensity Interior=1.09
Grading Value Contrast Night=1.58
Grading Value Contrast Day=1.74
Grading Value Contrast Interior=1.62
Grading Value Contrast Night=1.67
Grading Value Contrast Day=1.48
Grading Value Contrast Interior=1.58
Colorize After HSV=true
Enable LUT Grading=true
LUT Blend Night=0.44
LUT Blend Night=0.58
LUT Blend Day=0.77
LUT Blend Interior=0.45
Enable Post Dither=true

View file

@ -457,16 +457,12 @@ SamplerState Sampler
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Clamp;
AddressV = Clamp;
MaxLOD = 0;
MinLOD = 0;
};
SamplerState SamplerB
{
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Border;
AddressV = Border;
MaxLOD = 0;
MinLOD = 0;
};
SamplerState SamplerFont
{