1
Fork 0

MariENB FO4 3.0.6a

This commit is contained in:
Marisa the Magician 2019-04-07 17:47:57 +02:00
commit e2d4b777f7
9 changed files with 210 additions and 208 deletions

View file

@ -529,7 +529,7 @@ float4 Anamorphic( float2 coord, Texture2D intex, float insz )
res.rgb *= lerp(1.0,flu,lm);
float fbl = tod_ind(fbl);
float fpw = tod_ind(fpw);
res.rgb = pow(res.rgb,fpw)*fbl;
res.rgb = pow(max(0,res.rgb),fpw)*fbl;
return res;
}

View file

@ -1,17 +1,17 @@
[ENBBLOOM.FX]
TECHNIQUE=1
Bloom Intensity Night=0.51
Bloom Intensity Day=0.43
Bloom Intensity Interior=0.46
Bloom Contrast Night=0.92
Bloom Contrast Day=0.95
TECHNIQUE=2
Bloom Intensity Night=0.78
Bloom Intensity Day=0.67
Bloom Intensity Interior=0.71
Bloom Contrast Night=0.88
Bloom Contrast Day=0.98
Bloom Contrast Interior=0.93
Bloom Saturation Night=0.87
Bloom Saturation Day=0.77
Bloom Saturation Day=0.81
Bloom Saturation Interior=0.84
Bloom Offset Night=-0.28
Bloom Offset Day=-0.44
Bloom Offset Interior=-0.38
Bloom Offset Night=-0.14
Bloom Offset Day=-0.23
Bloom Offset Interior=-0.16
Bloom Intensity Cap Night=1.0
Bloom Intensity Cap Day=1.0
Bloom Intensity Cap Interior=1.0
@ -19,15 +19,15 @@ Bloom Blur Radius=1.0
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.97
Blue Shift Intensity Day=0.72
Blue Shift Intensity Night=0.96
Blue Shift Intensity Day=0.71
Blue Shift Intensity Interior=0.88
Blue Shift Luminance Factor Per-pass=0.31
Blue Shift Color Factor Per-pass=0.79
Enable Anamorphic Bloom=true
Anamorphic Bloom Blend Night=0.68
Anamorphic Bloom Blend Day=0.34
Anamorphic Bloom Blend Interior=0.44
Anamorphic Bloom Blend Night=0.95
Anamorphic Bloom Blend Day=0.7
Anamorphic Bloom Blend Interior=0.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
@ -37,7 +37,7 @@ Anamorphic Bloom Blue Shift Intensity Interior=1.86
Anamorphic Bloom Contrast Night=0.95
Anamorphic Bloom Contrast Day=1.0
Anamorphic Bloom Contrast Interior=0.97
Anamorphic Bloom Radius Multiplier=1.0
Anamorphic Bloom Radius Multiplier=2.0
Bloom Intensity Interior Night=1.33
Bloom Intensity Interior Day=1.26
Bloom Contrast Interior Night=0.73
@ -80,22 +80,22 @@ Anamorphic Bloom Blue Shift Interior Night=1.86
Anamorphic Bloom Blue Shift Interior Day=1.86
Anamorphic Bloom Contrast Interior Night=1.12
Anamorphic Bloom Contrast Interior Day=1.22
Bloom Pass 1 Blend=0.13
Bloom Pass 2 Blend=0.24
Bloom Pass 3 Blend=0.36
Bloom Pass 4 Blend=0.52
Bloom Pass 5 Blend=0.69
Bloom Pass 6 Blend=1.0
Bloom Pass 1 Blend=0.98
Bloom Pass 2 Blend=0.94
Bloom Pass 3 Blend=0.88
Bloom Pass 4 Blend=0.89
Bloom Pass 5 Blend=0.91
Bloom Pass 6 Blend=0.98
Enable Lens Dirt=true
Dirt Pass 1 Blend=0.03
Dirt Pass 2 Blend=0.12
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.92
Dirt Pass 6 Blend=5.15
Dirt Contrast=0.91
Dirt Factor=2.07
Bloom Blur Radius X=1.0
Bloom Blur Radius Y=1.0
Bloom Single Pass Blend=0.29
Bloom Single Pass Blend=0.53
Dirt Single Pass Blend=1.13

View file

@ -971,7 +971,7 @@ VS_OUTPUT_POST VS_Quad( VS_INPUT_POST IN )
/* these are znear/zfar values for Skyrim, but MAY match Fallout too */
float depthlinear( float2 coord )
{
float z = TextureDepth.Sample(Sampler1,coord).x;
float z = TextureDepth.SampleLevel(Sampler1,coord,0).x;
return (2*zNear)/(zFar+zNear-z*(zFar-zNear));
}
@ -986,8 +986,8 @@ float3 pseudonormal( float dep, float2 coord )
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 ofs1 = float2(0,1.0/bresl.y);
float2 ofs2 = float2(1.0/bresl.x,0);
float dep1 = TextureDepth.Sample(Sampler1,coord+ofs1).x;
float dep2 = TextureDepth.Sample(Sampler1,coord+ofs2).x;
float dep1 = TextureDepth.SampleLevel(Sampler1,coord+ofs1,0).x;
float dep2 = TextureDepth.SampleLevel(Sampler1,coord+ofs2,0).x;
float3 p1 = float3(ofs1,dep1-dep);
float3 p2 = float3(ofs2,dep2-dep);
float3 normal = cross(p1,p2);
@ -1012,9 +1012,9 @@ float4 PS_SSAOPre( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
float3 normal = pseudonormal(depth,coord);
float2 nc = coord*(bresl/256.0);
float2 bof = float2(1.0/bresl.x,1.0/bresl.y)*ssaoradius;
float2 nc2 = TextureNoise3.Sample(Sampler2,nc+48000.0*Timer.x
*ssaonoise).xy;
float3 rnormal = TextureNoise3.Sample(Sampler2,nc2).xyz*2.0-1.0;
float2 nc2 = TextureNoise3.SampleLevel(Sampler2,nc+48000.0*Timer.x
*ssaonoise,0).xy;
float3 rnormal = TextureNoise3.SampleLevel(Sampler2,nc2,0).xyz*2.0-1.0;
rnormal = normalize(rnormal);
float occ = 0.0;
int i;
@ -1026,7 +1026,7 @@ float4 PS_SSAOPre( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
sample = reflect(ssao_samples_lq[i],rnormal);
sample *= sign(dot(normal,sample));
so = ldepth-sample.z*bof;
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);
@ -1037,7 +1037,7 @@ float4 PS_SSAOPre( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
sample = reflect(ssao_samples_hq[i],rnormal);
sample *= sign(dot(normal,sample));
so = ldepth-sample.z*bof;
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);
@ -1046,8 +1046,8 @@ float4 PS_SSAOPre( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
}
float uocc = saturate(occ/(ssaoquarter?16.0:64.0));
float fade = 1.0-depth;
uocc *= saturate(pow(fade,ssaofadepow)*ssaofademult);
uocc = saturate(pow(uocc,ssaopow)*ssaomult);
uocc *= saturate(pow(max(0,fade),ssaofadepow)*ssaofademult);
uocc = saturate(pow(max(0,uocc),ssaopow)*ssaomult);
return saturate(1.0-(uocc*ssaoblend));
}
/*
@ -1207,8 +1207,8 @@ float3 EdgeView( float3 res, float2 coord )
mdy += GY[2][2]*depths[2][2];
mud = pow(mdx*mdx+mdy*mdy,0.5);
float fade = 1.0-TextureDepth.Sample(Sampler1,coord).x;
mud *= saturate(pow(fade,edgevfadepow)*edgevfademult);
mud = saturate(pow(mud,edgevpow)*edgevmult);
mud *= saturate(pow(max(0,fade),edgevfadepow)*edgevfademult);
mud = saturate(pow(max(0,mud),edgevpow)*edgevmult);
return mud;
}
@ -1242,8 +1242,8 @@ float2 DistantHeat( float2 coord )
float2 bresl;
float dep, odep;
dep = TextureDepth.Sample(Sampler1,coord).x;
float distfade = clamp(pow(dep,heatfadepow)*heatfademul+heatfadebump,
0.0,1.0);
float distfade = clamp(pow(max(0,dep),heatfadepow)*heatfademul
+heatfadebump,0.0,1.0);
if ( distfade <= 0.0 ) return coord;
float todpow = todx_ind(heatfactor);
if ( !heatalways && (todpow <= 0.0) ) return coord;
@ -1251,15 +1251,15 @@ float2 DistantHeat( float2 coord )
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 nc = coord*(bresl/HEATSIZE)*heatsize;
float2 ts = float2(0.01,1.0)*Timer.x*10000.0*heatspeed;
float2 ofs = TextureHeat.Sample(Sampler2,nc+ts).xy;
float2 ofs = TextureHeat.SampleLevel(Sampler2,nc+ts,0).xy;
ofs = (ofs-0.5)*2.0;
ofs *= pow(length(ofs),heatpow);
ofs *= todpow;
if ( !heatalways ) ofs *= weatherfactor(WT_HOT);
odep = TextureDepth.Sample(Sampler1,coord+ofs*heatstrength*distfade
*0.01).x;
float odistfade = clamp(pow(odep,heatfadepow)*heatfademul+heatfadebump,
0.0,1.0);
odep = TextureDepth.SampleLevel(Sampler1,coord+ofs*heatstrength
*distfade*0.01,0).x;
float odistfade = clamp(pow(max(0,odep),heatfadepow)*heatfademul
+heatfadebump,0.0,1.0);
if ( odistfade <= 0.0 ) return coord;
return coord+ofs*heatstrength*distfade*0.01;
}
@ -1376,9 +1376,10 @@ float4 PS_DoFBlur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
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;
ds = TextureDepth.SampleLevel(Sampler1,coord+poisson32[i]*bsz,
0).x;
sd = RenderTargetR32F.SampleLevel(Sampler1,coord+poisson32[i]
*bsz,0).x;
sw = (ds>dep)?1.0:sd;
tw += sw;
res += sc*sw;
@ -1405,14 +1406,14 @@ float4 PS_DoFBlurH( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
isd = dfc;
[unroll] for ( i=-7; i<=7; i++ )
{
sd = RenderTargetR32F.Sample(Sampler1,coord+float2(i,0)*bof
*dfc).x;
sd = RenderTargetR32F.SampleLevel(Sampler1,coord+float2(i,0)
*bof*dfc,0).x;
ds = abs(isd-sd)*dofbfact+0.5;
sw = 1.0/(ds+1.0);
sw *= gauss8[abs(i)];
tw += sw;
res += sw*TextureColor.Sample(Sampler1,coord+float2(i,0)*bof
*dfc);
res += sw*TextureColor.SampleLevel(Sampler1,coord+float2(i,0)
*bof*dfc,0);
}
res /= tw;
return res;
@ -1433,14 +1434,14 @@ float4 PS_DoFBlurV( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
isd = dfc;
[unroll] for ( i=-7; i<=7; i++ )
{
sd = RenderTargetR32F.Sample(Sampler1,coord+float2(0,i)*bof
*dfc).x;
sd = RenderTargetR32F.SampleLevel(Sampler1,coord+float2(0,i)
*bof*dfc,0).x;
ds = abs(isd-sd)*dofbfact+0.5;
sw = 1.0/(ds+1.0);
sw *= gauss8[abs(i)];
tw += sw;
res += sw*TextureColor.Sample(Sampler1,coord+float2(0,i)*bof
*dfc);
res += sw*TextureColor.SampleLevel(Sampler1,coord+float2(0,i)
*bof*dfc,0);
}
res /= tw;
return res;
@ -1473,7 +1474,7 @@ float4 PS_FrostPass( 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);
float4 res;
if ( frostenable )
[branch] if ( frostenable )
{
float2 ofs = ScreenFrost(coord);
ofs -= coord;
@ -1489,7 +1490,8 @@ float4 PS_FrostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
}
else res = TextureColor.Sample(Sampler1,coord+ofs);
float2 nc = coord*(bresl/FROSTSIZE)*frostsize;
float bmp = pow(TextureFrost.Sample(Sampler2,nc).x,frostbpow);
float bmp = pow(max(0,TextureFrost.SampleLevel(Sampler2,nc,
0).x),frostbpow);
float dist = distance(coord,float2(0.5,0.5))*2.0;
dist = clamp(pow(dist,frostrpow)*frostrmult+frostrbump,0.0,
1.0)*frostblend;

View file

@ -70,18 +70,18 @@ DOF Fixed Focus Shift Interior=-0.01
DOF Fixed Focus Blend Night=1.0
DOF Fixed Focus Blend Day=1.0
DOF Fixed Focus Blend Interior=1.0
DOF Fixed Unfocus Intensity Night=1.6
DOF Fixed Unfocus Intensity Day=1.4
DOF Fixed Unfocus Intensity Night=1.5
DOF Fixed Unfocus Intensity Day=1.6
DOF Fixed Unfocus Intensity Interior=1.5
DOF Fixed Unfocus Contrast Night=220.0
DOF Fixed Unfocus Contrast Day=240.0
DOF Fixed Unfocus Contrast Interior=250.0
DOF Fixed Unfocus Shift Night=-1.05
DOF Fixed Unfocus Shift Day=-0.9
DOF Fixed Unfocus Shift Interior=-1.03
DOF Fixed Unfocus Blend Night=0.0
DOF Fixed Unfocus Blend Day=0.0
DOF Fixed Unfocus Blend Interior=0.0
DOF Fixed Unfocus Contrast Night=480.0
DOF Fixed Unfocus Contrast Day=450.0
DOF Fixed Unfocus Contrast Interior=350.0
DOF Fixed Unfocus Shift Night=-1.1
DOF Fixed Unfocus Shift Day=-1.25
DOF Fixed Unfocus Shift Interior=-1.0
DOF Fixed Unfocus Blend Night=1.0
DOF Fixed Unfocus Blend Day=1.0
DOF Fixed Unfocus Blend Interior=1.0
DOF Fixed Use Cutoff=true
Disable DOF=false
DOF Gather Blur Radius=8.0
@ -97,7 +97,7 @@ Edgevision Fade Intensity Interior=600.0
Edgevision Contrast=0.25
Edgevision Intensity=1.0
Edgevision Radius=1.0
Enable SSAO=true
Enable SSAO=false
SSAO Radius=0.15
SSAO Noise=0
SSAO Fade Contrast Night=0.9

View file

@ -589,7 +589,7 @@ float3 GradingRGB( float3 res )
{
float3 grademul = tod_ind(grademul);
float3 gradepow = tod_ind(gradepow);
return pow(res,gradepow)*grademul;
return pow(max(0,res),gradepow)*grademul;
}
float3 GradingColorize( float3 res )
{
@ -606,8 +606,8 @@ float3 GradingHSV( float3 res )
float gradevalmul = tod_ind(gradevalmul);
float gradevalpow = tod_ind(gradevalpow);
float3 hsv = rgb2hsv(res);
hsv.y = clamp(pow(hsv.y,gradesatpow)*gradesatmul,0.0,1.0);
hsv.z = pow(hsv.z,gradevalpow)*gradevalmul;
hsv.y = clamp(pow(max(0,hsv.y),gradesatpow)*gradesatmul,0.0,1.0);
hsv.z = pow(max(0,hsv.z),gradevalpow)*gradevalmul;
return hsv2rgb(hsv);
}
/* LUT colour grading */
@ -639,8 +639,8 @@ float3 GradingLUT( float3 res )
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
float3 tcl1 = TextureLUT.Sample(SamplerLUT,lc1);
float3 tcl2 = TextureLUT.Sample(SamplerLUT,lc2);
float3 tcl1 = TextureLUT.Sample(SamplerLUT,lc1).rgb;
float3 tcl2 = TextureLUT.Sample(SamplerLUT,lc2).rgb;
tcol = lerp(tcl1,tcl2,dec);
float lutblend = tod_ind(lutblend);
return lerp(res,tcol,lutblend);
@ -750,7 +750,7 @@ float4 PS_Draw( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
r1.xyz = Params01[2].w*r1.xyz-r0.w;
r0.xyz = Params01[2].z*r1.xyz+r0.w;
color.xyz = lerp(r0.xyz,Params01[5].xyz,Params01[5].w);
color.xyz = saturate(color);
color.xyz = saturate(color.xyz);
color.xyz = pow(color.xyz,1.0/2.2);
res.xyz = max(0,color.xyz);
res.w = 1.0;
@ -815,7 +815,7 @@ float4 PS_DrawOriginal( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Targe
r1.xyz = Params01[2].w*r1.xyz-r0.w;
r0.xyz = Params01[2].z*r1.xyz+r0.w;
res.xyz = lerp(r0.xyz,Params01[5].xyz,Params01[5].w);
res.xyz = pow(res.xyz,1.0/2.2);
res.xyz = pow(max(0,res.xyz),1.0/2.2);
res.w = 1.0;
return res;
}

View file

@ -36,15 +36,15 @@ Tonemap Linear White Day=1.39
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 Day=1.06, 1.01, 1.06
Grading Intensity Interior=1.1, 1.05, 1.02
Grading Contrast Night=0.97, 0.94, 0.96
Grading Contrast Day=0.84, 0.94, 0.97
Grading Contrast Night=0.97, 0.94, 0.95
Grading Contrast Day=0.96, 0.97, 0.93
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=-1.16, -0.06, -0.23
Grading Color Interior=-0.47, -0.12, -0.14
Grading Color Night=-0.34, -0.6, -0.94
Grading Color Day=-0.28, -0.19, -0.82
Grading Color Interior=-0.38, -0.12, -0.14
Grading Color Factor Night=-0.14
Grading Color Factor Day=-0.12
Grading Color Factor Interior=-0.1
@ -63,9 +63,9 @@ Grading Value Contrast Day=1.48
Grading Value Contrast Interior=1.58
Colorize After HSV=true
Enable LUT Grading=true
LUT Blend Night=0.58
LUT Blend Day=0.77
LUT Blend Interior=0.45
LUT Blend Night=0.26
LUT Blend Day=0.53
LUT Blend Interior=0.33
Enable Post Dither=true
Dither Pattern=4
Display Bloom=false

View file

@ -532,9 +532,9 @@ float3 hsv2rgb( float3 c )
/* prepass */
float4 ReducePrepass( in float4 col, in float2 coord )
{
float3 hsv = rgb2hsv(col);
float3 hsv = rgb2hsv(col.rgb);
hsv.y = clamp(hsv.y*bsaturation,0.0,1.0);
hsv.z = pow(hsv.z,bgamma);
hsv.z = pow(max(0,hsv.z),bgamma);
col.rgb = hsv2rgb(saturate(hsv));
if ( dither == 0 )
col += bdbump+checkers[int(coord.x%2)+2*int(coord.y%2)]*bdmult;
@ -852,7 +852,7 @@ float4 PS_DotMatrix( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
moire patterns when using the default size of 2x2.
*/
float4 dots = TextureDots.Sample(SamplerDots,coord*bresl)*dac;
float3 tcol = pow((dots.rgb+dots.a),dotpow)*dotmult;
float3 tcol = pow(max(0,dots.rgb+dots.a),dotpow)*dotmult;
res.rgb = res.rgb*(1-dotblend)+tcol*dotblend;
return res;
}
@ -982,7 +982,7 @@ float4 PS_LumaSharp( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
crawling += TextureColor.Sample(Sampler,coord+float2(0,1)*bof);
crawling *= 0.25;
float4 inmyskin = res-crawling;
float thesewounds = luminance(inmyskin);
float thesewounds = luminance(inmyskin.rgb);
thesewounds = clamp(thesewounds,-lsharpclamp*0.01,lsharpclamp*0.01);
float4 theywillnotheal = res+thesewounds*lsharpblend;
return theywillnotheal;

View file

@ -30,13 +30,13 @@ Curve Sampling Soften=0.0
Enable Blur=false
Blur Sampling Range=0.15
Enable Sharp=false
Sharp Sampling Range=0.75
Sharpening Amount=3.0
Sharp Sampling Range=0.35
Sharpening Amount=2.0
Enable Shift=false
Shift Sampling Range=0.65
Shift Sampling Range=0.6
Luma Sharpen Enable=true
Luma Sharpen Radius=0.8
Luma Sharpen Clamp=0.1
Luma Sharpen Clamp=0.12
Luma Sharpen Blending=6.0
Emulated Resolution Width=0.0
Emulated Resolution Height=0.0