1
Fork 0

MariENB Skyrim 2.4.4

This commit is contained in:
Marisa the Magician 2019-04-07 17:44:26 +02:00
commit 08c16b7a30
6 changed files with 192 additions and 82 deletions

View file

@ -1 +1 @@
2.4.2-1 "Crazy about weathers" 2.4.4-1 "The Bokehning"

View file

@ -1,25 +1,25 @@
[ENBBLOOM.FX] [ENBBLOOM.FX]
TECHNIQUE=0 TECHNIQUE=0
Bloom Intensity Night=0.38 Bloom Intensity Night=0.42
Bloom Intensity Day=0.35 Bloom Intensity Day=0.39
Bloom Intensity Interior Night=0.34 Bloom Intensity Interior Night=0.35
Bloom Intensity Interior Day=0.31 Bloom Intensity Interior Day=0.32
Bloom Contrast Night=0.99 Bloom Contrast Night=0.99
Bloom Contrast Day=0.96 Bloom Contrast Day=0.96
Bloom Contrast Interior Night=0.99 Bloom Contrast Interior Night=0.99
Bloom Contrast Interior Day=0.97 Bloom Contrast Interior Day=0.97
Bloom Saturation Night=1.04 Bloom Saturation Night=1.09
Bloom Saturation Day=1.02 Bloom Saturation Day=1.07
Bloom Saturation Interior Night=1.01 Bloom Saturation Interior Night=1.06
Bloom Saturation Interior Day=1.0 Bloom Saturation Interior Day=1.05
Bloom Offset Night=-0.13 Bloom Offset Night=-0.09
Bloom Offset Day=-0.18 Bloom Offset Day=-0.14
Bloom Offset Interior Night=-0.1 Bloom Offset Interior Night=-0.1
Bloom Offset Interior Day=-0.14 Bloom Offset Interior Day=-0.14
Bloom Intensity Cap Night=35.0 Bloom Intensity Cap Night=25.0
Bloom Intensity Cap Day=35.0 Bloom Intensity Cap Day=25.0
Bloom Intensity Cap Interior Night=35.0 Bloom Intensity Cap Interior Night=25.0
Bloom Intensity Cap Interior Day=35.0 Bloom Intensity Cap Interior Day=25.0
Bloom Blur Radius X=1.0 Bloom Blur Radius X=1.0
Bloom Blur Radius Y=1.0 Bloom Blur Radius Y=1.0
Blue Shift Night Red=0.07 Blue Shift Night Red=0.07
@ -34,17 +34,17 @@ Blue Shift Interior Night Blue=1.77
Blue Shift Interior Day Red=0.08 Blue Shift Interior Day Red=0.08
Blue Shift Interior Day Green=-0.3 Blue Shift Interior Day Green=-0.3
Blue Shift Interior Day Blue=1.39 Blue Shift Interior Day Blue=1.39
Blue Shift Intensity Night=0.16 Blue Shift Intensity Night=0.22
Blue Shift Intensity Day=0.13 Blue Shift Intensity Day=0.19
Blue Shift Intensity Interior Night=0.18 Blue Shift Intensity Interior Night=0.24
Blue Shift Intensity Interior Day=0.15 Blue Shift Intensity Interior Day=0.21
Blue Shift Luminance Factor Per-pass=0.74 Blue Shift Luminance Factor Per-pass=0.74
Blue Shift Color Factor Per-pass=0.85 Blue Shift Color Factor Per-pass=0.85
Enable Anamorphic Bloom=true Enable Anamorphic Bloom=true
Anamorphic Bloom Blend Night=0.54 Anamorphic Bloom Blend Night=0.59
Anamorphic Bloom Blend Day=0.47 Anamorphic Bloom Blend Day=0.51
Anamorphic Bloom Blend Interior Night=0.51 Anamorphic Bloom Blend Interior Night=0.55
Anamorphic Bloom Blend Interior Day=0.44 Anamorphic Bloom Blend Interior Day=0.48
Anamorphic Bloom Blue Shift Night Red=0.06 Anamorphic Bloom Blue Shift Night Red=0.06
Anamorphic Bloom Blue Shift Night Green=-0.44 Anamorphic Bloom Blue Shift Night Green=-0.44
Anamorphic Bloom Blue Shift Night Blue=1.39 Anamorphic Bloom Blue Shift Night Blue=1.39
@ -57,20 +57,20 @@ Anamorphic Bloom Blue Shift Interior Night Blue=1.54
Anamorphic Bloom Blue Shift Interior Day Red=-0.03 Anamorphic Bloom Blue Shift Interior Day Red=-0.03
Anamorphic Bloom Blue Shift Interior Day Green=-0.11 Anamorphic Bloom Blue Shift Interior Day Green=-0.11
Anamorphic Bloom Blue Shift Interior Day Blue=1.65 Anamorphic Bloom Blue Shift Interior Day Blue=1.65
Anamorphic Bloom Blue Shift Intensity Night=0.33 Anamorphic Bloom Blue Shift Intensity Night=0.46
Anamorphic Bloom Blue Shift Intensity Day=0.29 Anamorphic Bloom Blue Shift Intensity Day=0.41
Anamorphic Bloom Blue Shift Interior Night=0.46 Anamorphic Bloom Blue Shift Interior Night=0.57
Anamorphic Bloom Blue Shift Interior Day=0.39 Anamorphic Bloom Blue Shift Interior Day=0.5
Anamorphic Bloom Contrast Night=1.25 Anamorphic Bloom Contrast Night=1.2
Anamorphic Bloom Contrast Day=1.33 Anamorphic Bloom Contrast Day=1.25
Anamorphic Bloom Contrast Interior Night=1.32 Anamorphic Bloom Contrast Interior Night=1.27
Anamorphic Bloom Contrast Interior Day=1.33 Anamorphic Bloom Contrast Interior Day=1.28
Anamorphic Bloom Radius Multiplier=1.0 Anamorphic Bloom Radius Multiplier=1.0
Bloom Pass 1 Blend=0.33 Bloom Pass 1 Blend=1.29
Bloom Pass 2 Blend=0.56 Bloom Pass 2 Blend=1.11
Bloom Pass 3 Blend=0.76 Bloom Pass 3 Blend=0.76
Bloom Pass 4 Blend=0.83 Bloom Pass 4 Blend=0.65
Bloom Pass 7 Blend=0.86 Bloom Pass 7 Blend=0.49
Bloom Pass 8 Blend=0.97 Bloom Pass 8 Blend=0.28
Bloom Prepass Blend=0.0 Bloom Prepass Blend=0.0
Bloom Base Blend=0.0 Bloom Base Blend=0.0

View file

@ -158,11 +158,11 @@ Grading Value Contrast Interior Night=1.05
Grading Value Contrast Interior Day=1.01 Grading Value Contrast Interior Day=1.01
Colorize After HSV=true Colorize After HSV=true
Enable Vanilla Imagespace=true Enable Vanilla Imagespace=true
Vanilla Tint Blend=0.99 Vanilla Tint Blend=0.92
Vanilla Vibrance Blend=0.94 Vanilla Vibrance Blend=0.95
Vanilla Contrast Blend=0.85 Vanilla Contrast Blend=0.89
Vanilla Tint Contrast=0.95 Vanilla Tint Contrast=1.15
Vanilla Tint Strength=1.39 Vanilla Tint Strength=0.94
Vanilla Vibrance Contrast=0.93 Vanilla Vibrance Contrast=0.93
Vanilla Vibrance Strength=1.0 Vanilla Vibrance Strength=1.0
Enable LUT Grading=true Enable LUT Grading=true

View file

@ -123,7 +123,7 @@ DOF Fog Blend Interior Day=1.0
Disable DOF=false Disable DOF=false
Use Only Fixed DOF=false Use Only Fixed DOF=false
DOF Blur Radius=8.0 DOF Blur Radius=8.0
DOF Blur Chromatic Aberration=1.5 DOF Blur Chromatic Aberration=1.78
DOF Relative to FOV=true DOF Relative to FOV=true
Default FOV=75.0 Default FOV=75.0
DOF Relative Factor Night=2.19 DOF Relative Factor Night=2.19
@ -173,3 +173,16 @@ Sharpen Enable=true
Sharpen Radius=0.8 Sharpen Radius=0.8
Sharpen Clamp=0.1 Sharpen Clamp=0.1
Sharpen Blending=6.0 Sharpen Blending=6.0
DOF Fixed Focus Depth=0.0
DOF Fixed Focus Cap=0.0
DOF Fixed Unfocus Depth=0.0
DOF Fog Depth=0.0
Enable DOF Post-Blur=true
DOF Post-Blur Radius=1.0
Enable DOF Highlights=true
DOF Highlight Threshold=0.71
DOF Highlight Gain=1.93
DOF Bokeh Edge Bias=0.5
DOF Bokeh Fuzz=0.01
DOF Gather Blur Radius=8.0
DOF Bokeh Blur Radius=2.0

View file

@ -347,20 +347,29 @@ float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
float doffixedunfocusmult = tod_ind(doffixedunfocusmult); float doffixedunfocusmult = tod_ind(doffixedunfocusmult);
float doffixedunfocusbump = tod_ind(doffixedunfocusbump); float doffixedunfocusbump = tod_ind(doffixedunfocusbump);
float doffixedunfocusblend = tod_ind(doffixedunfocusblend); float doffixedunfocusblend = tod_ind(doffixedunfocusblend);
#ifndef FALLOUT
float doffogpow = tod_ind(doffogpow); float doffogpow = tod_ind(doffogpow);
float doffogmult = tod_ind(doffogmult); float doffogmult = tod_ind(doffogmult);
float doffogbump = tod_ind(doffogbump); float doffogbump = tod_ind(doffogbump);
float doffogblend = tod_ind(doffogblend); float doffogblend = tod_ind(doffogblend);
#endif
float dep = tex2D(SamplerDepth,coord).x; float dep = tex2D(SamplerDepth,coord).x;
float foc = tex2D(SamplerFocus,coord).x; float foc = tex2D(SamplerFocus,coord).x;
/* cheap tilt */ /* cheap tilt */
foc = foc+0.01*doftiltx*(doftiltxcenter-coord.x) foc = foc+0.01*doftiltx*(doftiltxcenter-coord.x)
+0.01*doftilty*(doftiltycenter-coord.y); +0.01*doftilty*(doftiltycenter-coord.y);
float dfc = abs(dep-foc); float dff = abs(dep-doffixedfocusdepth);
float dff = abs(dep); dff = clamp(pow(dff,doffixedfocuspow)*doffixedfocusmult
float dfu = dff; +doffixedfocusbump,0.0,1.0);
if ( dep > doffixedfocuscap ) dff = 1.0;
float dfu = abs(dep-doffixedunfocusdepth);
dfu = clamp(pow(dfu,doffixedunfocuspow)*doffixedunfocusmult
+doffixedunfocusbump,0.0,1.0);
#ifndef FALLOUT
float dfog = abs(dep-doffogdepth);
dfog = clamp(pow(dfog,doffogpow)*doffogmult+doffogbump,0.0,1.0);
#endif
if ( doffixedcut && (dep >= cutoff*0.000001) ) dfu *= 0; if ( doffixedcut && (dep >= cutoff*0.000001) ) dfu *= 0;
float dfog = dff;
/* /*
Change power of dof based on field of view. Works only in Skyrim. Change power of dof based on field of view. Works only in Skyrim.
The FieldOfView variable seems to hold bogus values in Fallout The FieldOfView variable seems to hold bogus values in Fallout
@ -376,24 +385,43 @@ float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
dofpow = max(0,dofpow+relfov*relfovfactor); dofpow = max(0,dofpow+relfov*relfovfactor);
} }
#endif #endif
float dfc = abs(dep-foc);
dfc = clamp(pow(dfc,dofpow)*dofmult+dofbump,0.0,1.0); dfc = clamp(pow(dfc,dofpow)*dofmult+dofbump,0.0,1.0);
dff = clamp(pow(dff,doffixedfocuspow)*doffixedfocusmult
+doffixedfocusbump,0.0,1.0);
dfu = clamp(pow(dfu,doffixedunfocuspow)*doffixedunfocusmult
+doffixedunfocusbump,0.0,1.0);
dfog = clamp(pow(dfog,doffogpow)*doffogmult+doffogbump,0.0,1.0);
if ( doffixedonly ) dfc *= 0; if ( doffixedonly ) dfc *= 0;
dfc *= lerp(1.0,dff,doffixedfocusblend);
dfc += lerp(0.0,dfu,doffixedunfocusblend); dfc += lerp(0.0,dfu,doffixedunfocusblend);
#ifndef FALLOUT
if ( doffogenable ) if ( doffogenable )
dfc += (weatherfactor(WT_TEMPERATE_FOG) dfc += (weatherfactor(WT_TEMPERATE_FOG)
+weatherfactor(WT_COLD_FOG)+weatherfactor(WT_HOT_FOG)) +weatherfactor(WT_COLD_FOG)+weatherfactor(WT_HOT_FOG))
*lerp(0.0,dfog,doffogblend); *lerp(0.0,dfog,doffogblend);
#endif
dfc *= lerp(1.0,dff,doffixedfocusblend);
dfc = saturate(dfc); dfc = saturate(dfc);
float4 res = tex2D(SamplerColor,coord); float4 res = tex2D(SamplerColor,coord);
res.a = dfc; res.a = dfc;
return res; return res;
} }
/* helper code for simplifying these */
#define gcircle(x) float2(cos(x),sin(x))
float4 dofsample( float2 coord, float2 bsz, float blur, bool bDoHighlight )
{
float4 res;
float cstep = 2.0*pi*(1.0/3.0);
float ang = 0.5*pi;
res.r = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).r;
ang += cstep;
res.g = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).g;
ang += cstep;
res.b = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).b;
if ( bDoHighlight )
{
float l = luminance(res.rgb);
float threshold = max((l-dofbthreshold)*dofbgain,0.0);
res += lerp(0,res,threshold*blur);
}
res.a = tex2D(SamplerColor,coord).a;
return res;
}
/* gather blur pass */ /* gather blur pass */
float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
{ {
@ -418,11 +446,7 @@ float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
float4 sc; float4 sc;
[unroll] for ( int i=0; i<32; i++ ) [unroll] for ( int i=0; i<32; i++ )
{ {
sc = float4(tex2D(SamplerColor,coord+poisson32[i]*bsz*(1 sc = dofsample(coord+poisson32[i]*bsz,bsz,dfc,dofhilite);
+dofpcha*0.1)).r,tex2D(SamplerColor,coord+poisson32[i]
*bsz).g,tex2D(SamplerColor,coord+poisson32[i]*bsz*(1
-dofpcha*0.1)).b,tex2D(SamplerColor,coord+poisson32[i]
*bsz).a);
ds = tex2D(SamplerDepth,coord+poisson32[i]*bsz).x; ds = tex2D(SamplerDepth,coord+poisson32[i]*bsz).x;
sw = (ds>dep)?1.0:sc.a; sw = (ds>dep)?1.0:sc.a;
tw += sw; tw += sw;
@ -452,29 +476,26 @@ float4 PS_DoFBorkeh( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
*/ */
if ( dfc <= dofminblur ) return res; if ( dfc <= dofminblur ) return res;
float dep = tex2D(SamplerDepth,coord).x; float dep = tex2D(SamplerDepth,coord).x;
float sr = dofpradius*dfc; float2 sf = bof+(tex2D(SamplerNoise3,coord*(bresl/256.0)).xy*2.0-1.0)
float w = max(0,(1/(sr*sr+1))*luminance(res.rgb+0.01)); *dofbnoise*0.001;
res *= w; float2 sr = sf*dofbradius*dfc;
float tw = w; float tw = 1.0;
float2 bsz = bof*sr; int rsamples;
float4 pc; float bstep, sw;
float sc, ds; float2 rcoord;
[unroll] for ( int i=0; i<32; i++ ) #define dofbrings 7
#define dofbsamples 3
[unroll] for ( int i=1; i<=dofbrings; i++ )
{ {
pc = float4(tex2D(SamplerColor,coord+poisson32[i]*bsz*(1 rsamples = i*dofbsamples;
+dofpcha*0.1)).r,tex2D(SamplerColor,coord+poisson32[i] [unroll] for ( int j=0; j<rsamples; j++ )
*bsz).g,tex2D(SamplerColor,coord+poisson32[i]*bsz*(1 {
-dofpcha*0.1)).b,tex2D(SamplerColor,coord+poisson32[i] bstep = pi*2.0/(float)rsamples;
*bsz).a); rcoord = gcircle(j*bstep)*i;
ds = tex2D(SamplerDepth,coord+poisson32[i]*bsz).x; sw = lerp(1.0,(float)i/(float)dofbrings,dofbbias);
sc = abs(pc.a*dofpradius); res += dofsample(coord+rcoord*sr,sr,dfc,dofhilite)*sw;
if ( sr < 0.0 ) sc = max(abs(sr),sc); tw += sw;
w = (1.0/(pow(sc,2)+1))*luminance(pc.rgb+0.01); }
w *= saturate(1-smoothstep(sc,sc*1.1,length(poisson32[i]*bsz)
*abs(sr)));
w *= (ds>dep)?1.0:sc;
res += pc*w;
tw += w;
} }
res /= tw; res /= tw;
res.a = dfc; res.a = dfc;
@ -490,7 +511,7 @@ float4 PS_DoFPostBlur( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
float2 bresl; float2 bresl;
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy); if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 bof = 1.0/bresl; float2 bof = (1.0/bresl)*dofpbradius;
float2 ofs[16] = float2 ofs[16] =
{ {
float2(1.0,1.0), float2(-1.0,-1.0), float2(1.0,1.0), float2(-1.0,-1.0),
@ -506,13 +527,13 @@ float4 PS_DoFPostBlur( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
float2(-1.41,1.41), float2(1.41,-1.41) float2(-1.41,1.41), float2(1.41,-1.41)
}; };
float4 res = tex2D(SamplerColor,coord); float4 res = tex2D(SamplerColor,coord);
if ( !dofpostblur ) return float4(res.rgb,1.0);
int i; int i;
[unroll] for ( i=0; i<16; i++ ) [unroll] for ( i=0; i<16; i++ )
res += tex2D(SamplerColor,coord+ofs[i]*bof*dfc); res += tex2D(SamplerColor,coord+ofs[i]*bof*dfc);
res /= 17.0; res /= 17.0;
res.a = 1.0; res.a = 1.0;
return res; return res;
} }
/* Screen frost shader. Not very realistic either, but looks fine too. */ /* Screen frost shader. Not very realistic either, but looks fine too. */
float2 ScreenFrost( float2 coord ) float2 ScreenFrost( float2 coord )

View file

@ -520,6 +520,20 @@ float doffixedfocusblend_id
string UIWidget = "Spinner"; string UIWidget = "Spinner";
float UIMin = 0.0; float UIMin = 0.0;
> = {0.0}; > = {0.0};
float doffixedfocusdepth
<
string UIName = "DOF Fixed Focus Depth";
string UIWidget = "Spinner";
float UIMin = 0.0;
float UIMax = 1.0;
> = {0.0};
float doffixedfocuscap
<
string UIName = "DOF Fixed Focus Cap";
string UIWidget = "Spinner";
float UIMin = 0.0;
float UIMax = 1.0;
> = {0.0};
/* fixed unfocused depth factors */ /* fixed unfocused depth factors */
float doffixedunfocusmult_n float doffixedunfocusmult_n
< <
@ -613,12 +627,20 @@ float doffixedunfocusblend_id
string UIWidget = "Spinner"; string UIWidget = "Spinner";
float UIMin = 0.0; float UIMin = 0.0;
> = {0.0}; > = {0.0};
float doffixedunfocusdepth
<
string UIName = "DOF Fixed Unfocus Depth";
string UIWidget = "Spinner";
float UIMin = 0.0;
float UIMax = 1.0;
> = {0.0};
/* prevents fixed dof from blurring the skybox */ /* prevents fixed dof from blurring the skybox */
bool doffixedcut bool doffixedcut
< <
string UIName = "DOF Fixed Use Cutoff"; string UIName = "DOF Fixed Use Cutoff";
string UIWidget = "Checkbox"; string UIWidget = "Checkbox";
> = {true}; > = {true};
#ifndef FALLOUT
/* fixed dof for foggy weathers */ /* fixed dof for foggy weathers */
bool doffogenable bool doffogenable
< <
@ -717,6 +739,14 @@ float doffogblend_id
string UIWidget = "Spinner"; string UIWidget = "Spinner";
float UIMin = 0.0; float UIMin = 0.0;
> = {0.0}; > = {0.0};
float doffogdepth
<
string UIName = "DOF Fog Depth";
string UIWidget = "Spinner";
float UIMin = 0.0;
float UIMax = 1.0;
> = {0.0};
#endif
/* disable depth of field */ /* disable depth of field */
bool dofdisable bool dofdisable
< <
@ -730,15 +760,61 @@ bool doffixedonly
> = {false}; > = {false};
float dofpradius float dofpradius
< <
string UIName = "DOF Blur Radius"; string UIName = "DOF Gather Blur Radius";
string UIWidget = "Spinner"; string UIWidget = "Spinner";
float UIMin = 0.0; float UIMin = 0.0;
> = {6.0}; > = {6.0};
bool dofpostblur
<
string UIName = "Enable DOF Post-Blur";
string UIWidget = "Checkbox";
> = {true};
float dofpbradius
<
string UIName = "DOF Post-Blur Radius";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float dofpcha float dofpcha
< <
string UIName = "DOF Blur Chromatic Aberration"; string UIName = "DOF Blur Chromatic Aberration";
string UIWidget = "Spinner"; string UIWidget = "Spinner";
> = {0.0}; > = {0.0};
bool dofhilite
<
string UIName = "Enable DOF Highlights";
string UIWidget = "Checkbox";
> = {false};
float dofbthreshold
<
string UIName = "DOF Highlight Threshold";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {0.5};
float dofbgain
<
string UIName = "DOF Highlight Gain";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {2.0};
float dofbradius
<
string UIName = "DOF Bokeh Blur Radius";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float dofbbias
<
string UIName = "DOF Bokeh Edge Bias";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {0.5};
float dofbnoise
<
string UIName = "DOF Bokeh Fuzz";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {0.01};
#ifndef FALLOUT #ifndef FALLOUT
bool dofrelfov bool dofrelfov
< <