MariENB FO4 3.3.1
This commit is contained in:
parent
45a104c723
commit
d7c2c2ea85
8 changed files with 238 additions and 429 deletions
|
|
@ -144,22 +144,22 @@ GradientHorizonColorFilterDusk=0.973, 0.259, 0.133
|
||||||
GradientHorizonColorFilterNight=0.655, 0.816, 0.976
|
GradientHorizonColorFilterNight=0.655, 0.816, 0.976
|
||||||
GradientHorizonColorFilterInteriorDay=1, 1, 1
|
GradientHorizonColorFilterInteriorDay=1, 1, 1
|
||||||
GradientHorizonColorFilterInteriorNight=0.851, 0.863, 0.89
|
GradientHorizonColorFilterInteriorNight=0.851, 0.863, 0.89
|
||||||
CloudsIntensityDawn=0.92
|
CloudsIntensityDawn=0.74
|
||||||
CloudsIntensitySunrise=1.070001
|
CloudsIntensitySunrise=0.920001
|
||||||
CloudsIntensityDay=1.240001
|
CloudsIntensityDay=1.240001
|
||||||
CloudsIntensitySunset=1.040001
|
CloudsIntensitySunset=0.910001
|
||||||
CloudsIntensityDusk=0.900001
|
CloudsIntensityDusk=0.750001
|
||||||
CloudsIntensityNight=0.790001
|
CloudsIntensityNight=0.440001
|
||||||
CloudsIntensityInteriorDay=1.17
|
CloudsIntensityInteriorDay=1.17
|
||||||
CloudsIntensityInteriorNight=0.7
|
CloudsIntensityInteriorNight=0.49
|
||||||
CloudsCurveDawn=1.13
|
CloudsCurveDawn=0.9
|
||||||
CloudsCurveSunrise=1.09
|
CloudsCurveSunrise=0.95
|
||||||
CloudsCurveDay=1.0
|
CloudsCurveDay=1.0
|
||||||
CloudsCurveSunset=1.1
|
CloudsCurveSunset=0.97
|
||||||
CloudsCurveDusk=1.16
|
CloudsCurveDusk=0.91
|
||||||
CloudsCurveNight=1.25
|
CloudsCurveNight=0.86
|
||||||
CloudsCurveInteriorDay=1.02
|
CloudsCurveInteriorDay=1.02
|
||||||
CloudsCurveInteriorNight=1.2
|
CloudsCurveInteriorNight=0.83
|
||||||
CloudsDesaturationDawn=0.0
|
CloudsDesaturationDawn=0.0
|
||||||
CloudsDesaturationSunrise=0.0
|
CloudsDesaturationSunrise=0.0
|
||||||
CloudsDesaturationDay=0.0
|
CloudsDesaturationDay=0.0
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
3.3.0 "Red Sunset"
|
3.3.1 "Red Sunset"
|
||||||
|
|
|
||||||
|
|
@ -39,40 +39,6 @@ float distcha
|
||||||
string UIName = "Distortion Chromatic Aberration";
|
string UIName = "Distortion Chromatic Aberration";
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
> = {10.0};
|
> = {10.0};
|
||||||
bool waterenable
|
|
||||||
<
|
|
||||||
string UIName = "Enable Underwater";
|
|
||||||
string UIWidget = "Checkbox";
|
|
||||||
> = {false};
|
|
||||||
float3 uwm
|
|
||||||
<
|
|
||||||
string UIName = "Underwater Frequency";
|
|
||||||
string UIWidget = "Vector";
|
|
||||||
float3 UIMin = {0.0,0.0,0.0};
|
|
||||||
> = {1.4,1.6,1.4};
|
|
||||||
float3 uwf
|
|
||||||
<
|
|
||||||
string UIName = "Underwater Speed";
|
|
||||||
string UIWidget = "Vector";
|
|
||||||
float3 UIMin = {0.0,0.0,0.0};
|
|
||||||
> = {10.0,8.0,16.0};
|
|
||||||
float3 uws
|
|
||||||
<
|
|
||||||
string UIName = "Underwater Amplitude";
|
|
||||||
string UIWidget = "Vector";
|
|
||||||
float3 UIMin = {0.0,0.0,0.0};
|
|
||||||
> = {0.3,0.5,0.8};
|
|
||||||
float uwz
|
|
||||||
<
|
|
||||||
string UIName = "Underwater Zoom";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {1.5};
|
|
||||||
bool wateralways
|
|
||||||
<
|
|
||||||
string UIName = "Always Underwater";
|
|
||||||
string UIWidget = "Checkbox";
|
|
||||||
> = {false};
|
|
||||||
bool heatenable
|
bool heatenable
|
||||||
<
|
<
|
||||||
string UIName = "Enable Hot Air Refraction";
|
string UIName = "Enable Hot Air Refraction";
|
||||||
|
|
@ -123,148 +89,37 @@ float heatfactor_dw
|
||||||
<
|
<
|
||||||
string UIName = "Heat Factor Dawn";
|
string UIName = "Heat Factor Dawn";
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.2};
|
> = {0.2};
|
||||||
float heatfactor_sr
|
float heatfactor_sr
|
||||||
<
|
<
|
||||||
string UIName = "Heat Factor Sunrise";
|
string UIName = "Heat Factor Sunrise";
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.5};
|
> = {0.5};
|
||||||
float heatfactor_dy
|
float heatfactor_dy
|
||||||
<
|
<
|
||||||
string UIName = "Heat Factor Day";
|
string UIName = "Heat Factor Day";
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {1.0};
|
> = {1.0};
|
||||||
float heatfactor_ss
|
float heatfactor_ss
|
||||||
<
|
<
|
||||||
string UIName = "Heat Factor Sunset";
|
string UIName = "Heat Factor Sunset";
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.7};
|
> = {0.7};
|
||||||
float heatfactor_ds
|
float heatfactor_ds
|
||||||
<
|
<
|
||||||
string UIName = "Heat Factor Dusk";
|
string UIName = "Heat Factor Dusk";
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.1};
|
> = {0.1};
|
||||||
float heatfactor_nt
|
float heatfactor_nt
|
||||||
<
|
<
|
||||||
string UIName = "Heat Factor Night";
|
string UIName = "Heat Factor Night";
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.0};
|
> = {0.0};
|
||||||
float heatfactor_i
|
float heatfactor_i
|
||||||
<
|
<
|
||||||
string UIName = "Heat Factor Interior";
|
string UIName = "Heat Factor Interior";
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.0};
|
> = {0.0};
|
||||||
bool heatalways
|
|
||||||
<
|
|
||||||
string UIName = "Heat Always Enable";
|
|
||||||
string UIWidget = "Checkbox";
|
|
||||||
> = {false};
|
|
||||||
bool frostenable
|
|
||||||
<
|
|
||||||
string UIName = "Enable Screen Frost";
|
|
||||||
string UIWidget = "Checkbox";
|
|
||||||
> = {false};
|
|
||||||
float frostpow
|
|
||||||
<
|
|
||||||
string UIName = "Frost Contrast";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {1.0};
|
|
||||||
float froststrength
|
|
||||||
<
|
|
||||||
string UIName = "Frost Strength";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {1.0};
|
|
||||||
float frostrpow
|
|
||||||
<
|
|
||||||
string UIName = "Frost Radial Contrast";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {1.0};
|
|
||||||
float frostrmult
|
|
||||||
<
|
|
||||||
string UIName = "Frost Radial Intensity";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {1.0};
|
|
||||||
float frostrbump
|
|
||||||
<
|
|
||||||
string UIName = "Frost Radial Offset";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
> = {0.0};
|
|
||||||
float frostblend
|
|
||||||
<
|
|
||||||
string UIName = "Frost Texture Blend";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {1.0};
|
|
||||||
float frostbpow
|
|
||||||
<
|
|
||||||
string UIName = "Frost Texture Blend Contrast";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {1.0};
|
|
||||||
float frostsize
|
|
||||||
<
|
|
||||||
string UIName = "Frost Texture Size";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {1.0};
|
|
||||||
float frostfactor_dw
|
|
||||||
<
|
|
||||||
string UIName = "Frost Factor Dawn";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.1};
|
|
||||||
float frostfactor_sr
|
|
||||||
<
|
|
||||||
string UIName = "Frost Factor Sunrise";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.0};
|
|
||||||
float frostfactor_dy
|
|
||||||
<
|
|
||||||
string UIName = "Frost Factor Day";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.0};
|
|
||||||
float frostfactor_ss
|
|
||||||
<
|
|
||||||
string UIName = "Frost Factor Sunset";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.0};
|
|
||||||
float frostfactor_ds
|
|
||||||
<
|
|
||||||
string UIName = "Frost Factor Dusk";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.1};
|
|
||||||
float frostfactor_nt
|
|
||||||
<
|
|
||||||
string UIName = "Frost Factor Night";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.25};
|
|
||||||
float frostfactor_i
|
|
||||||
<
|
|
||||||
string UIName = "Frost Factor Interior";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
> = {0.0};
|
|
||||||
bool frostalways
|
|
||||||
<
|
|
||||||
string UIName = "Frost Always Enable";
|
|
||||||
string UIWidget = "Checkbox";
|
|
||||||
> = {false};
|
|
||||||
string str_focus = "Focusing Parameters";
|
string str_focus = "Focusing Parameters";
|
||||||
/*
|
/*
|
||||||
focus modes:
|
focus modes:
|
||||||
|
|
@ -1197,22 +1052,6 @@ Texture2D TextureHeat
|
||||||
string ResourceName = "menbheat.png";
|
string ResourceName = "menbheat.png";
|
||||||
#endif
|
#endif
|
||||||
>;
|
>;
|
||||||
Texture2D TextureFrost
|
|
||||||
<
|
|
||||||
#ifdef FROST_DDS
|
|
||||||
string ResourceName = "menbfrost.dds";
|
|
||||||
#else
|
|
||||||
string ResourceName = "menbfrost.png";
|
|
||||||
#endif
|
|
||||||
>;
|
|
||||||
Texture2D TextureFrostBump
|
|
||||||
<
|
|
||||||
#ifdef FROSTBUMP_DDS
|
|
||||||
string ResourceName = "menbfrostbump.dds";
|
|
||||||
#else
|
|
||||||
string ResourceName = "menbfrostbump.png";
|
|
||||||
#endif
|
|
||||||
>;
|
|
||||||
|
|
||||||
SamplerState Sampler0
|
SamplerState Sampler0
|
||||||
{
|
{
|
||||||
|
|
@ -1541,21 +1380,6 @@ float4 PS_SSAOApply( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
|
||||||
return res*mud;
|
return res*mud;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
Underwater distortion, which currently has no real use due to Boris being
|
|
||||||
lazy. fWaterLevel doesn't yet provide any usable values.
|
|
||||||
*/
|
|
||||||
float2 UnderwaterDistort( float2 coord )
|
|
||||||
{
|
|
||||||
if ( !wateralways ) return coord;
|
|
||||||
float2 ofs = float2(0.0,0.0);
|
|
||||||
float siny = sin(pi*2.0*(coord.y*uwm.x+Timer.x*uwf.x*100.0))*uws.x;
|
|
||||||
ofs.y = siny+sin(pi*2.0*(coord.x*uwm.y+Timer.x*uwf.y*100.0))*uws.y;
|
|
||||||
ofs.x = siny+sin(pi*2.0*(coord.x*uwm.z+Timer.x*uwf.z*100.0))*uws.z;
|
|
||||||
ofs -= (coord-0.5)*2.0*uwz;
|
|
||||||
return coord+ofs*0.01;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Distant hot air refraction. Not very realistic, but does the job. */
|
/* Distant hot air refraction. Not very realistic, but does the job. */
|
||||||
float2 DistantHeat( float2 coord )
|
float2 DistantHeat( float2 coord )
|
||||||
{
|
{
|
||||||
|
|
@ -1565,8 +1389,8 @@ float2 DistantHeat( float2 coord )
|
||||||
float distfade = clamp(pow(max(0,dep),heatfadepow)*heatfademul
|
float distfade = clamp(pow(max(0,dep),heatfadepow)*heatfademul
|
||||||
+heatfadebump,0.0,1.0);
|
+heatfadebump,0.0,1.0);
|
||||||
if ( distfade <= 0.0 ) return coord;
|
if ( distfade <= 0.0 ) return coord;
|
||||||
float todpow = todx_ind(heatfactor);
|
float todpow = max(0.0,todx_ind(heatfactor));
|
||||||
if ( !heatalways && (todpow <= 0.0) ) return coord;
|
if ( todpow <= 0.0 ) return coord;
|
||||||
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);
|
||||||
float2 nc = coord*(bresl/HEATSIZE)*heatsize;
|
float2 nc = coord*(bresl/HEATSIZE)*heatsize;
|
||||||
|
|
@ -1575,7 +1399,7 @@ float2 DistantHeat( float2 coord )
|
||||||
ofs = (ofs-0.5)*2.0;
|
ofs = (ofs-0.5)*2.0;
|
||||||
ofs *= pow(length(ofs),heatpow);
|
ofs *= pow(length(ofs),heatpow);
|
||||||
ofs *= todpow;
|
ofs *= todpow;
|
||||||
if ( !heatalways ) ofs *= max(0.0,warmfactor-coldfactor);
|
/*ofs *= max(0.0,warmfactor-coldfactor);*/
|
||||||
odep = TextureDepth.SampleLevel(Sampler1,coord+ofs*heatstrength
|
odep = TextureDepth.SampleLevel(Sampler1,coord+ofs*heatstrength
|
||||||
*distfade*0.01,0).x;
|
*distfade*0.01,0).x;
|
||||||
float odistfade = clamp(pow(max(0,odep),heatfadepow)*heatfademul
|
float odistfade = clamp(pow(max(0,odep),heatfadepow)*heatfademul
|
||||||
|
|
@ -1592,7 +1416,6 @@ float4 PS_Distortion( 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);
|
||||||
float2 ofs = coord;
|
float2 ofs = coord;
|
||||||
if ( waterenable ) ofs = UnderwaterDistort(ofs);
|
|
||||||
if ( heatenable ) ofs = DistantHeat(ofs);
|
if ( heatenable ) ofs = DistantHeat(ofs);
|
||||||
ofs -= coord;
|
ofs -= coord;
|
||||||
float4 res;
|
float4 res;
|
||||||
|
|
@ -1843,61 +1666,11 @@ float4 PS_DoFPostBlur( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Screen frost shader. Not very realistic either, but looks fine too. */
|
|
||||||
float2 ScreenFrost( float2 coord )
|
|
||||||
{
|
|
||||||
float2 bresl;
|
|
||||||
if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed;
|
|
||||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
|
||||||
float2 nc = coord*(bresl/FROSTSIZE)*frostsize;
|
|
||||||
float2 ofs = TextureFrostBump.Sample(Sampler2,nc).xy;
|
|
||||||
ofs = (ofs-0.5)*2.0;
|
|
||||||
ofs *= pow(length(ofs),frostpow)*froststrength;
|
|
||||||
float todpow = todx_ind(frostfactor);
|
|
||||||
if ( !frostalways ) ofs *= max(0.0,coldfactor-warmfactor)*todpow;
|
|
||||||
else ofs *= todpow;
|
|
||||||
float dist = distance(coord,float2(0.5,0.5))*2.0;
|
|
||||||
ofs *= clamp(pow(dist,frostrpow)*frostrmult+frostrbump,0.0,1.0);
|
|
||||||
return coord+ofs;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* screen frost overlay */
|
/* screen frost overlay */
|
||||||
float4 PS_FrostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
|
float4 PS_DebugFocus( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
|
||||||
{
|
{
|
||||||
float2 coord = IN.txcoord.xy;
|
float2 coord = IN.txcoord.xy;
|
||||||
float2 bresl;
|
float4 res = TextureColor.Sample(Sampler1,coord);
|
||||||
if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed;
|
|
||||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
|
||||||
float4 res;
|
|
||||||
[branch] 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(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;
|
|
||||||
float todpow = todx_ind(frostfactor);
|
|
||||||
/* Weathers not implemented in FO4 ENB as of 0.291 */
|
|
||||||
if ( !frostalways )
|
|
||||||
dist *= max(0.0,coldfactor-warmfactor)*todpow;
|
|
||||||
else dist *= todpow;
|
|
||||||
res.rgb *= 1.0+bmp*dist;
|
|
||||||
}
|
|
||||||
else res = TextureColor.Sample(Sampler1,coord);
|
|
||||||
if ( !focusdisplay || (focuscircle == -1) ) return res;
|
if ( !focusdisplay || (focuscircle == -1) ) return res;
|
||||||
if ( focuscircle == -2 )
|
if ( focuscircle == -2 )
|
||||||
{
|
{
|
||||||
|
|
@ -2032,7 +1805,7 @@ technique11 Prepass8
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
|
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
|
||||||
SetPixelShader(CompileShader(ps_5_0,PS_FrostPass()));
|
SetPixelShader(CompileShader(ps_5_0,PS_DebugFocus()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2105,7 +1878,7 @@ technique11 PrepassB8
|
||||||
pass p0
|
pass p0
|
||||||
{
|
{
|
||||||
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
|
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
|
||||||
SetPixelShader(CompileShader(ps_5_0,PS_FrostPass()));
|
SetPixelShader(CompileShader(ps_5_0,PS_DebugFocus()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,6 @@ Depth Cutoff=999998.0
|
||||||
Near Z=0.05
|
Near Z=0.05
|
||||||
Far Z=3098.0
|
Far Z=3098.0
|
||||||
Distortion Chromatic Aberration=9.5
|
Distortion Chromatic Aberration=9.5
|
||||||
Enable Underwater=false
|
|
||||||
Underwater Frequency=2.36, 3.39, 2.72
|
|
||||||
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=true
|
Enable Hot Air Refraction=true
|
||||||
Heat Texture Size=11.71
|
Heat Texture Size=11.71
|
||||||
Heat Speed=0.56
|
Heat Speed=0.56
|
||||||
|
|
@ -20,31 +14,13 @@ Heat Fade Intensity=1.14
|
||||||
Heat Fade Offset=-0.81
|
Heat Fade Offset=-0.81
|
||||||
Heat Intensity=0.45
|
Heat Intensity=0.45
|
||||||
Heat Contrast=1.19
|
Heat Contrast=1.19
|
||||||
Heat Factor Dawn=0.0
|
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
|
||||||
Heat Factor Sunset=0.54
|
Heat Factor Sunset=0.54
|
||||||
Heat Factor Dusk=0.0
|
Heat Factor Dusk=-0.14
|
||||||
Heat Factor Night=0.0
|
Heat Factor Night=-0.51
|
||||||
Heat Factor Interior=0.0
|
Heat Factor Interior=0.0
|
||||||
Heat Always Enable=true
|
|
||||||
Enable Screen Frost=false
|
|
||||||
Frost Contrast=1.67
|
|
||||||
Frost Strength=0.02
|
|
||||||
Frost Radial Contrast=1.67
|
|
||||||
Frost Radial Intensity=0.83
|
|
||||||
Frost Radial Offset=-0.66
|
|
||||||
Frost Texture Blend=0.94
|
|
||||||
Frost Texture Blend Contrast=2.44
|
|
||||||
Frost Texture Size=0.85
|
|
||||||
Frost Factor Dawn=0.0
|
|
||||||
Frost Factor Sunrise=0.0
|
|
||||||
Frost Factor Day=0.0
|
|
||||||
Frost Factor Sunset=0.0
|
|
||||||
Frost Factor Dusk=0.0
|
|
||||||
Frost Factor Night=1.06
|
|
||||||
Frost Factor Interior=0.0
|
|
||||||
Frost Always Enable=true
|
|
||||||
Focus Mode=1
|
Focus Mode=1
|
||||||
Display Focus Points=false
|
Display Focus Points=false
|
||||||
Enable Manual Focus=false
|
Enable Manual Focus=false
|
||||||
|
|
@ -156,9 +132,9 @@ Depth Grading Intensity Interior=1.73
|
||||||
Depth Grading Shift Night=-1.41
|
Depth Grading Shift Night=-1.41
|
||||||
Depth Grading Shift Day=-1.27
|
Depth Grading Shift Day=-1.27
|
||||||
Depth Grading Shift Interior=-1.37
|
Depth Grading Shift Interior=-1.37
|
||||||
Depth Grading Blend Night=1.0
|
Depth Grading Blend Night=0.3
|
||||||
Depth Grading Blend Day=1.0
|
Depth Grading Blend Day=0.4
|
||||||
Depth Grading Blend Interior=1.0
|
Depth Grading Blend Interior=0.5
|
||||||
Enable RGB Grading=true
|
Enable RGB Grading=true
|
||||||
Grading Intensity Night Red=1.0
|
Grading Intensity Night Red=1.0
|
||||||
Grading Intensity Night Green=1.0
|
Grading Intensity Night Green=1.0
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,107 @@
|
||||||
*/
|
*/
|
||||||
#include "menbglobaldefs.fx"
|
#include "menbglobaldefs.fx"
|
||||||
|
|
||||||
|
string str_misc = "Miscellaneous";
|
||||||
|
/* fixed resolution, keeps blur filters at a consistent internal resolution */
|
||||||
|
int2 fixed
|
||||||
|
<
|
||||||
|
string UIName = "Fixed Resolution";
|
||||||
|
string UIWidget = "Vector";
|
||||||
|
int2 UIMin = {0,0};
|
||||||
|
> = {1920,1080};
|
||||||
|
string str_dist = "Distortion Filters";
|
||||||
|
float distcha
|
||||||
|
<
|
||||||
|
string UIName = "Distortion Chromatic Aberration";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {10.0};
|
||||||
|
bool frostenable
|
||||||
|
<
|
||||||
|
string UIName = "Enable Screen Frost";
|
||||||
|
string UIWidget = "Checkbox";
|
||||||
|
> = {false};
|
||||||
|
float frostpow
|
||||||
|
<
|
||||||
|
string UIName = "Frost Contrast";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = 0.0;
|
||||||
|
> = {1.0};
|
||||||
|
float froststrength
|
||||||
|
<
|
||||||
|
string UIName = "Frost Strength";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = 0.0;
|
||||||
|
> = {1.0};
|
||||||
|
float frostrpow
|
||||||
|
<
|
||||||
|
string UIName = "Frost Radial Contrast";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = 0.0;
|
||||||
|
> = {1.0};
|
||||||
|
float frostrmult
|
||||||
|
<
|
||||||
|
string UIName = "Frost Radial Intensity";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = 0.0;
|
||||||
|
> = {1.0};
|
||||||
|
float frostrbump
|
||||||
|
<
|
||||||
|
string UIName = "Frost Radial Offset";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.0};
|
||||||
|
float frostblend
|
||||||
|
<
|
||||||
|
string UIName = "Frost Texture Blend";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = 0.0;
|
||||||
|
> = {1.0};
|
||||||
|
float frostbpow
|
||||||
|
<
|
||||||
|
string UIName = "Frost Texture Blend Contrast";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = 0.0;
|
||||||
|
> = {1.0};
|
||||||
|
float frostsize
|
||||||
|
<
|
||||||
|
string UIName = "Frost Texture Size";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
float UIMin = 0.0;
|
||||||
|
> = {1.0};
|
||||||
|
float frostfactor_dw
|
||||||
|
<
|
||||||
|
string UIName = "Frost Factor Dawn";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.1};
|
||||||
|
float frostfactor_sr
|
||||||
|
<
|
||||||
|
string UIName = "Frost Factor Sunrise";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.0};
|
||||||
|
float frostfactor_dy
|
||||||
|
<
|
||||||
|
string UIName = "Frost Factor Day";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.0};
|
||||||
|
float frostfactor_ss
|
||||||
|
<
|
||||||
|
string UIName = "Frost Factor Sunset";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.0};
|
||||||
|
float frostfactor_ds
|
||||||
|
<
|
||||||
|
string UIName = "Frost Factor Dusk";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.1};
|
||||||
|
float frostfactor_nt
|
||||||
|
<
|
||||||
|
string UIName = "Frost Factor Night";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.25};
|
||||||
|
float frostfactor_i
|
||||||
|
<
|
||||||
|
string UIName = "Frost Factor Interior";
|
||||||
|
string UIWidget = "Spinner";
|
||||||
|
> = {0.0};
|
||||||
string str_noise = "Film Grain";
|
string str_noise = "Film Grain";
|
||||||
bool ne
|
bool ne
|
||||||
<
|
<
|
||||||
|
|
@ -109,14 +210,13 @@ string str_tonemap = "Tone Mapping";
|
||||||
3 : Uncharted 2
|
3 : Uncharted 2
|
||||||
4 : Hejl Dawson
|
4 : Hejl Dawson
|
||||||
5 : Haarm-Peter Duiker
|
5 : Haarm-Peter Duiker
|
||||||
6 : SweetFX
|
|
||||||
*/
|
*/
|
||||||
int tmapenable
|
int tmapenable
|
||||||
<
|
<
|
||||||
string UIName = "Tonemapping Method";
|
string UIName = "Tonemapping Method";
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
int UIMin = -1;
|
int UIMin = -1;
|
||||||
int UIMax = 6;
|
int UIMax = 5;
|
||||||
> = {3};
|
> = {3};
|
||||||
float tmapexposure_n
|
float tmapexposure_n
|
||||||
<
|
<
|
||||||
|
|
@ -262,126 +362,6 @@ float unW_i
|
||||||
string UIName = "Uncharted2 Linear White Interior";
|
string UIName = "Uncharted2 Linear White Interior";
|
||||||
string UIWidget = "Spinner";
|
string UIWidget = "Spinner";
|
||||||
> = {10.0};
|
> = {10.0};
|
||||||
float sfxgamma_n
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Gamma Night";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
float UIMax = 2.0;
|
|
||||||
> = {1.0};
|
|
||||||
float sfxgamma_d
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Gamma Day";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
float UIMax = 2.0;
|
|
||||||
> = {1.0};
|
|
||||||
float sfxgamma_i
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Gamma Interior";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
float UIMax = 2.0;
|
|
||||||
> = {1.0};
|
|
||||||
float sfxexposure_n
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Exposure Night";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = -1.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
float sfxexposure_d
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Exposure Day";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = -1.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
float sfxexposure_i
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Exposure Interior";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = -1.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
float sfxsaturation_n
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Saturation Night";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = -1.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
float sfxsaturation_d
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Saturation Day";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = -1.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
float sfxsaturation_i
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Saturation Interior";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = -1.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
float sfxbleach_n
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Bleach Night";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
float sfxbleach_d
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Bleach Day";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
float sfxbleach_i
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Bleach Interior";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
float sfxdefog_n
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Defog Night";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
float sfxdefog_d
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Defog Day";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
float sfxdefog_i
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Defog Interior";
|
|
||||||
string UIWidget = "Spinner";
|
|
||||||
float UIMin = 0.0;
|
|
||||||
float UIMax = 1.0;
|
|
||||||
> = {0.0};
|
|
||||||
float3 sfxfogcolor_n
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Defog Color Night";
|
|
||||||
string UIWidget = "Color";
|
|
||||||
> = {0.0,0.0,1.0};
|
|
||||||
float3 sfxfogcolor_d
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Defog Color Day";
|
|
||||||
string UIWidget = "Color";
|
|
||||||
> = {0.0,0.0,1.0};
|
|
||||||
float3 sfxfogcolor_i
|
|
||||||
<
|
|
||||||
string UIName = "SweetFX Defog Color Interior";
|
|
||||||
string UIWidget = "Color";
|
|
||||||
> = {0.0,0.0,1.0};
|
|
||||||
|
|
||||||
/* Color grading */
|
/* Color grading */
|
||||||
string str_grade = "Color Grading Suite";
|
string str_grade = "Color Grading Suite";
|
||||||
|
|
@ -720,6 +700,14 @@ Texture2D TextureTonemap
|
||||||
<
|
<
|
||||||
string ResourceName = "menbfilmlut.png";
|
string ResourceName = "menbfilmlut.png";
|
||||||
>;
|
>;
|
||||||
|
Texture2D TextureFrost
|
||||||
|
<
|
||||||
|
#ifdef FROST_DDS
|
||||||
|
string ResourceName = "menbfrost.dds";
|
||||||
|
#else
|
||||||
|
string ResourceName = "menbfrost.png";
|
||||||
|
#endif
|
||||||
|
>;
|
||||||
|
|
||||||
SamplerState Sampler0
|
SamplerState Sampler0
|
||||||
{
|
{
|
||||||
|
|
@ -733,6 +721,13 @@ SamplerState Sampler1
|
||||||
AddressU = Clamp;
|
AddressU = Clamp;
|
||||||
AddressV = Clamp;
|
AddressV = Clamp;
|
||||||
};
|
};
|
||||||
|
SamplerState Sampler2
|
||||||
|
{
|
||||||
|
Filter = MIN_MAG_MIP_LINEAR;
|
||||||
|
AddressU = Wrap;
|
||||||
|
AddressV = Wrap;
|
||||||
|
};
|
||||||
|
|
||||||
SamplerState SamplerLUT
|
SamplerState SamplerLUT
|
||||||
{
|
{
|
||||||
Filter = MIN_MAG_MIP_LINEAR;
|
Filter = MIN_MAG_MIP_LINEAR;
|
||||||
|
|
@ -875,31 +870,6 @@ float3 TonemapHejlDawson( float3 res )
|
||||||
float3 x = max(0.0,res-0.004);
|
float3 x = max(0.0,res-0.004);
|
||||||
return (x*(6.2*x+.5))/(x*(6.2*x+1.7)+0.06);
|
return (x*(6.2*x+.5))/(x*(6.2*x+1.7)+0.06);
|
||||||
}
|
}
|
||||||
/* The standard tonemap from sweetfx */
|
|
||||||
float3 TonemapSFX( float3 res )
|
|
||||||
{
|
|
||||||
float Gamma = tod_ind(sfxgamma);
|
|
||||||
float Exposure = tod_ind(sfxexposure);
|
|
||||||
float Saturation = tod_ind(sfxsaturation);
|
|
||||||
float Bleach = tod_ind(sfxbleach);
|
|
||||||
float Defog = tod_ind(sfxdefog);
|
|
||||||
float3 FogColor = tod_ind(sfxfogcolor);
|
|
||||||
float3 tcol = res;
|
|
||||||
tcol = saturate(tcol-Defog*FogColor*2.55);
|
|
||||||
tcol *= pow(2.0,Exposure);
|
|
||||||
tcol = pow(tcol,Gamma);
|
|
||||||
float lum = luminance(tcol);
|
|
||||||
float L = saturate(1.0*(lum-0.45));
|
|
||||||
float3 A2 = Bleach*tcol;
|
|
||||||
float3 res1 = 2.0*tcol*lum;
|
|
||||||
float3 res2 = 1.0-2.0*(1.0-lum)*(1.0-tcol);
|
|
||||||
float3 newc = lerp(res1,res2,L);
|
|
||||||
float3 mixrgb = A2*newc;
|
|
||||||
tcol += (1.0-A2)*mixrgb;
|
|
||||||
float3 gray = dot(tcol,1.0/3.0);
|
|
||||||
float3 diff = tcol-gray;
|
|
||||||
return (tcol+diff*Saturation)/(1+(diff*Saturation));
|
|
||||||
}
|
|
||||||
float3 Tonemap( float3 res )
|
float3 Tonemap( float3 res )
|
||||||
{
|
{
|
||||||
float3 tcol = pow(max(res,0.0),1.0/2.2);
|
float3 tcol = pow(max(res,0.0),1.0/2.2);
|
||||||
|
|
@ -907,8 +877,7 @@ float3 Tonemap( float3 res )
|
||||||
res *= tod_ind(tmapexposure);
|
res *= tod_ind(tmapexposure);
|
||||||
float tblend = tod_ind(tmapblend);
|
float tblend = tod_ind(tmapblend);
|
||||||
float3 mapped;
|
float3 mapped;
|
||||||
if ( tmapenable == 6 ) mapped = TonemapSFX(res);
|
if ( tmapenable == 5 ) mapped = TonemapHaarmPeterDuiker(res);
|
||||||
else if ( tmapenable == 5 ) mapped = TonemapHaarmPeterDuiker(res);
|
|
||||||
else if ( tmapenable == 4 ) mapped = TonemapHejlDawson(res);
|
else if ( tmapenable == 4 ) mapped = TonemapHejlDawson(res);
|
||||||
else if ( tmapenable == 3 ) mapped = TonemapUC2(res);
|
else if ( tmapenable == 3 ) mapped = TonemapUC2(res);
|
||||||
else if ( tmapenable == 2 ) mapped = TonemapReinhard(res);
|
else if ( tmapenable == 2 ) mapped = TonemapReinhard(res);
|
||||||
|
|
@ -1111,15 +1080,87 @@ float2 Adaptation( float2 coord )
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Screen frost shader. Not very realistic either, but looks fine too. */
|
||||||
|
float2 ScreenFrost( float2 coord )
|
||||||
|
{
|
||||||
|
float2 bresl;
|
||||||
|
if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed;
|
||||||
|
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||||
|
float2 nc = coord*(bresl/FROSTSIZE)*frostsize;
|
||||||
|
float2 ofs = TextureFrost.Sample(Sampler2,nc).xy;
|
||||||
|
ofs = (ofs-0.5)*2.0;
|
||||||
|
ofs *= pow(length(ofs),frostpow)*froststrength;
|
||||||
|
float todpow = max(0.0,todx_ind(frostfactor));
|
||||||
|
ofs *= todpow;
|
||||||
|
/*ofs *= max(0.0,coldfactor-warmfactor);*/
|
||||||
|
float dist = distance(coord,float2(0.5,0.5))*2.0;
|
||||||
|
ofs *= clamp(pow(dist,frostrpow)*frostrmult+frostrbump,0.0,1.0);
|
||||||
|
return coord+ofs;
|
||||||
|
}
|
||||||
|
|
||||||
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;
|
||||||
float4 res = TextureColor.Sample(Sampler0,coord);
|
float2 bresl;
|
||||||
|
if ( (fixed.x > 0) && (fixed.y > 0) ) bresl = fixed;
|
||||||
|
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||||
|
float4 res, mud;
|
||||||
|
[branch] 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(Sampler0,coord+ofr).r,
|
||||||
|
TextureColor.Sample(Sampler0,coord+ofg).g,
|
||||||
|
TextureColor.Sample(Sampler0,coord+ofb).b,1.0);
|
||||||
#ifdef SKYRIMSE
|
#ifdef SKYRIMSE
|
||||||
float4 mud = TextureBloom.Sample(Sampler1,coord);
|
mud = float4(TextureBloom.Sample(Sampler1,coord+ofr).r,
|
||||||
|
TextureBloom.Sample(Sampler1,coord+ofg).g,
|
||||||
|
TextureBloom.Sample(Sampler1,coord+ofb).b,1.0);
|
||||||
#else
|
#else
|
||||||
float4 mud = TextureBloom.Sample(Sampler1,Params01[4].zw*coord);
|
mud = float4(TextureBloom.Sample(Sampler1,
|
||||||
|
Params01[4].zw*(coord+ofr)).r,
|
||||||
|
TextureBloom.Sample(Sampler1,Params01[4].zw
|
||||||
|
*(coord+ofg)).g,TextureBloom.Sample(Sampler1,
|
||||||
|
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;
|
||||||
|
float bmp = pow(max(0,TextureFrost.SampleLevel(Sampler2,nc,
|
||||||
|
0).z),frostbpow);
|
||||||
|
float dist = distance(coord,float2(0.5,0.5))*2.0;
|
||||||
|
dist = clamp(pow(dist,frostrpow)*frostrmult+frostrbump,0.0,
|
||||||
|
1.0)*frostblend;
|
||||||
|
float todpow = max(0.0,todx_ind(frostfactor));
|
||||||
|
dist *= todpow;
|
||||||
|
/* Weathers not implemented in FO4 ENB as of 0.291 */
|
||||||
|
/*dist *= max(0.0,coldfactor-warmfactor);*/
|
||||||
|
res.rgb *= 1.0+bmp*dist;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
res = TextureColor.Sample(Sampler0,coord);
|
||||||
|
#ifdef SKYRIMSE
|
||||||
|
mud = TextureBloom.Sample(Sampler1,coord);
|
||||||
|
#else
|
||||||
|
mud = TextureBloom.Sample(Sampler1,Params01[4].zw*coord);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
/* Insert MariENB filters here */
|
/* Insert MariENB filters here */
|
||||||
float2 adapt = Adaptation(coord);
|
float2 adapt = Adaptation(coord);
|
||||||
if ( bloomdebug ) res.rgb *= 0;
|
if ( bloomdebug ) res.rgb *= 0;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,24 @@
|
||||||
[ENBEFFECT.FX]
|
[ENBEFFECT.FX]
|
||||||
TECHNIQUE=1
|
TECHNIQUE=1
|
||||||
|
Fixed ResolutionX=1920
|
||||||
|
Fixed ResolutionY=1080
|
||||||
|
Distortion Chromatic Aberration=9.5
|
||||||
|
Enable Screen Frost=false
|
||||||
|
Frost Contrast=1.67
|
||||||
|
Frost Strength=0.02
|
||||||
|
Frost Radial Contrast=1.67
|
||||||
|
Frost Radial Intensity=0.83
|
||||||
|
Frost Radial Offset=-0.66
|
||||||
|
Frost Texture Blend=0.94
|
||||||
|
Frost Texture Blend Contrast=2.44
|
||||||
|
Frost Texture Size=0.85
|
||||||
|
Frost Factor Dawn=0.0
|
||||||
|
Frost Factor Sunrise=0.0
|
||||||
|
Frost Factor Day=0.0
|
||||||
|
Frost Factor Sunset=0.0
|
||||||
|
Frost Factor Dusk=0.0
|
||||||
|
Frost Factor Night=1.06
|
||||||
|
Frost Factor Interior=0.0
|
||||||
Enable Grain=true
|
Enable Grain=true
|
||||||
Grain Speed=25.0
|
Grain Speed=25.0
|
||||||
Grain Intensity=0.250001
|
Grain Intensity=0.250001
|
||||||
|
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 737 KiB After Width: | Height: | Size: 2.6 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.2 MiB |
Reference in a new issue