MariENB Skyrim 2.5.1
This commit is contained in:
parent
58c308eead
commit
42ae0bbd03
20 changed files with 1591 additions and 2033 deletions
|
|
@ -23,6 +23,7 @@ EnableProceduralSun=true
|
|||
EnableMist=true
|
||||
EnableSkyLighting=false
|
||||
EnableCloudShadows=false
|
||||
EnablePrepass=true
|
||||
[COLORCORRECTION]
|
||||
UsePaletteTexture=true
|
||||
UseProceduralCorrection=false
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
2.5.0-1 "Even Crazier about Weathers"
|
||||
2.5.1sk "Alone In The Prepass"
|
||||
|
|
|
|||
|
|
@ -59,8 +59,8 @@ Anamorphic Bloom Blue Shift Interior Day Green=-0.11
|
|||
Anamorphic Bloom Blue Shift Interior Day Blue=1.65
|
||||
Anamorphic Bloom Blue Shift Intensity Night=0.46
|
||||
Anamorphic Bloom Blue Shift Intensity Day=0.41
|
||||
Anamorphic Bloom Blue Shift Interior Night=0.57
|
||||
Anamorphic Bloom Blue Shift Interior Day=0.5
|
||||
Anamorphic Bloom Blue Shift Intensity Interior Night=0.57
|
||||
Anamorphic Bloom Blue Shift Intensity Interior Day=0.5
|
||||
Anamorphic Bloom Contrast Night=1.33
|
||||
Anamorphic Bloom Contrast Day=1.35
|
||||
Anamorphic Bloom Contrast Interior Night=1.36
|
||||
|
|
|
|||
11
enbseries/enbdepthoffield.fx
Normal file
11
enbseries/enbdepthoffield.fx
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
/*
|
||||
enbdepthoffield.fx : MariENB dof.
|
||||
(C)2013-2017 Marisa Kirisame, UnSX Team.
|
||||
Part of MariENB, the personal ENB of Marisa.
|
||||
Released under the GNU GPLv3 (or later).
|
||||
*/
|
||||
/* separate for easier maintenance */
|
||||
#include "menbglobaldefs.fx"
|
||||
#include "menbdepthoffieldsettings.fx"
|
||||
#include "menbdepthoffieldinternals.fx"
|
||||
#include "menbdepthoffieldfilters.fx"
|
||||
113
enbseries/enbdepthoffield.fx.ini
Normal file
113
enbseries/enbdepthoffield.fx.ini
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
[ENBDEPTHOFFIELD.FX]
|
||||
TECHNIQUE=0
|
||||
Fixed Resolution Width=1920
|
||||
Fixed Resolution Height=1080
|
||||
Depth Cutoff=999998.0
|
||||
Focus Mode=1
|
||||
Display Focus Points=false
|
||||
Manual Focus Depth=0.0
|
||||
Focus Point Center X=50.0
|
||||
Focus Point Center Y=50.0
|
||||
Focus Triangle Angle=0.5
|
||||
Focus Triangle Radius Night=12.0
|
||||
Focus Triangle Radius Day=16.0
|
||||
Focus Triangle Radius Interior Night=10.0
|
||||
Focus Triangle Radius Interior Day=14.0
|
||||
Focus Triangle Blending Night=0.7
|
||||
Focus Triangle Blending Day=0.8
|
||||
Focus Triangle Blending Interior Night=0.8
|
||||
Focus Triangle Blending Interior Day=0.9
|
||||
Focus Maximum Depth Night=990.349976
|
||||
Focus Maximum Depth Day=994.570007
|
||||
Focus Maximum Depth Interior Night=984.919983
|
||||
Focus Maximum Depth Interior Day=989.539978
|
||||
DOF Intensity Night=475.899994
|
||||
DOF Intensity Day=424.299988
|
||||
DOF Intensity Interior Night=480.799988
|
||||
DOF Intensity Interior Day=432.299988
|
||||
DOF Contrast Night=3.35
|
||||
DOF Contrast Day=3.8
|
||||
DOF Contrast Interior Night=3.12
|
||||
DOF Contrast Interior Day=3.52
|
||||
DOF Shift Night=0.0
|
||||
DOF Shift Day=0.0
|
||||
DOF Shift Interior Night=0.0
|
||||
DOF Shift Interior Day=0.0
|
||||
DOF Fixed Focus Intensity Night=1.0
|
||||
DOF Fixed Focus Intensity Day=1.0
|
||||
DOF Fixed Focus Intensity Interior Night=1.0
|
||||
DOF Fixed Focus Intensity Interior Day=1.0
|
||||
DOF Fixed Focus Contrast Night=1.0
|
||||
DOF Fixed Focus Contrast Day=1.0
|
||||
DOF Fixed Focus Contrast Interior Night=1.0
|
||||
DOF Fixed Focus Contrast Interior Day=1.0
|
||||
DOF Fixed Focus Shift Night=0.0
|
||||
DOF Fixed Focus Shift Day=0.0
|
||||
DOF Fixed Focus Shift Interior Night=0.0
|
||||
DOF Fixed Focus Shift Interior Day=0.0
|
||||
DOF Fixed Focus Blend Night=0.0
|
||||
DOF Fixed Focus Blend Day=0.0
|
||||
DOF Fixed Focus Blend Interior Night=0.0
|
||||
DOF Fixed Focus Blend Interior Day=0.0
|
||||
DOF Fixed Focus Depth=0.0
|
||||
DOF Fixed Focus Cap=0.0
|
||||
DOF Fixed Unfocus Intensity Night=1.15
|
||||
DOF Fixed Unfocus Intensity Day=1.1
|
||||
DOF Fixed Unfocus Intensity Interior Night=1.19
|
||||
DOF Fixed Unfocus Intensity Interior Day=1.14
|
||||
DOF Fixed Unfocus Contrast Night=99.099998
|
||||
DOF Fixed Unfocus Contrast Day=126.139999
|
||||
DOF Fixed Unfocus Contrast Interior Night=84.849998
|
||||
DOF Fixed Unfocus Contrast Interior Day=110.82
|
||||
DOF Fixed Unfocus Shift Night=-0.88
|
||||
DOF Fixed Unfocus Shift Day=-0.95
|
||||
DOF Fixed Unfocus Shift Interior Night=-0.85
|
||||
DOF Fixed Unfocus Shift Interior Day=-0.93
|
||||
DOF Fixed Unfocus Blend Night=1.0
|
||||
DOF Fixed Unfocus Blend Day=1.0
|
||||
DOF Fixed Unfocus Blend Interior Night=1.0
|
||||
DOF Fixed Unfocus Blend Interior Day=1.0
|
||||
DOF Fixed Unfocus Depth=0.0
|
||||
DOF Fixed Use Cutoff=true
|
||||
Enable DOF Fog=true
|
||||
DOF Fog Intensity Night=1.16
|
||||
DOF Fog Intensity Day=1.14
|
||||
DOF Fog Intensity Interior Night=1.24
|
||||
DOF Fog Intensity Interior Day=1.21
|
||||
DOF Fog Contrast Night=106.489998
|
||||
DOF Fog Contrast Day=143.289993
|
||||
DOF Fog Contrast Interior Night=93.480011
|
||||
DOF Fog Contrast Interior Day=121.669998
|
||||
DOF Fog Shift Night=-0.58
|
||||
DOF Fog Shift Day=-0.65
|
||||
DOF Fog Shift Interior Night=-0.5
|
||||
DOF Fog Shift Interior Day=-0.54
|
||||
DOF Fog Blend Night=1.0
|
||||
DOF Fog Blend Day=1.0
|
||||
DOF Fog Blend Interior Night=1.0
|
||||
DOF Fog Blend Interior Day=1.0
|
||||
DOF Fog Depth=0.0
|
||||
Use Only Fixed DOF=false
|
||||
DOF Gather Blur Radius=8.0
|
||||
Enable DOF Post-Blur=true
|
||||
DOF Post-Blur Radius=1.0
|
||||
DOF Blur Chromatic Aberration=1.82
|
||||
Enable DOF Highlights=true
|
||||
DOF Highlight Threshold=0.47
|
||||
DOF Highlight Gain=2.21
|
||||
DOF Bokeh Blur Radius=1.62
|
||||
DOF Bokeh Edge Bias=0.72
|
||||
DOF Bokeh Fuzz=0.05
|
||||
DOF Relative to FOV=true
|
||||
Default FOV=75.0
|
||||
DOF Relative Factor Night=2.19
|
||||
DOF Relative Factor Day=2.39
|
||||
DOF Relative Factor Interior Night=2.22
|
||||
DOF Relative Factor Interior Day=2.41
|
||||
Focus Plane Horizontal Tilt Center=0.5
|
||||
Focus Plane Vertical Tilt Center=0.5
|
||||
Focus Plane Horizontal Tilt=0.0
|
||||
Focus Plane Vertical Tilt=0.0
|
||||
DOF Minimum Blur=0.01
|
||||
Debug Depth=false
|
||||
Debug Focus=false
|
||||
|
|
@ -1,5 +1,22 @@
|
|||
[ENBEFFECT.FX]
|
||||
TECHNIQUE=0
|
||||
Fixed Resolution Width=1920
|
||||
Fixed Resolution Height=1080
|
||||
Distortion Chromatic Aberration=41.52
|
||||
Enable Screen Frost=true
|
||||
Frost Contrast=1.22
|
||||
Frost Strength=0.19
|
||||
Frost Radial Contrast=1.17
|
||||
Frost Radial Intensity=0.87
|
||||
Frost Radial Offset=-0.71
|
||||
Frost Texture Blend=1.51
|
||||
Frost Texture Blend Contrast=6.51
|
||||
Frost Texture Size=0.8
|
||||
Frost Factor Night=1.19
|
||||
Frost Factor Day=0.63
|
||||
Frost Factor Interior Night=0.62
|
||||
Frost Factor Interior Day=0.22
|
||||
Frost Always Enable=false
|
||||
Enable Grain=true
|
||||
Grain Speed=15.0
|
||||
Grain Intensity=0.05
|
||||
|
|
|
|||
|
|
@ -6,18 +6,6 @@ Depth Cutoff=999998.0
|
|||
Near Z=0.05
|
||||
Far Z=3098.0
|
||||
Distortion Chromatic Aberration=14.79
|
||||
Enable Underwater=false
|
||||
Underwater Frequency 1=2.36
|
||||
Underwater Frequency 2=3.39
|
||||
Underwater Frequency 3=2.72
|
||||
Underwater Speed 1=24.309999
|
||||
Underwater Speed 2=21.9
|
||||
Underwater Speed 3=26.549999
|
||||
Underwater Amplitude 1=0.1
|
||||
Underwater Amplitude 2=0.11
|
||||
Underwater Amplitude 3=0.07
|
||||
Underwater Zoom=0.15
|
||||
Always Underwater=false
|
||||
Enable Hot Air Refraction=true
|
||||
Heat Texture Size=11.640001
|
||||
Heat Speed=0.15
|
||||
|
|
@ -26,117 +14,11 @@ Heat Fade Intensity=1.09
|
|||
Heat Fade Offset=-0.78
|
||||
Heat Intensity=0.18
|
||||
Heat Contrast=1.0
|
||||
Heat Time-of-day Contrast=3.97
|
||||
Heat Factor Night=0.0
|
||||
Heat Factor Day=1.15
|
||||
Heat Factor Interior Night=0.0
|
||||
Heat Factor Interior Day=0.52
|
||||
Heat Always Enable=false
|
||||
Enable Screen Frost=true
|
||||
Frost Contrast=1.07
|
||||
Frost Strength=0.02
|
||||
Frost Radial Contrast=1.17
|
||||
Frost Radial Intensity=0.87
|
||||
Frost Radial Offset=-0.71
|
||||
Frost Texture Blend=1.28
|
||||
Frost Texture Blend Contrast=2.08
|
||||
Frost Texture Size=0.8
|
||||
Frost Indoor Factor=0.0
|
||||
Frost Night Factor=0.0
|
||||
Frost Always Enable=false
|
||||
Focus Mode=1
|
||||
Display Focus Points=false
|
||||
Manual Focus Depth=0.0
|
||||
Focus Point Center X=50.0
|
||||
Focus Point Center Y=50.0
|
||||
Focus Triangle Angle=0.5
|
||||
Focus Triangle Radius Night=12.0
|
||||
Focus Triangle Radius Day=16.0
|
||||
Focus Triangle Radius Interior Night=10.0
|
||||
Focus Triangle Radius Interior Day=14.0
|
||||
Focus Triangle Blending Night=0.7
|
||||
Focus Triangle Blending Day=0.8
|
||||
Focus Triangle Blending Interior Night=0.8
|
||||
Focus Triangle Blending Interior Day=0.9
|
||||
Focus Maximum Depth Night=990.349976
|
||||
Focus Maximum Depth Day=994.570007
|
||||
Focus Maximum Depth Interior Night=984.919983
|
||||
Focus Maximum Depth Interior Day=989.539978
|
||||
DOF Intensity Night=475.899994
|
||||
DOF Intensity Day=424.299988
|
||||
DOF Intensity Interior Night=480.799988
|
||||
DOF Intensity Interior Day=432.299988
|
||||
DOF Contrast Night=3.35
|
||||
DOF Contrast Day=3.8
|
||||
DOF Contrast Interior Night=3.12
|
||||
DOF Contrast Interior Day=3.52
|
||||
DOF Shift Night=0.0
|
||||
DOF Shift Day=0.0
|
||||
DOF Shift Interior Night=0.0
|
||||
DOF Shift Interior Day=0.0
|
||||
DOF Fixed Focus Intensity Night=1.0
|
||||
DOF Fixed Focus Intensity Day=1.0
|
||||
DOF Fixed Focus Intensity Interior Night=1.0
|
||||
DOF Fixed Focus Intensity Interior Day=1.0
|
||||
DOF Fixed Focus Contrast Night=1.0
|
||||
DOF Fixed Focus Contrast Day=1.0
|
||||
DOF Fixed Focus Contrast Interior Night=1.0
|
||||
DOF Fixed Focus Contrast Interior Day=1.0
|
||||
DOF Fixed Focus Shift Night=0.0
|
||||
DOF Fixed Focus Shift Day=0.0
|
||||
DOF Fixed Focus Shift Interior Night=0.0
|
||||
DOF Fixed Focus Shift Interior Day=0.0
|
||||
DOF Fixed Focus Blend Night=0.0
|
||||
DOF Fixed Focus Blend Day=0.0
|
||||
DOF Fixed Focus Blend Interior Night=0.0
|
||||
DOF Fixed Focus Blend Interior Day=0.0
|
||||
DOF Fixed Unfocus Intensity Night=1.15
|
||||
DOF Fixed Unfocus Intensity Day=1.1
|
||||
DOF Fixed Unfocus Intensity Interior Night=1.19
|
||||
DOF Fixed Unfocus Intensity Interior Day=1.14
|
||||
DOF Fixed Unfocus Contrast Night=99.099998
|
||||
DOF Fixed Unfocus Contrast Day=126.139999
|
||||
DOF Fixed Unfocus Contrast Interior Night=84.849998
|
||||
DOF Fixed Unfocus Contrast Interior Day=110.82
|
||||
DOF Fixed Unfocus Shift Night=-0.88
|
||||
DOF Fixed Unfocus Shift Day=-0.95
|
||||
DOF Fixed Unfocus Shift Interior Night=-0.85
|
||||
DOF Fixed Unfocus Shift Interior Day=-0.93
|
||||
DOF Fixed Unfocus Blend Night=1.0
|
||||
DOF Fixed Unfocus Blend Day=1.0
|
||||
DOF Fixed Unfocus Blend Interior Night=1.0
|
||||
DOF Fixed Unfocus Blend Interior Day=1.0
|
||||
DOF Fixed Use Cutoff=true
|
||||
Enable DOF Fog=true
|
||||
DOF Fog Intensity Night=1.16
|
||||
DOF Fog Intensity Day=1.14
|
||||
DOF Fog Intensity Interior Night=1.24
|
||||
DOF Fog Intensity Interior Day=1.21
|
||||
DOF Fog Contrast Night=106.489998
|
||||
DOF Fog Contrast Day=143.289993
|
||||
DOF Fog Contrast Interior Night=93.480011
|
||||
DOF Fog Contrast Interior Day=121.669998
|
||||
DOF Fog Shift Night=-0.58
|
||||
DOF Fog Shift Day=-0.65
|
||||
DOF Fog Shift Interior Night=-0.5
|
||||
DOF Fog Shift Interior Day=-0.54
|
||||
DOF Fog Blend Night=1.0
|
||||
DOF Fog Blend Day=1.0
|
||||
DOF Fog Blend Interior Night=1.0
|
||||
DOF Fog Blend Interior Day=1.0
|
||||
Disable DOF=false
|
||||
Use Only Fixed DOF=false
|
||||
DOF Blur Radius=8.0
|
||||
DOF Blur Chromatic Aberration=1.82
|
||||
DOF Relative to FOV=true
|
||||
Default FOV=75.0
|
||||
DOF Relative Factor Night=2.19
|
||||
DOF Relative Factor Day=2.39
|
||||
DOF Relative Factor Interior Night=2.22
|
||||
DOF Relative Factor Interior Day=2.41
|
||||
Focus Plane Horizontal Tilt Center=0.5
|
||||
Focus Plane Vertical Tilt Center=0.5
|
||||
Focus Plane Horizontal Tilt=0.0
|
||||
Focus Plane Vertical Tilt=0.0
|
||||
DOF Minimum Blur=0.01
|
||||
Debug Depth=false
|
||||
Debug Focus=false
|
||||
Enable Edgevision=false
|
||||
Edgevision Fade Contrast Night=1.82
|
||||
Edgevision Fade Contrast Day=1.86
|
||||
|
|
@ -172,28 +54,7 @@ Debug SSAO=false
|
|||
Sharpen Enable=true
|
||||
Sharpen Radius=0.8
|
||||
Sharpen Clamp=0.1
|
||||
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.47
|
||||
DOF Highlight Gain=2.21
|
||||
DOF Bokeh Edge Bias=0.72
|
||||
DOF Bokeh Fuzz=0.05
|
||||
DOF Gather Blur Radius=8.0
|
||||
DOF Bokeh Blur Radius=1.62
|
||||
Heat Factor Night=0.0
|
||||
Heat Factor Day=1.15
|
||||
Heat Factor Interior Night=0.0
|
||||
Heat Factor Interior Day=0.52
|
||||
Frost Factor Night=1.19
|
||||
Frost Factor Day=0.31
|
||||
Frost Factor Interior Night=0.56
|
||||
Frost Factor Interior Day=0.22
|
||||
Sharpen Blending=8.0
|
||||
Depth Grading Center Depth=0.0
|
||||
Depth Grading Contrast Night=129.800003
|
||||
Depth Grading Contrast Day=144.529999
|
||||
|
|
|
|||
|
|
@ -334,13 +334,13 @@ float fsi_d
|
|||
> = {1.0};
|
||||
float fsi_in
|
||||
<
|
||||
string UIName = "Anamorphic Bloom Blue Shift Interior Night";
|
||||
string UIName = "Anamorphic Bloom Blue Shift Intensity Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float fsi_id
|
||||
<
|
||||
string UIName = "Anamorphic Bloom Blue Shift Interior Day";
|
||||
string UIName = "Anamorphic Bloom Blue Shift Intensity Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
|
|
|
|||
461
enbseries/menbdepthoffieldfilters.fx
Normal file
461
enbseries/menbdepthoffieldfilters.fx
Normal file
|
|
@ -0,0 +1,461 @@
|
|||
/*
|
||||
menbdepthoffieldfilters.fx : MariENB dof shader routines.
|
||||
(C)2013-2017 Marisa Kirisame, UnSX Team.
|
||||
Part of MariENB, the personal ENB of Marisa.
|
||||
Released under the GNU GPLv3 (or later).
|
||||
*/
|
||||
VS_OUTPUT_POST VS_Pass( VS_INPUT_POST IN )
|
||||
{
|
||||
VS_OUTPUT_POST OUT;
|
||||
OUT.vpos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0);
|
||||
OUT.txcoord.xy = IN.txcoord.xy;
|
||||
return OUT;
|
||||
}
|
||||
/* helper functions */
|
||||
/* photometric */
|
||||
#define luminance(x) dot(x,float3(0.2126,0.7152,0.0722))
|
||||
/* CCIR601 */
|
||||
//#define luminance(x) dot(x,float3(0.299,0.587,0.114))
|
||||
/* Focus */
|
||||
float4 PS_ReadFocus( VS_OUTPUT_POST IN ) : COLOR
|
||||
{
|
||||
if ( focuscircle < 0 ) return focusmanualvalue*0.001;
|
||||
float focusmax = tod_ind(focusmax);
|
||||
float2 fcenter = float2(focuscenter_x*0.01,focuscenter_y*0.01);
|
||||
float cfocus = min(tex2D(SamplerDepth,fcenter).x,focusmax*0.001);
|
||||
if ( focuscircle == 0 ) return cfocus;
|
||||
if ( focuscircle == 2 )
|
||||
{
|
||||
int i, j;
|
||||
float mfocus = 0.0;
|
||||
float2 px;
|
||||
[unroll] for( j=0; j<8; j++ ) [unroll] for( i=0; i<8; i++ )
|
||||
{
|
||||
px = float2((i+0.5)/8.0,(j+0.5)/8.0);
|
||||
mfocus += min(tex2D(SamplerDepth,px).x,focusmax*0.001);
|
||||
}
|
||||
return mfocus/64.0;
|
||||
}
|
||||
/* using polygons inscribed into a circle, in this case a triangle */
|
||||
float focusradius = tod_ind(focusradius);
|
||||
float focusmix = tod_ind(focusmix);
|
||||
float cstep = (1.0/3.0);
|
||||
float mfocus;
|
||||
float2 coord;
|
||||
float2 bof = float2(1.0,1.0/ScreenSize.w)*focusradius*0.01;
|
||||
float fan = focuscircleangle*2.0*pi;
|
||||
coord.x = fcenter.x+sin(fan)*bof.x;
|
||||
coord.y = fcenter.y+cos(fan)*bof.y;
|
||||
mfocus = cstep*min(tex2D(SamplerDepth,coord).x,focusmax*0.001);
|
||||
coord.x = fcenter.x+sin(fan+2.0*pi*cstep)*bof.x;
|
||||
coord.y = fcenter.y+cos(fan+2.0*pi*cstep)*bof.y;
|
||||
mfocus += cstep*min(tex2D(SamplerDepth,coord).x,focusmax*0.001);
|
||||
coord.x = fcenter.x+sin(fan+4.0*pi*cstep)*bof.x;
|
||||
coord.y = fcenter.y+cos(fan+4.0*pi*cstep)*bof.y;
|
||||
mfocus += cstep*min(tex2D(SamplerDepth,coord).x,focusmax*0.001);
|
||||
cfocus = (1.0-focusmix)*cfocus+focusmix*mfocus;
|
||||
return cfocus;
|
||||
}
|
||||
float4 PS_WriteFocus( VS_OUTPUT_POST IN ) : COLOR
|
||||
{
|
||||
return max(lerp(tex2D(SamplerPrev,0.5).x,tex2D(SamplerCurr,0.5).x,
|
||||
saturate(FadeFactor)),0.0);
|
||||
}
|
||||
/* Depth of Field */
|
||||
float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
||||
{
|
||||
float2 coord = IN.txcoord.xy;
|
||||
float dofpow = tod_ind(dofpow);
|
||||
float dofmult = tod_ind(dofmult);
|
||||
float dofbump = tod_ind(dofbump);
|
||||
float doffixedfocuspow = tod_ind(doffixedfocuspow);
|
||||
float doffixedfocusmult = tod_ind(doffixedfocusmult);
|
||||
float doffixedfocusbump = tod_ind(doffixedfocusbump);
|
||||
float doffixedfocusblend = tod_ind(doffixedunfocusblend);
|
||||
float doffixedunfocuspow = tod_ind(doffixedunfocuspow);
|
||||
float doffixedunfocusmult = tod_ind(doffixedunfocusmult);
|
||||
float doffixedunfocusbump = tod_ind(doffixedunfocusbump);
|
||||
float doffixedunfocusblend = tod_ind(doffixedunfocusblend);
|
||||
float doffogpow = tod_ind(doffogpow);
|
||||
float doffogmult = tod_ind(doffogmult);
|
||||
float doffogbump = tod_ind(doffogbump);
|
||||
float doffogblend = tod_ind(doffogblend);
|
||||
float dep = tex2D(SamplerDepth,coord).x;
|
||||
float foc = tex2D(SamplerFocus,coord).x;
|
||||
/* cheap tilt */
|
||||
foc = foc+0.01*doftiltx*(doftiltxcenter-coord.x)
|
||||
+0.01*doftilty*(doftiltycenter-coord.y);
|
||||
float dff = abs(dep-doffixedfocusdepth);
|
||||
dff = clamp(pow(dff,doffixedfocuspow)*doffixedfocusmult
|
||||
+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);
|
||||
float dfog = abs(dep-doffogdepth);
|
||||
dfog = clamp(pow(dfog,doffogpow)*doffogmult+doffogbump,0.0,1.0);
|
||||
if ( doffixedcut && (dep >= cutoff*0.000001) ) dfu *= 0;
|
||||
/* Change power of dof based on field of view */
|
||||
if ( dofrelfov )
|
||||
{
|
||||
float relfovfactor = tod_ind(relfovfactor);
|
||||
float relfov = (FieldOfView-fovdefault)/fovdefault;
|
||||
dofpow = max(0,dofpow+relfov*relfovfactor);
|
||||
}
|
||||
float dfc = abs(dep-foc);
|
||||
dfc = clamp(pow(dfc,dofpow)*dofmult+dofbump,0.0,1.0);
|
||||
if ( doffixedonly ) dfc *= 0;
|
||||
dfc += lerp(0.0,dfu,doffixedunfocusblend);
|
||||
if ( doffogenable ) dfc += fogfactor*lerp(0.0,dfog,doffogblend);
|
||||
dfc *= lerp(1.0,dff,doffixedfocusblend);
|
||||
dfc = saturate(dfc);
|
||||
float4 res = tex2D(SamplerColor,coord);
|
||||
res.a = dfc;
|
||||
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,
|
||||
out float4 deps, out float4 dfcs )
|
||||
{
|
||||
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;
|
||||
deps.r = tex2D(SamplerDepth,coord+gcircle(ang)*bsz*dofpcha*0.1).x;
|
||||
dfcs.r = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).a;
|
||||
ang += cstep;
|
||||
res.g = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).g;
|
||||
deps.g = tex2D(SamplerDepth,coord+gcircle(ang)*bsz*dofpcha*0.1).x;
|
||||
dfcs.g = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).a;
|
||||
ang += cstep;
|
||||
res.b = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).b;
|
||||
deps.b = tex2D(SamplerDepth,coord+gcircle(ang)*bsz*dofpcha*0.1).x;
|
||||
dfcs.b = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).a;
|
||||
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;
|
||||
deps.a = tex2D(SamplerDepth,coord).x;
|
||||
dfcs.a = res.a;
|
||||
return res;
|
||||
}
|
||||
/* gather blur pass */
|
||||
float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
|
||||
{
|
||||
float2 coord = IN.txcoord.xy;
|
||||
float dfc = tex2D(SamplerColor,coord).a;
|
||||
float2 bresl;
|
||||
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
|
||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||
float2 bof = 1.0/bresl;
|
||||
/*
|
||||
Skip blurring areas that are perfectly in focus. The performance
|
||||
gain is negligible in most cases, though.
|
||||
*/
|
||||
if ( dfc <= dofminblur ) return tex2D(SamplerColor,coord);
|
||||
float4 res = float4(0,0,0,0);
|
||||
float dep = tex2D(SamplerDepth,coord).x;
|
||||
float2 bsz = bof*dofpradius*dfc;
|
||||
float4 sc, ds, sd, sw, tw = float4(0,0,0,0);
|
||||
[unroll] for ( int i=0; i<32; i++ )
|
||||
{
|
||||
sc = dofsample(coord+poisson32[i]*bsz,bsz,dfc,dofhilite,ds,sd);
|
||||
sw.r = (ds.r>dep)?1.0:sd.r;
|
||||
sw.g = (ds.g>dep)?1.0:sd.g;
|
||||
sw.b = (ds.b>dep)?1.0:sd.b;
|
||||
sw.a = (ds.a>dep)?1.0:sd.a;
|
||||
tw += sw;
|
||||
res += sc*sw;
|
||||
}
|
||||
res /= tw;
|
||||
res.a = dfc;
|
||||
return res;
|
||||
}
|
||||
/* "bokeh" blur pass */
|
||||
float4 PS_DoFBorkeh( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
|
||||
{
|
||||
float2 coord = IN.txcoord.xy;
|
||||
float dfc = tex2D(SamplerColor,coord).a;
|
||||
float2 bresl;
|
||||
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
|
||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||
float2 bof = 1.0/bresl;
|
||||
float4 res = tex2D(SamplerColor,coord);
|
||||
res.a = 0.0;
|
||||
/*
|
||||
Skip blurring areas that are perfectly in focus. The performance
|
||||
gain is negligible in most cases, though.
|
||||
*/
|
||||
if ( dfc <= dofminblur ) return res;
|
||||
float dep = tex2D(SamplerDepth,coord).x;
|
||||
float2 sf = bof+(tex2D(SamplerNoise3,coord*(bresl/256.0)).xy*2.0-1.0)
|
||||
*dofbnoise*0.001;
|
||||
float2 sr = sf*dofbradius*dfc;
|
||||
int rsamples;
|
||||
float bstep, bw;
|
||||
float4 sc, ds, sd, sw, tw = float4(1,1,1,1);
|
||||
float2 rcoord;
|
||||
#define dofbrings 7
|
||||
#define dofbsamples 3
|
||||
[unroll] for ( int i=1; i<=dofbrings; i++ )
|
||||
{
|
||||
rsamples = i*dofbsamples;
|
||||
[unroll] for ( int j=0; j<rsamples; j++ )
|
||||
{
|
||||
bstep = pi*2.0/(float)rsamples;
|
||||
rcoord = gcircle(j*bstep)*i;
|
||||
bw = lerp(1.0,(float)i/(float)dofbrings,dofbbias);
|
||||
sc = dofsample(coord+rcoord*sr,sr*i,dfc,dofhilite,ds,sd);
|
||||
sw.r = (ds.r>dep)?1.0:sd.r;
|
||||
sw.g = (ds.g>dep)?1.0:sd.g;
|
||||
sw.b = (ds.b>dep)?1.0:sd.b;
|
||||
sw.a = (ds.a>dep)?1.0:sd.a;
|
||||
res += sc*sw*bw;
|
||||
tw += sw*bw;
|
||||
}
|
||||
}
|
||||
res /= tw;
|
||||
res.a = dfc;
|
||||
return res;
|
||||
}
|
||||
float4 PS_DoFPostBlur( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
|
||||
{
|
||||
float2 coord = IN.txcoord.xy;
|
||||
float dfc = tex2D(SamplerColor,coord).a;
|
||||
if ( dofdebug ) return tex2D(SamplerDepth,coord).x;
|
||||
if ( dfcdebug ) return dfc;
|
||||
float2 bresl;
|
||||
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
|
||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||
float2 bof = (1.0/bresl)*dofpbradius;
|
||||
float2 ofs[16] =
|
||||
{
|
||||
float2(1.0,1.0), float2(-1.0,-1.0),
|
||||
float2(-1.0,1.0), float2(1.0,-1.0),
|
||||
|
||||
float2(1.0,0.0), float2(-1.0,0.0),
|
||||
float2(0.0,1.0), float2(0.0,-1.0),
|
||||
|
||||
float2(1.41,0.0), float2(-1.41,0.0),
|
||||
float2(0.0,1.41), float2(0.0,-1.41),
|
||||
|
||||
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);
|
||||
if ( !dofpostblur ) return float4(res.rgb,1.0);
|
||||
int i;
|
||||
[unroll] for ( i=0; i<16; i++ )
|
||||
res += tex2D(SamplerColor,coord+ofs[i]*bof*dfc);
|
||||
res /= 17.0;
|
||||
res.a = 1.0;
|
||||
return res;
|
||||
}
|
||||
/* focus point debug */
|
||||
float4 PS_FocusDebug( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
|
||||
{
|
||||
float2 coord = IN.txcoord.xy;
|
||||
float4 res = tex2D(SamplerColor,coord);
|
||||
if ( !focusdisplay || (focuscircle < 0) ) return res;
|
||||
if ( focuscircle == 2 )
|
||||
{
|
||||
int i, j;
|
||||
float2 px;
|
||||
[unroll] for( j=0; j<8; j++ ) [unroll] for( i=0; i<8; i++ )
|
||||
{
|
||||
px = float2((i+0.5)/8.0,(j+0.5)/8.0);
|
||||
if ( distance(coord,px) < 0.005 )
|
||||
res.rgb = float3(1,0,0);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
float2 fcenter = float2(focuscenter_x*0.01,focuscenter_y*0.01);
|
||||
if ( distance(coord,fcenter) < 0.005 ) res.rgb = float3(1,0,0);
|
||||
if ( focuscircle == 0 ) return res;
|
||||
float cstep = (1.0/3.0);
|
||||
float2 tcoord;
|
||||
float focusradius = tod_ind(focusradius);
|
||||
float2 bof = float2(1.0,1.0/ScreenSize.w)*focusradius*0.01;
|
||||
float fan = focuscircleangle*2.0*pi;
|
||||
tcoord.x = fcenter.x+sin(fan)*bof.x;
|
||||
tcoord.y = fcenter.y+cos(fan)*bof.y;
|
||||
if ( distance(coord,tcoord) < 0.005 ) res.rgb = float3(1,0,0);
|
||||
tcoord.x = fcenter.x+sin(fan+2.0*pi*cstep)*bof.x;
|
||||
tcoord.y = fcenter.y+cos(fan+2.0*pi*cstep)*bof.y;
|
||||
if ( distance(coord,tcoord) < 0.005 ) res.rgb = float3(1,0,0);
|
||||
tcoord.x = fcenter.x+sin(fan+4.0*pi*cstep)*bof.x;
|
||||
tcoord.y = fcenter.y+cos(fan+4.0*pi*cstep)*bof.y;
|
||||
if ( distance(coord,tcoord) < 0.005 ) res.rgb = float3(1,0,0);
|
||||
return res;
|
||||
}
|
||||
technique ReadFocus
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_ReadFocus();
|
||||
ZENABLE = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique WriteFocus
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_WriteFocus();
|
||||
ZENABLE = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcess
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_DoFPrepass();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcess2
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_DoFGather();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcess3
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_DoFPostBlur();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcess4
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_FocusDebug();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
technique PostProcessB <string UIName="Bokeh DOF";>
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_DoFPrepass();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcessB2
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_DoFBorkeh();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcessB3
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_DoFPostBlur();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcessB4
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_FocusDebug();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
129
enbseries/menbdepthoffieldinternals.fx
Normal file
129
enbseries/menbdepthoffieldinternals.fx
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
/*
|
||||
menbdepthoffieldinternals.fx : MariENB dof internal variables.
|
||||
(C)2013-2017 Marisa Kirisame, UnSX Team.
|
||||
Part of MariENB, the personal ENB of Marisa.
|
||||
Released under the GNU GPLv3 (or later).
|
||||
*/
|
||||
/* mathematical constants */
|
||||
static const float pi = 3.1415926535898;
|
||||
/* For basic DOF */
|
||||
static const float2 poisson32[32] =
|
||||
{
|
||||
float2( 0.7284430,-0.1927130),float2( 0.4051600,-0.2312710),
|
||||
float2( 0.9535280, 0.0669683),float2( 0.6544140,-0.4439470),
|
||||
float2( 0.6029910, 0.1058970),float2( 0.2637500,-0.7163810),
|
||||
float2( 0.9105380,-0.3889810),float2( 0.5942730,-0.7400740),
|
||||
float2( 0.8215680, 0.3162520),float2( 0.3577550, 0.4884250),
|
||||
float2( 0.6935990, 0.7070140),float2( 0.0470570, 0.1961800),
|
||||
float2(-0.0977021, 0.6241300),float2( 0.2110300, 0.8778350),
|
||||
float2(-0.3743440, 0.2494580),float2( 0.0144776,-0.0766484),
|
||||
float2(-0.3377660,-0.1255100),float2( 0.3136420, 0.1077710),
|
||||
float2(-0.5204340, 0.8369860),float2(-0.1182680, 0.9801750),
|
||||
float2(-0.6969480,-0.3869330),float2(-0.6156080, 0.0307209),
|
||||
float2(-0.3806790,-0.6055360),float2(-0.1909570,-0.3861330),
|
||||
float2(-0.2449080,-0.8655030),float2( 0.0822108,-0.4975580),
|
||||
float2(-0.5649250, 0.5756740),float2(-0.8741830,-0.1685750),
|
||||
float2( 0.0761715,-0.9631760),float2(-0.9218270, 0.2121210),
|
||||
float2(-0.6378530, 0.3053550),float2(-0.8425180, 0.4753000)
|
||||
};
|
||||
/* standard stuff */
|
||||
float4 ScreenSize;
|
||||
float ENightDayFactor;
|
||||
float EInteriorFactor;
|
||||
float FadeFactor;
|
||||
float4 Timer;
|
||||
float FieldOfView;
|
||||
float4 WeatherAndTime;
|
||||
/* samplers and textures */
|
||||
texture2D texColor;
|
||||
texture2D texDepth;
|
||||
texture2D texNoise3
|
||||
<
|
||||
string ResourceName = "menbnoise2.png";
|
||||
>;
|
||||
texture2D texFocus;
|
||||
texture2D texCurr;
|
||||
texture2D texPrev;
|
||||
sampler2D SamplerColor = sampler_state
|
||||
{
|
||||
Texture = <texColor>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Clamp;
|
||||
AddressV = Clamp;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerDepth = sampler_state
|
||||
{
|
||||
Texture = <texDepth>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Clamp;
|
||||
AddressV = Clamp;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerNoise3 = sampler_state
|
||||
{
|
||||
Texture = <texNoise3>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Wrap;
|
||||
AddressV = Wrap;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerFocus = sampler_state
|
||||
{
|
||||
Texture = <texFocus>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Clamp;
|
||||
AddressV = Clamp;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerCurr = sampler_state
|
||||
{
|
||||
Texture = <texCurr>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Clamp;
|
||||
AddressV = Clamp;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerPrev = sampler_state
|
||||
{
|
||||
Texture = <texPrev>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Clamp;
|
||||
AddressV = Clamp;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
/* whatever */
|
||||
struct VS_OUTPUT_POST
|
||||
{
|
||||
float4 vpos : POSITION;
|
||||
float2 txcoord : TEXCOORD0;
|
||||
};
|
||||
struct VS_INPUT_POST
|
||||
{
|
||||
float3 pos : POSITION;
|
||||
float2 txcoord : TEXCOORD0;
|
||||
};
|
||||
670
enbseries/menbdepthoffieldsettings.fx
Normal file
670
enbseries/menbdepthoffieldsettings.fx
Normal file
|
|
@ -0,0 +1,670 @@
|
|||
/*
|
||||
menbdepthoffieldsettings.fx : MariENB dof variables.
|
||||
(C)2013-2017 Marisa Kirisame, UnSX Team.
|
||||
Part of MariENB, the personal ENB of Marisa.
|
||||
Released under the GNU GPLv3 (or later).
|
||||
*/
|
||||
string str_misc = "Miscellaneous";
|
||||
/* fixed resolution, keeps blur filters at a consistent internal resolution */
|
||||
int fixedx
|
||||
<
|
||||
string UIName = "Fixed Resolution Width";
|
||||
string UIWidget = "Spinner";
|
||||
int UIMin = 0;
|
||||
> = {1920};
|
||||
int fixedy
|
||||
<
|
||||
string UIName = "Fixed Resolution Height";
|
||||
string UIWidget = "Spinner";
|
||||
int UIMin = 0;
|
||||
> = {1080};
|
||||
float cutoff
|
||||
<
|
||||
string UIName = "Depth Cutoff";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1000000.0;
|
||||
> = {999949.0};
|
||||
string str_focus = "Focusing Parameters";
|
||||
/*
|
||||
focus modes:
|
||||
-1 : manual
|
||||
0 : center spot
|
||||
1 : center + triangle
|
||||
2 : 8x8 grid average
|
||||
TODO
|
||||
3 : 8x8 grid average of 8 closest points
|
||||
4 : 8x8 grid average of 8 farthest points
|
||||
*/
|
||||
int focuscircle
|
||||
<
|
||||
string UIName = "Focus Mode";
|
||||
string UIWidget = "Checkbox";
|
||||
int UIMin = -1;
|
||||
int UIMax = 2;
|
||||
> = {1};
|
||||
bool focusdisplay
|
||||
<
|
||||
string UIName = "Display Focus Points";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
float focusmanualvalue
|
||||
<
|
||||
string UIName = "Manual Focus Depth";
|
||||
string UIWidget = "Checkbox";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1000.0;
|
||||
> = {500.0};
|
||||
/* center point of focus */
|
||||
float focuscenter_x
|
||||
<
|
||||
string UIName = "Focus Point Center X";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 100.0;
|
||||
> = {50.0};
|
||||
float focuscenter_y
|
||||
<
|
||||
string UIName = "Focus Point Center Y";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 100.0;
|
||||
> = {50.0};
|
||||
float focuscircleangle
|
||||
<
|
||||
string UIName = "Focus Triangle Angle";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
/* radius of the focus point triangle */
|
||||
float focusradius_n
|
||||
<
|
||||
string UIName = "Focus Triangle Radius Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {20.0};
|
||||
float focusradius_d
|
||||
<
|
||||
string UIName = "Focus Triangle Radius Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {20.0};
|
||||
float focusradius_in
|
||||
<
|
||||
string UIName = "Focus Triangle Radius Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {20.0};
|
||||
float focusradius_id
|
||||
<
|
||||
string UIName = "Focus Triangle Radius Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {20.0};
|
||||
/* mix factor with sample at screen center */
|
||||
float focusmix_n
|
||||
<
|
||||
string UIName = "Focus Triangle Blending Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.5};
|
||||
float focusmix_d
|
||||
<
|
||||
string UIName = "Focus Triangle Blending Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.5};
|
||||
float focusmix_in
|
||||
<
|
||||
string UIName = "Focus Triangle Blending Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.5};
|
||||
float focusmix_id
|
||||
<
|
||||
string UIName = "Focus Triangle Blending Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.5};
|
||||
/* maximum focus depth */
|
||||
float focusmax_n
|
||||
<
|
||||
string UIName = "Focus Maximum Depth Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1000.0};
|
||||
float focusmax_d
|
||||
<
|
||||
string UIName = "Focus Maximum Depth Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1000.0};
|
||||
float focusmax_in
|
||||
<
|
||||
string UIName = "Focus Maximum Depth Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1000.0};
|
||||
float focusmax_id
|
||||
<
|
||||
string UIName = "Focus Maximum Depth Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1000.0};
|
||||
/* dof filter */
|
||||
string str_dof = "Depth Of Field";
|
||||
/* dof multiplier (makes unfocused depths more blurry) */
|
||||
float dofmult_n
|
||||
<
|
||||
string UIName = "DOF Intensity Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {500.0};
|
||||
float dofmult_d
|
||||
<
|
||||
string UIName = "DOF Intensity Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {500.0};
|
||||
float dofmult_in
|
||||
<
|
||||
string UIName = "DOF Intensity Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {500.0};
|
||||
float dofmult_id
|
||||
<
|
||||
string UIName = "DOF Intensity Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {500.0};
|
||||
/* dof power (the higher it is, the wider the focused area gets) */
|
||||
float dofpow_n
|
||||
<
|
||||
string UIName = "DOF Contrast Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {4.0};
|
||||
float dofpow_d
|
||||
<
|
||||
string UIName = "DOF Contrast Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {4.0};
|
||||
float dofpow_in
|
||||
<
|
||||
string UIName = "DOF Contrast Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {4.0};
|
||||
float dofpow_id
|
||||
<
|
||||
string UIName = "DOF Contrast Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {4.0};
|
||||
/* dof bump (negative shift increases the area in complete focus) */
|
||||
float dofbump_n
|
||||
<
|
||||
string UIName = "DOF Shift Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float dofbump_d
|
||||
<
|
||||
string UIName = "DOF Shift Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float dofbump_in
|
||||
<
|
||||
string UIName = "DOF Shift Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float dofbump_id
|
||||
<
|
||||
string UIName = "DOF Shift Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
/* fixed focused depth factors */
|
||||
float doffixedfocusmult_n
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Intensity Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocusmult_d
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Intensity Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocusmult_in
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Intensity Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocusmult_id
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Intensity Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocuspow_n
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Contrast Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocuspow_d
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Contrast Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocuspow_in
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Contrast Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocuspow_id
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Contrast Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocusbump_n
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Shift Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedfocusbump_d
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Shift Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedfocusbump_in
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Shift Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedfocusbump_id
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Shift Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedfocusblend_n
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Blend Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffixedfocusblend_d
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Blend Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffixedfocusblend_in
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Blend Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffixedfocusblend_id
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Blend Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 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 */
|
||||
float doffixedunfocusmult_n
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Intensity Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffixedunfocusmult_d
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Intensity Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffixedunfocusmult_in
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Intensity Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffixedunfocusmult_id
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Intensity Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffixedunfocuspow_n
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Contrast Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffixedunfocuspow_d
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Contrast Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffixedunfocuspow_in
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Contrast Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffixedunfocuspow_id
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Contrast Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffixedunfocusbump_n
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Shift Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedunfocusbump_d
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Shift Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedunfocusbump_in
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Shift Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedunfocusbump_id
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Shift Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedunfocusblend_n
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Blend Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffixedunfocusblend_d
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Blend Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffixedunfocusblend_in
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Blend Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffixedunfocusblend_id
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Blend Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 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 */
|
||||
bool doffixedcut
|
||||
<
|
||||
string UIName = "DOF Fixed Use Cutoff";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {true};
|
||||
/* fixed dof for foggy weathers */
|
||||
bool doffogenable
|
||||
<
|
||||
string UIName = "Enable DOF Fog";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {true};
|
||||
float doffogmult_n
|
||||
<
|
||||
string UIName = "DOF Fog Intensity Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffogmult_d
|
||||
<
|
||||
string UIName = "DOF Fog Intensity Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffogmult_in
|
||||
<
|
||||
string UIName = "DOF Fog Intensity Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffogmult_id
|
||||
<
|
||||
string UIName = "DOF Fog Intensity Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffogpow_n
|
||||
<
|
||||
string UIName = "DOF Fog Contrast Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffogpow_d
|
||||
<
|
||||
string UIName = "DOF Fog Contrast Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffogpow_in
|
||||
<
|
||||
string UIName = "DOF Fog Contrast Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffogpow_id
|
||||
<
|
||||
string UIName = "DOF Fog Contrast Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffogbump_n
|
||||
<
|
||||
string UIName = "DOF Fog Shift Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffogbump_d
|
||||
<
|
||||
string UIName = "DOF Fog Shift Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffogbump_in
|
||||
<
|
||||
string UIName = "DOF Fog Shift Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffogbump_id
|
||||
<
|
||||
string UIName = "DOF Fog Shift Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffogblend_n
|
||||
<
|
||||
string UIName = "DOF Fog Blend Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffogblend_d
|
||||
<
|
||||
string UIName = "DOF Fog Blend Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffogblend_in
|
||||
<
|
||||
string UIName = "DOF Fog Blend Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffogblend_id
|
||||
<
|
||||
string UIName = "DOF Fog Blend Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffogdepth
|
||||
<
|
||||
string UIName = "DOF Fog Depth";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
bool doffixedonly
|
||||
<
|
||||
string UIName = "Use Only Fixed DOF";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
float dofpradius
|
||||
<
|
||||
string UIName = "DOF Gather Blur Radius";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.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
|
||||
<
|
||||
string UIName = "DOF Blur Chromatic Aberration";
|
||||
string UIWidget = "Spinner";
|
||||
> = {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};
|
||||
bool dofrelfov
|
||||
<
|
||||
string UIName = "DOF Relative to FOV";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {true};
|
||||
float fovdefault
|
||||
<
|
||||
string UIName = "Default FOV";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 1.0;
|
||||
float UIMax = 180.0;
|
||||
> = {75.0};
|
||||
float relfovfactor_n
|
||||
<
|
||||
string UIName = "DOF Relative Factor Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {2.0};
|
||||
float relfovfactor_d
|
||||
<
|
||||
string UIName = "DOF Relative Factor Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {2.0};
|
||||
float relfovfactor_in
|
||||
<
|
||||
string UIName = "DOF Relative Factor Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {2.0};
|
||||
float relfovfactor_id
|
||||
<
|
||||
string UIName = "DOF Relative Factor Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {2.0};
|
||||
/* tilting */
|
||||
float doftiltxcenter
|
||||
<
|
||||
string UIName = "Focus Plane Horizontal Tilt Center";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.5};
|
||||
float doftiltycenter
|
||||
<
|
||||
string UIName = "Focus Plane Vertical Tilt Center";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.5};
|
||||
float doftiltx
|
||||
<
|
||||
string UIName = "Focus Plane Horizontal Tilt";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doftilty
|
||||
<
|
||||
string UIName = "Focus Plane Vertical Tilt";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
/* cheap performance option */
|
||||
float dofminblur
|
||||
<
|
||||
string UIName = "DOF Minimum Blur";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
bool dofdebug
|
||||
<
|
||||
string UIName = "Debug Depth";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
bool dfcdebug
|
||||
<
|
||||
string UIName = "Debug Focus";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
|
|
@ -11,33 +11,6 @@ VS_OUTPUT_POST VS_Pass( VS_INPUT_POST IN )
|
|||
OUT.txcoord0.xy = IN.txcoord0.xy;
|
||||
return OUT;
|
||||
}
|
||||
#ifdef FALLOUT
|
||||
float4 _c1 : register(c1);
|
||||
float4 _c2 : register(c2);
|
||||
float4 _c19 : register(c19);
|
||||
float4 _c20 : register(c20);
|
||||
float4 _c22 : register(c22);
|
||||
#define _r1 _c1
|
||||
#define _r2 _c2
|
||||
#define _r3 _c19
|
||||
#define _r4 _c20
|
||||
#define _r5 _c22
|
||||
/*
|
||||
FALLOUT REGISTERS
|
||||
|
||||
r1 (c1): r2 (c2): r3 (c19):
|
||||
x -> adapt max x -> unused x -> vibrance
|
||||
y -> unused y -> unused y -> balancer
|
||||
z -> unused z -> bloom mix z -> multiplier 1
|
||||
w -> unused w -> unused w -> multiplier 2
|
||||
|
||||
r4 (c20): r5 (c22):
|
||||
x -> tint red x -> fade red
|
||||
y -> tint green y -> fade green
|
||||
z -> tint blue z -> fade blue
|
||||
w -> tint value w -> fade value
|
||||
*/
|
||||
#else
|
||||
float4 _c1 : register(c1);
|
||||
float4 _c2 : register(c2);
|
||||
float4 _c3 : register(c3);
|
||||
|
|
@ -63,7 +36,6 @@ float4 _c5 : register(c5);
|
|||
z -> tint blue z -> fade blue
|
||||
w -> tint value w -> fade value
|
||||
*/
|
||||
#endif
|
||||
/* helper functions */
|
||||
/* photometric */
|
||||
#define luminance(x) dot(x,float3(0.2126,0.7152,0.0722))
|
||||
|
|
@ -151,32 +123,6 @@ float3 TonemapHejlDawson( float3 res )
|
|||
float3 x = max(0.0,res-0.004);
|
||||
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 = float3(tod_ind(sfxfogcolor_r),tod_ind(sfxfogcolor_g),
|
||||
tod_ind(sfxfogcolor_b));
|
||||
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 tcol = pow(max(res,0.0),1.0/2.2);
|
||||
|
|
@ -184,8 +130,7 @@ float3 Tonemap( float3 res )
|
|||
res *= tod_ind(tmapexposure);
|
||||
float tblend = tod_ind(tmapblend);
|
||||
float3 mapped;
|
||||
if ( tmapenable == 5 ) mapped = TonemapSFX(res);
|
||||
else if ( tmapenable == 4 ) mapped = TonemapHaarmPeterDuiker(res);
|
||||
if ( tmapenable == 4 ) mapped = TonemapHaarmPeterDuiker(res);
|
||||
else if ( tmapenable == 3 ) mapped = TonemapHejlDawson(res);
|
||||
else if ( tmapenable == 2 ) mapped = TonemapUC2(res);
|
||||
else if ( tmapenable == 1 ) mapped = TonemapReinhard(res);
|
||||
|
|
@ -247,12 +192,8 @@ float3 GradingGame( float3 res )
|
|||
tcol = tintv*(tgray*_r4.rgb-tcol)+tcol;
|
||||
tcol = lerp(res,tcol,vtintblend);
|
||||
/* contrast(?) stuff */
|
||||
#ifdef FALLOUT
|
||||
float oft = _r3.y;
|
||||
#else
|
||||
/* TODO figure the offset thingy for Skyrim someday */
|
||||
float oft = 0.0;
|
||||
#endif
|
||||
tcol = max(0,(tcol*_r3.w-oft)*_r3.z+oft);
|
||||
tcol = lerp(res,tcol,vconblend);
|
||||
return tcol;
|
||||
|
|
@ -448,23 +389,6 @@ float3 GradingLUT( float3 res )
|
|||
float lutblend = tod_ind(lutblend);
|
||||
return lerp(res,tcol,lutblend);
|
||||
}
|
||||
/* classic ENB palette colour grading, seems to kill dark and light values */
|
||||
float3 GradingPal( float3 res )
|
||||
{
|
||||
float4 adapt = tex2D(_s4,0.5);
|
||||
adapt = adapt/(adapt+1.0);
|
||||
float adapts = max(adapt.r,max(adapt.g,adapt.b));
|
||||
float3 palt;
|
||||
float2 coord;
|
||||
coord.y = adapts;
|
||||
coord.x = res.r;
|
||||
palt.r = tex2D(_s7,coord).r;
|
||||
coord.x = res.g;
|
||||
palt.g = tex2D(_s7,coord).g;
|
||||
coord.x = res.b;
|
||||
palt.b = tex2D(_s7,coord).b;
|
||||
return lerp(res,palt,palblend);
|
||||
}
|
||||
/* I think this Technicolor implementation is correct... maybe */
|
||||
float3 Technicolor( float3 res )
|
||||
{
|
||||
|
|
@ -539,13 +463,68 @@ float3 FilmGrain( float3 res, float2 coord )
|
|||
}
|
||||
return lerp(res,nt,ni*0.01);
|
||||
}
|
||||
/* Screen frost distortion */
|
||||
float2 ScreenFrost( float2 coord )
|
||||
{
|
||||
float2 bresl;
|
||||
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
|
||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||
float2 nc = coord*(bresl/FROSTSIZE)*frostsize;
|
||||
float2 ofs = tex2D(SamplerFrost,nc).xy;
|
||||
ofs = (ofs-0.5)*2.0;
|
||||
ofs *= pow(length(ofs),frostpow)*froststrength;
|
||||
if ( !frostalways ) ofs *= max(0.0,tod_ind(frostfactor))
|
||||
*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;
|
||||
}
|
||||
/* MariENB shader */
|
||||
float4 PS_Mari( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
||||
{
|
||||
float2 coord = IN.txcoord0.xy;
|
||||
float4 res = tex2D(_s0,coord);
|
||||
float2 bresl;
|
||||
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
|
||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||
float4 res;
|
||||
float3 bcol;
|
||||
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(tex2D(_s0,coord+ofr).r,
|
||||
tex2D(_s0,coord+ofg).g,
|
||||
tex2D(_s0,coord+ofb).b,1.0);
|
||||
bcol = float3(tex2D(_s3,coord+ofr).r,
|
||||
tex2D(_s3,coord+ofg).g,
|
||||
tex2D(_s3,coord+ofb).b)*EBloomAmount;
|
||||
}
|
||||
else
|
||||
{
|
||||
res = tex2D(_s0,coord+ofs);
|
||||
bcol = tex2D(_s3,coord+ofs).rgb*EBloomAmount;
|
||||
}
|
||||
float2 nc = coord*(bresl/FROSTSIZE)*frostsize;
|
||||
float bmp = pow(max(0,tex2D(SamplerFrost,nc).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;
|
||||
if ( !frostalways ) dist *= max(0.0,tod_ind(frostfactor))
|
||||
*max(0.0,coldfactor-warmfactor);
|
||||
res.rgb *= 1.0+bmp*dist;
|
||||
}
|
||||
else
|
||||
{
|
||||
res = tex2D(_s0,coord);
|
||||
bcol = tex2D(_s3,coord).rgb*EBloomAmount;
|
||||
}
|
||||
res.rgb = pow(max(res.rgb,0.0),2.2);
|
||||
float3 bcol = tex2D(_s3,coord).rgb*EBloomAmount;
|
||||
if ( bloomdebug ) res.rgb *= 0;
|
||||
res.rgb += bcol;
|
||||
if ( aenable ) res.rgb = Adaptation(res.rgb);
|
||||
|
|
@ -564,14 +543,9 @@ float4 PS_Mari( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
|||
if ( gradeenable3 ) res.rgb = GradingHSV(res.rgb);
|
||||
}
|
||||
if ( lutenable ) res.rgb = GradingLUT(res.rgb);
|
||||
if ( palenable ) res.rgb = GradingPal(res.rgb);
|
||||
if ( techenable ) res.rgb = Technicolor(res.rgb);
|
||||
if ( !nbt && ne ) res.rgb = FilmGrain(res.rgb,coord);
|
||||
#ifdef FALLOUT
|
||||
res.rgb = _r5.rgb*_r5.a + res.rgb*(1.0-_r5.a);
|
||||
#else
|
||||
res.rgb = _r5.w*(_r5.rgb-res.rgb)+res.rgb;
|
||||
#endif
|
||||
if ( dodither ) res.rgb = Dither(res.rgb,coord);
|
||||
res.rgb = max(0,res.rgb);
|
||||
res.a = 1.0;
|
||||
|
|
@ -583,11 +557,7 @@ float4 PS_Mari( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
|||
toggling "UseEffect" switches between each variation? Wat?
|
||||
*/
|
||||
#ifndef ENB_FLIPTECHNIQUE
|
||||
#ifdef FALLOUT
|
||||
technique Shader_C1DAE3F7
|
||||
#else
|
||||
technique Shader_D6EC7DD1
|
||||
#endif
|
||||
#else
|
||||
technique Shader_ORIGINALPOSTPROCESS
|
||||
#endif
|
||||
|
|
@ -608,61 +578,15 @@ technique Shader_ORIGINALPOSTPROCESS
|
|||
#ifndef ENB_FLIPTECHNIQUE
|
||||
technique Shader_ORIGINALPOSTPROCESS
|
||||
#else
|
||||
#ifdef FALLOUT
|
||||
technique Shader_C1DAE3F7
|
||||
#else
|
||||
technique Shader_D6EC7DD1
|
||||
#endif
|
||||
#endif
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
#ifdef FALLOUT
|
||||
VertexShader = asm
|
||||
{
|
||||
vs_1_1
|
||||
def c3,2,-2,0,0
|
||||
dcl_position v0
|
||||
dcl_texcoord v1
|
||||
mov r0.xy,c0
|
||||
mad oPos.xy,r0,-c3,v0
|
||||
add oT0.xy,v1,c1
|
||||
add oT1.xy,v1,c2
|
||||
mov oPos.zw,v0
|
||||
};
|
||||
#else
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
#endif
|
||||
/* >inline assembly */
|
||||
PixelShader = asm
|
||||
{
|
||||
#ifdef FALLOUT
|
||||
ps_2_x
|
||||
def c0,0.5,0,0,0
|
||||
def c3,0.298999995,0.587000012,0.114,0
|
||||
dcl t0.xy
|
||||
dcl t1.xy
|
||||
dcl_2d s0
|
||||
dcl_2d s1
|
||||
texld r0,t1,s1
|
||||
texld r1,t0,s0
|
||||
max r0.w,r1.w,c1.x
|
||||
rcp r0.w,r0.w
|
||||
mul r1.w,r0.w,c0.x
|
||||
mul r0.w,r0.w,c1.x
|
||||
mul r1.xyz,r1,r1.w
|
||||
max r2.xyz,r1,c0.y
|
||||
mad r0.xyz,r0.w,r0,r2
|
||||
dp3 r0.w,r0,c3
|
||||
lrp r1.xyz,c19.x,r0,r0.w
|
||||
mad r0.xyz,r0.w,c20,-r1
|
||||
mad r0.xyz,c20.w,r0,r1
|
||||
mad r0.xyz,c19.w,r0,-c19.y
|
||||
mad r0.xyz,c19.z,r0,c19.y
|
||||
lrp r1.xyz,c22.w,c22,r0
|
||||
mov r1.w,c2.z
|
||||
mov oC0,r1
|
||||
#else
|
||||
ps_3_0
|
||||
def c6,0,0,0,0
|
||||
def c7,0.212500006,0.715399981,0.0720999986,1
|
||||
|
|
@ -701,7 +625,6 @@ technique Shader_D6EC7DD1
|
|||
mad r0,c3.z,r1,r0.y
|
||||
add r1,-r0,c5
|
||||
mad oC0,c5.w,r1,r0
|
||||
#endif
|
||||
};
|
||||
ColorWriteEnable = ALPHA|RED|GREEN|BLUE;
|
||||
ZEnable = FALSE;
|
||||
|
|
|
|||
|
|
@ -103,6 +103,14 @@ texture2D texTonemap
|
|||
<
|
||||
string ResourceName = "menbfilmlut.png";
|
||||
>;
|
||||
texture2D texFrost
|
||||
<
|
||||
#ifdef FROST_DDS
|
||||
string ResourceName = "menbfrost.dds";
|
||||
#else
|
||||
string ResourceName = "menbfrost.png";
|
||||
#endif
|
||||
>;
|
||||
sampler2D _s0 = sampler_state
|
||||
{
|
||||
Texture = <texs0>;
|
||||
|
|
@ -274,6 +282,18 @@ sampler2D SamplerTonemap = sampler_state
|
|||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerFrost = sampler_state
|
||||
{
|
||||
Texture = <texFrost>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Wrap;
|
||||
AddressV = Wrap;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
/* whatever */
|
||||
struct VS_OUTPUT_POST
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,6 +4,103 @@
|
|||
Part of MariENB, the personal ENB of Marisa.
|
||||
Released under the GNU GPLv3 (or later).
|
||||
*/
|
||||
string str_misc = "Miscellaneous";
|
||||
/* fixed resolution, keeps blur filters at a consistent internal resolution */
|
||||
int fixedx
|
||||
<
|
||||
string UIName = "Fixed Resolution Width";
|
||||
string UIWidget = "Spinner";
|
||||
int UIMin = 0;
|
||||
> = {1920};
|
||||
int fixedy
|
||||
<
|
||||
string UIName = "Fixed Resolution Height";
|
||||
string UIWidget = "Spinner";
|
||||
int UIMin = 0;
|
||||
> = {1080};
|
||||
string str_dist = "Frost Overlay";
|
||||
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_n
|
||||
<
|
||||
string UIName = "Frost Factor Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1.0};
|
||||
float frostfactor_d
|
||||
<
|
||||
string UIName = "Frost Factor Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1.0};
|
||||
float frostfactor_in
|
||||
<
|
||||
string UIName = "Frost Factor Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1.0};
|
||||
float frostfactor_id
|
||||
<
|
||||
string UIName = "Frost Factor Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1.0};
|
||||
bool frostalways
|
||||
<
|
||||
string UIName = "Frost Always Enable";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
/* film grain */
|
||||
string str_noise = "Film Grain";
|
||||
bool ne
|
||||
|
|
@ -177,14 +274,13 @@ string str_tonemap = "Tone Mapping";
|
|||
2 : Uncharted 2
|
||||
3 : Hejl Dawson
|
||||
4 : Haarm-Peter Duiker
|
||||
5 : SweetFX
|
||||
*/
|
||||
int tmapenable
|
||||
<
|
||||
string UIName = "Tonemapping Method";
|
||||
string UIWidget = "Spinner";
|
||||
int UIMin = -1;
|
||||
int UIMax = 5;
|
||||
int UIMax = 4;
|
||||
> = {2};
|
||||
float tmapexposure_n
|
||||
<
|
||||
|
|
@ -378,230 +474,6 @@ float unW_id
|
|||
string UIName = "Uncharted2 Linear White Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {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_in
|
||||
<
|
||||
string UIName = "SweetFX Gamma Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 2.0;
|
||||
> = {1.0};
|
||||
float sfxgamma_id
|
||||
<
|
||||
string UIName = "SweetFX Gamma Interior Day";
|
||||
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_in
|
||||
<
|
||||
string UIName = "SweetFX Exposure Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = -1.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxexposure_id
|
||||
<
|
||||
string UIName = "SweetFX Exposure Interior Day";
|
||||
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_in
|
||||
<
|
||||
string UIName = "SweetFX Saturation Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = -1.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxsaturation_id
|
||||
<
|
||||
string UIName = "SweetFX Saturation Interior Day";
|
||||
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_in
|
||||
<
|
||||
string UIName = "SweetFX Bleach Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxbleach_id
|
||||
<
|
||||
string UIName = "SweetFX Bleach Interior Day";
|
||||
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_in
|
||||
<
|
||||
string UIName = "SweetFX Defog Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxdefog_id
|
||||
<
|
||||
string UIName = "SweetFX Defog Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxfogcolor_r_n
|
||||
<
|
||||
string UIName = "SweetFX Defog Color Red Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxfogcolor_g_n
|
||||
<
|
||||
string UIName = "SweetFX Defog Color Green Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxfogcolor_b_n
|
||||
<
|
||||
string UIName = "SweetFX Defog Color Blue Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {1.0};
|
||||
float sfxfogcolor_r_d
|
||||
<
|
||||
string UIName = "SweetFX Defog Color Red Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxfogcolor_g_d
|
||||
<
|
||||
string UIName = "SweetFX Defog Color Green Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxfogcolor_b_d
|
||||
<
|
||||
string UIName = "SweetFX Defog Color Blue Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {1.0};
|
||||
float sfxfogcolor_r_in
|
||||
<
|
||||
string UIName = "SweetFX Defog Color Red Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxfogcolor_g_in
|
||||
<
|
||||
string UIName = "SweetFX Defog Color Green Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxfogcolor_b_in
|
||||
<
|
||||
string UIName = "SweetFX Defog Color Blue Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {1.0};
|
||||
float sfxfogcolor_r_id
|
||||
<
|
||||
string UIName = "SweetFX Defog Color Red Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxfogcolor_g_id
|
||||
<
|
||||
string UIName = "SweetFX Defog Color Green Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
float sfxfogcolor_b_id
|
||||
<
|
||||
string UIName = "SweetFX Defog Color Blue Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {1.0};
|
||||
/* Color grading */
|
||||
string str_grade = "Color Grading Suite";
|
||||
bool gradeenable1
|
||||
|
|
@ -1035,20 +907,6 @@ int clut_id
|
|||
int UIMax = 63;
|
||||
> = {1};
|
||||
#endif
|
||||
/* not using ENB's own variables, sorry */
|
||||
string str_enbpal = "ENB Palette";
|
||||
bool palenable
|
||||
<
|
||||
string UIName = "Enable ENB Palette";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
float palblend
|
||||
<
|
||||
string UIName = "Palette Blend";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {1.0};
|
||||
/* technicolor shader */
|
||||
string str_tech = "Technicolor";
|
||||
bool techenable
|
||||
|
|
|
|||
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 |
|
|
@ -6,8 +6,6 @@
|
|||
*/
|
||||
/* do not touch this! */
|
||||
#define E_SHADER_3_0
|
||||
/* are we running on fallout 3 / new vegas or on skyrim? */
|
||||
//#define FALLOUT
|
||||
/* time of day and interior interpolation */
|
||||
#define tod_ind(x) lerp(lerp(x##_n,x##_d,ENightDayFactor),\
|
||||
lerp(x##_in,x##_id,ENightDayFactor),EInteriorFactor)
|
||||
|
|
|
|||
|
|
@ -228,20 +228,6 @@ float4 PS_EdgePlusSSAOPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
|||
res.a = saturate(1.0-(uocc*ssaoblend));
|
||||
return res;
|
||||
}
|
||||
/*
|
||||
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*uwm1+Timer.x*uwf1*100.0))*uws1;
|
||||
ofs.y = siny+sin(pi*2.0*(coord.x*uwm2+Timer.x*uwf2*100.0))*uws2;
|
||||
ofs.x = siny+sin(pi*2.0*(coord.x*uwm3+Timer.x*uwf3*100.0))*uws3;
|
||||
ofs -= (coord-0.5)*2.0*uwz;
|
||||
return coord+ofs*0.01;
|
||||
}
|
||||
/* Distant hot air refraction. Not very realistic, but does the job. */
|
||||
float2 DistantHeat( float2 coord )
|
||||
{
|
||||
|
|
@ -259,10 +245,7 @@ float2 DistantHeat( float2 coord )
|
|||
ofs = (ofs-0.5)*2.0;
|
||||
ofs *= pow(length(ofs),heatpow);
|
||||
if ( !heatalways ) ofs *= max(tod_ind(heatfactor),0.0)
|
||||
#ifndef FALLOUT
|
||||
*max(0.0,warmfactor-coldfactor)
|
||||
#endif
|
||||
;
|
||||
*max(0.0,warmfactor-coldfactor);
|
||||
odep = tex2D(SamplerDepth,coord+ofs*heatstrength*distfade*0.01).x;
|
||||
float odistfade = clamp(pow(max(0,odep),heatfadepow)*heatfademul
|
||||
+heatfadebump,0.0,1.0);
|
||||
|
|
@ -277,7 +260,6 @@ float4 PS_Distortion( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
|||
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
|
||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||
float2 ofs = coord;
|
||||
if ( waterenable ) ofs = UnderwaterDistort(ofs);
|
||||
if ( heatenable ) ofs = DistantHeat(ofs);
|
||||
ofs -= coord;
|
||||
float4 res;
|
||||
|
|
@ -352,386 +334,6 @@ float4 PS_SSAOBlurV( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
|||
res *= res.a;
|
||||
return res;
|
||||
}
|
||||
/* Focus */
|
||||
float4 PS_ReadFocus( VS_OUTPUT_POST IN ) : COLOR
|
||||
{
|
||||
if ( dofdisable ) return 0.0;
|
||||
if ( focuscircle < 0 ) return focusmanualvalue*0.001;
|
||||
float focusmax = tod_ind(focusmax);
|
||||
float2 fcenter = float2(focuscenter_x*0.01,focuscenter_y*0.01);
|
||||
float cfocus = min(tex2D(SamplerDepth,fcenter).x,focusmax*0.001);
|
||||
if ( focuscircle == 0 ) return cfocus;
|
||||
if ( focuscircle == 2 )
|
||||
{
|
||||
int i, j;
|
||||
float mfocus = 0.0;
|
||||
float2 px;
|
||||
[unroll] for( j=0; j<8; j++ ) [unroll] for( i=0; i<8; i++ )
|
||||
{
|
||||
px = float2((i+0.5)/8.0,(j+0.5)/8.0);
|
||||
mfocus += min(tex2D(SamplerDepth,px).x,focusmax*0.001);
|
||||
}
|
||||
return mfocus/64.0;
|
||||
}
|
||||
/* using polygons inscribed into a circle, in this case a triangle */
|
||||
float focusradius = tod_ind(focusradius);
|
||||
float focusmix = tod_ind(focusmix);
|
||||
float cstep = (1.0/3.0);
|
||||
float mfocus;
|
||||
float2 coord;
|
||||
float2 bof = float2(1.0,1.0/ScreenSize.w)*focusradius*0.01;
|
||||
float fan = focuscircleangle*2.0*pi;
|
||||
coord.x = fcenter.x+sin(fan)*bof.x;
|
||||
coord.y = fcenter.y+cos(fan)*bof.y;
|
||||
mfocus = cstep*min(tex2D(SamplerDepth,coord).x,focusmax*0.001);
|
||||
coord.x = fcenter.x+sin(fan+2.0*pi*cstep)*bof.x;
|
||||
coord.y = fcenter.y+cos(fan+2.0*pi*cstep)*bof.y;
|
||||
mfocus += cstep*min(tex2D(SamplerDepth,coord).x,focusmax*0.001);
|
||||
coord.x = fcenter.x+sin(fan+4.0*pi*cstep)*bof.x;
|
||||
coord.y = fcenter.y+cos(fan+4.0*pi*cstep)*bof.y;
|
||||
mfocus += cstep*min(tex2D(SamplerDepth,coord).x,focusmax*0.001);
|
||||
cfocus = (1.0-focusmix)*cfocus+focusmix*mfocus;
|
||||
return cfocus;
|
||||
}
|
||||
float4 PS_WriteFocus( VS_OUTPUT_POST IN ) : COLOR
|
||||
{
|
||||
if ( dofdisable ) return 0.0;
|
||||
return max(lerp(tex2D(SamplerPrev,0.5).x,tex2D(SamplerCurr,0.5).x,
|
||||
saturate(FadeFactor)),0.0);
|
||||
}
|
||||
/* Depth of Field */
|
||||
float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
|
||||
{
|
||||
float2 coord = IN.txcoord.xy;
|
||||
if ( dofdisable ) return tex2D(SamplerColor,coord);
|
||||
float dofpow = tod_ind(dofpow);
|
||||
float dofmult = tod_ind(dofmult);
|
||||
float dofbump = tod_ind(dofbump);
|
||||
float doffixedfocuspow = tod_ind(doffixedfocuspow);
|
||||
float doffixedfocusmult = tod_ind(doffixedfocusmult);
|
||||
float doffixedfocusbump = tod_ind(doffixedfocusbump);
|
||||
float doffixedfocusblend = tod_ind(doffixedunfocusblend);
|
||||
float doffixedunfocuspow = tod_ind(doffixedunfocuspow);
|
||||
float doffixedunfocusmult = tod_ind(doffixedunfocusmult);
|
||||
float doffixedunfocusbump = tod_ind(doffixedunfocusbump);
|
||||
float doffixedunfocusblend = tod_ind(doffixedunfocusblend);
|
||||
#ifndef FALLOUT
|
||||
float doffogpow = tod_ind(doffogpow);
|
||||
float doffogmult = tod_ind(doffogmult);
|
||||
float doffogbump = tod_ind(doffogbump);
|
||||
float doffogblend = tod_ind(doffogblend);
|
||||
#endif
|
||||
float dep = tex2D(SamplerDepth,coord).x;
|
||||
float foc = tex2D(SamplerFocus,coord).x;
|
||||
/* cheap tilt */
|
||||
foc = foc+0.01*doftiltx*(doftiltxcenter-coord.x)
|
||||
+0.01*doftilty*(doftiltycenter-coord.y);
|
||||
float dff = abs(dep-doffixedfocusdepth);
|
||||
dff = clamp(pow(dff,doffixedfocuspow)*doffixedfocusmult
|
||||
+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;
|
||||
/*
|
||||
Change power of dof based on field of view. Works only in Skyrim.
|
||||
The FieldOfView variable seems to hold bogus values in Fallout
|
||||
completely unrelated to actual FOV (yes, I checked if it's in
|
||||
radians, and no, it isn't). The value appears to be 1.134452. Who
|
||||
could I blame for this mess? Boris? Bethesda? Hell if I know.
|
||||
*/
|
||||
#ifndef FALLOUT
|
||||
if ( dofrelfov )
|
||||
{
|
||||
float relfovfactor = tod_ind(relfovfactor);
|
||||
float relfov = (FieldOfView-fovdefault)/fovdefault;
|
||||
dofpow = max(0,dofpow+relfov*relfovfactor);
|
||||
}
|
||||
#endif
|
||||
float dfc = abs(dep-foc);
|
||||
dfc = clamp(pow(dfc,dofpow)*dofmult+dofbump,0.0,1.0);
|
||||
if ( doffixedonly ) dfc *= 0;
|
||||
dfc += lerp(0.0,dfu,doffixedunfocusblend);
|
||||
#ifndef FALLOUT
|
||||
if ( doffogenable ) dfc += fogfactor*lerp(0.0,dfog,doffogblend);
|
||||
#endif
|
||||
dfc *= lerp(1.0,dff,doffixedfocusblend);
|
||||
dfc = saturate(dfc);
|
||||
float4 res = tex2D(SamplerColor,coord);
|
||||
res.a = dfc;
|
||||
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,
|
||||
out float4 deps, out float4 dfcs )
|
||||
{
|
||||
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;
|
||||
deps.r = tex2D(SamplerDepth,coord+gcircle(ang)*bsz*dofpcha*0.1).x;
|
||||
dfcs.r = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).a;
|
||||
ang += cstep;
|
||||
res.g = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).g;
|
||||
deps.g = tex2D(SamplerDepth,coord+gcircle(ang)*bsz*dofpcha*0.1).x;
|
||||
dfcs.g = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).a;
|
||||
ang += cstep;
|
||||
res.b = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).b;
|
||||
deps.b = tex2D(SamplerDepth,coord+gcircle(ang)*bsz*dofpcha*0.1).x;
|
||||
dfcs.b = tex2D(SamplerColor,coord+gcircle(ang)*bsz*dofpcha*0.1).a;
|
||||
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;
|
||||
deps.a = tex2D(SamplerDepth,coord).x;
|
||||
dfcs.a = res.a;
|
||||
return res;
|
||||
}
|
||||
/* gather blur pass */
|
||||
float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
|
||||
{
|
||||
float2 coord = IN.txcoord.xy;
|
||||
if ( dofdisable ) return tex2D(SamplerColor,coord);
|
||||
float dfc = tex2D(SamplerColor,coord).a;
|
||||
if ( dofdebug ) return tex2D(SamplerDepth,coord).x;
|
||||
if ( dfcdebug ) return dfc;
|
||||
float2 bresl;
|
||||
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
|
||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||
float2 bof = 1.0/bresl;
|
||||
/*
|
||||
Skip blurring areas that are perfectly in focus. The performance
|
||||
gain is negligible in most cases, though.
|
||||
*/
|
||||
if ( dfc <= dofminblur ) return tex2D(SamplerColor,coord);
|
||||
float4 res = float4(0,0,0,0);
|
||||
float dep = tex2D(SamplerDepth,coord).x;
|
||||
float2 bsz = bof*dofpradius*dfc;
|
||||
float4 sc, ds, sd, sw, tw = float4(0,0,0,0);
|
||||
[unroll] for ( int i=0; i<32; i++ )
|
||||
{
|
||||
sc = dofsample(coord+poisson32[i]*bsz,bsz,dfc,dofhilite,ds,sd);
|
||||
sw.r = (ds.r>dep)?1.0:sd.r;
|
||||
sw.g = (ds.g>dep)?1.0:sd.g;
|
||||
sw.b = (ds.b>dep)?1.0:sd.b;
|
||||
sw.a = (ds.a>dep)?1.0:sd.a;
|
||||
tw += sw;
|
||||
res += sc*sw;
|
||||
}
|
||||
res /= tw;
|
||||
res.a = dfc;
|
||||
return res;
|
||||
}
|
||||
/* "bokeh" blur pass */
|
||||
float4 PS_DoFBorkeh( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
|
||||
{
|
||||
float2 coord = IN.txcoord.xy;
|
||||
if ( dofdisable ) return tex2D(SamplerColor,coord);
|
||||
float dfc = tex2D(SamplerColor,coord).a;
|
||||
if ( dofdebug ) return tex2D(SamplerDepth,coord).x;
|
||||
if ( dfcdebug ) return dfc;
|
||||
float2 bresl;
|
||||
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
|
||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||
float2 bof = 1.0/bresl;
|
||||
float4 res = tex2D(SamplerColor,coord);
|
||||
res.a = 0.0;
|
||||
/*
|
||||
Skip blurring areas that are perfectly in focus. The performance
|
||||
gain is negligible in most cases, though.
|
||||
*/
|
||||
if ( dfc <= dofminblur ) return res;
|
||||
float dep = tex2D(SamplerDepth,coord).x;
|
||||
float2 sf = bof+(tex2D(SamplerNoise3,coord*(bresl/256.0)).xy*2.0-1.0)
|
||||
*dofbnoise*0.001;
|
||||
float2 sr = sf*dofbradius*dfc;
|
||||
int rsamples;
|
||||
float bstep, bw;
|
||||
float4 sc, ds, sd, sw, tw = float4(1,1,1,1);
|
||||
float2 rcoord;
|
||||
#define dofbrings 7
|
||||
#define dofbsamples 3
|
||||
[unroll] for ( int i=1; i<=dofbrings; i++ )
|
||||
{
|
||||
rsamples = i*dofbsamples;
|
||||
[unroll] for ( int j=0; j<rsamples; j++ )
|
||||
{
|
||||
bstep = pi*2.0/(float)rsamples;
|
||||
rcoord = gcircle(j*bstep)*i;
|
||||
bw = lerp(1.0,(float)i/(float)dofbrings,dofbbias);
|
||||
sc = dofsample(coord+rcoord*sr,sr*i,dfc,dofhilite,ds,sd);
|
||||
sw.r = (ds.r>dep)?1.0:sd.r;
|
||||
sw.g = (ds.g>dep)?1.0:sd.g;
|
||||
sw.b = (ds.b>dep)?1.0:sd.b;
|
||||
sw.a = (ds.a>dep)?1.0:sd.a;
|
||||
res += sc*sw*bw;
|
||||
tw += sw*bw;
|
||||
}
|
||||
}
|
||||
res /= tw;
|
||||
res.a = dfc;
|
||||
return res;
|
||||
}
|
||||
float4 PS_DoFPostBlur( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
|
||||
{
|
||||
float2 coord = IN.txcoord.xy;
|
||||
if ( dofdisable ) return tex2D(SamplerColor,coord);
|
||||
float dfc = tex2D(SamplerColor,coord).a;
|
||||
if ( dofdebug ) return tex2D(SamplerDepth,coord).x;
|
||||
if ( dfcdebug ) return dfc;
|
||||
float2 bresl;
|
||||
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
|
||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||
float2 bof = (1.0/bresl)*dofpbradius;
|
||||
float2 ofs[16] =
|
||||
{
|
||||
float2(1.0,1.0), float2(-1.0,-1.0),
|
||||
float2(-1.0,1.0), float2(1.0,-1.0),
|
||||
|
||||
float2(1.0,0.0), float2(-1.0,0.0),
|
||||
float2(0.0,1.0), float2(0.0,-1.0),
|
||||
|
||||
float2(1.41,0.0), float2(-1.41,0.0),
|
||||
float2(0.0,1.41), float2(0.0,-1.41),
|
||||
|
||||
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);
|
||||
if ( !dofpostblur ) return float4(res.rgb,1.0);
|
||||
int i;
|
||||
[unroll] for ( i=0; i<16; i++ )
|
||||
res += tex2D(SamplerColor,coord+ofs[i]*bof*dfc);
|
||||
res /= 17.0;
|
||||
res.a = 1.0;
|
||||
return res;
|
||||
}
|
||||
/* Screen frost shader. Not very realistic either, but looks fine too. */
|
||||
float2 ScreenFrost( float2 coord )
|
||||
{
|
||||
float2 bresl;
|
||||
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
|
||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||
float2 nc = coord*(bresl/FROSTSIZE)*frostsize;
|
||||
float2 ofs = tex2D(SamplerFrostBump,nc).xy;
|
||||
ofs = (ofs-0.5)*2.0;
|
||||
ofs *= pow(length(ofs),frostpow)*froststrength;
|
||||
if ( !frostalways ) ofs *= max(0.0,tod_ind(frostfactor))
|
||||
#ifndef FALLOUT
|
||||
*max(0.0,coldfactor-warmfactor)
|
||||
#endif
|
||||
;
|
||||
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 */
|
||||
float4 PS_FrostPass( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
|
||||
{
|
||||
float2 coord = IN.txcoord.xy;
|
||||
float2 bresl;
|
||||
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
|
||||
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
|
||||
float4 res;
|
||||
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(tex2D(SamplerColor,coord+ofr).r,
|
||||
tex2D(SamplerColor,coord+ofg).g,
|
||||
tex2D(SamplerColor,coord+ofb).b,1.0);
|
||||
}
|
||||
else res = tex2D(SamplerColor,coord+ofs);
|
||||
float2 nc = coord*(bresl/FROSTSIZE)*frostsize;
|
||||
float bmp = pow(max(0,tex2D(SamplerFrost,nc).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;
|
||||
if ( !frostalways ) dist *= max(0.0,tod_ind(frostfactor))
|
||||
#ifndef FALLOUT
|
||||
*max(0.0,coldfactor-warmfactor)
|
||||
#endif
|
||||
;
|
||||
res.rgb *= 1.0+bmp*dist;
|
||||
}
|
||||
else res = tex2D(SamplerColor,coord);
|
||||
if ( !focusdisplay || (focuscircle < 0) ) return res;
|
||||
if ( focuscircle == 2 )
|
||||
{
|
||||
int i, j;
|
||||
float2 px;
|
||||
[unroll] for( j=0; j<8; j++ ) [unroll] for( i=0; i<8; i++ )
|
||||
{
|
||||
px = float2((i+0.5)/8.0,(j+0.5)/8.0);
|
||||
if ( distance(coord,px) < 0.005 )
|
||||
res.rgb = float3(1,0,0);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
float2 fcenter = float2(focuscenter_x*0.01,focuscenter_y*0.01);
|
||||
if ( distance(coord,fcenter) < 0.005 ) res.rgb = float3(1,0,0);
|
||||
if ( focuscircle == 0 ) return res;
|
||||
float cstep = (1.0/3.0);
|
||||
float2 tcoord;
|
||||
float focusradius = tod_ind(focusradius);
|
||||
float2 bof = float2(1.0,1.0/ScreenSize.w)*focusradius*0.01;
|
||||
float fan = focuscircleangle*2.0*pi;
|
||||
tcoord.x = fcenter.x+sin(fan)*bof.x;
|
||||
tcoord.y = fcenter.y+cos(fan)*bof.y;
|
||||
if ( distance(coord,tcoord) < 0.005 ) res.rgb = float3(1,0,0);
|
||||
tcoord.x = fcenter.x+sin(fan+2.0*pi*cstep)*bof.x;
|
||||
tcoord.y = fcenter.y+cos(fan+2.0*pi*cstep)*bof.y;
|
||||
if ( distance(coord,tcoord) < 0.005 ) res.rgb = float3(1,0,0);
|
||||
tcoord.x = fcenter.x+sin(fan+4.0*pi*cstep)*bof.x;
|
||||
tcoord.y = fcenter.y+cos(fan+4.0*pi*cstep)*bof.y;
|
||||
if ( distance(coord,tcoord) < 0.005 ) res.rgb = float3(1,0,0);
|
||||
return res;
|
||||
}
|
||||
technique ReadFocus
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_ReadFocus();
|
||||
ZENABLE = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique WriteFocus
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_WriteFocus();
|
||||
ZENABLE = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcess
|
||||
{
|
||||
pass p0
|
||||
|
|
@ -800,208 +402,3 @@ technique PostProcess4
|
|||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcess5
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_DoFPrepass();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcess6
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_DoFGather();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcess7
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_DoFPostBlur();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcess8
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_FrostPass();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
technique PostProcessB <string UIName="Bokeh DOF";>
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_EdgePlusSSAOPrepass();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcessB2
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_Distortion();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcessB3
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_SSAOBlurH();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcessB4
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_SSAOBlurV();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcessB5
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_DoFPrepass();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcessB6
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_DoFBorkeh();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcessB7
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_DoFPostBlur();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
technique PostProcessB8
|
||||
{
|
||||
pass p0
|
||||
{
|
||||
VertexShader = compile vs_3_0 VS_Pass();
|
||||
PixelShader = compile ps_3_0 PS_FrostPass();
|
||||
DitherEnable = FALSE;
|
||||
ZEnable = FALSE;
|
||||
CullMode = NONE;
|
||||
ALPHATESTENABLE = FALSE;
|
||||
SEPARATEALPHABLENDENABLE = FALSE;
|
||||
AlphaBlendEnable = FALSE;
|
||||
StencilEnable = FALSE;
|
||||
FogEnable = FALSE;
|
||||
SRGBWRITEENABLE = FALSE;
|
||||
}
|
||||
}
|
||||
|
|
@ -45,33 +45,11 @@ static const float3 ssao_samples[16] =
|
|||
float3( 0.0072,-0.3534, 0.4035),float3(-0.0024,-0.2385, 0.6260),
|
||||
float3(-0.1940, 0.5722,-0.5602),float3(-0.0910,-0.7548,-0.6497)
|
||||
};
|
||||
/* For high quality DOF */
|
||||
static const float2 poisson32[32] =
|
||||
{
|
||||
float2( 0.7284430,-0.1927130),float2( 0.4051600,-0.2312710),
|
||||
float2( 0.9535280, 0.0669683),float2( 0.6544140,-0.4439470),
|
||||
float2( 0.6029910, 0.1058970),float2( 0.2637500,-0.7163810),
|
||||
float2( 0.9105380,-0.3889810),float2( 0.5942730,-0.7400740),
|
||||
float2( 0.8215680, 0.3162520),float2( 0.3577550, 0.4884250),
|
||||
float2( 0.6935990, 0.7070140),float2( 0.0470570, 0.1961800),
|
||||
float2(-0.0977021, 0.6241300),float2( 0.2110300, 0.8778350),
|
||||
float2(-0.3743440, 0.2494580),float2( 0.0144776,-0.0766484),
|
||||
float2(-0.3377660,-0.1255100),float2( 0.3136420, 0.1077710),
|
||||
float2(-0.5204340, 0.8369860),float2(-0.1182680, 0.9801750),
|
||||
float2(-0.6969480,-0.3869330),float2(-0.6156080, 0.0307209),
|
||||
float2(-0.3806790,-0.6055360),float2(-0.1909570,-0.3861330),
|
||||
float2(-0.2449080,-0.8655030),float2( 0.0822108,-0.4975580),
|
||||
float2(-0.5649250, 0.5756740),float2(-0.8741830,-0.1685750),
|
||||
float2( 0.0761715,-0.9631760),float2(-0.9218270, 0.2121210),
|
||||
float2(-0.6378530, 0.3053550),float2(-0.8425180, 0.4753000)
|
||||
};
|
||||
/* standard stuff */
|
||||
float4 ScreenSize;
|
||||
float ENightDayFactor;
|
||||
float EInteriorFactor;
|
||||
float FadeFactor;
|
||||
float4 Timer;
|
||||
float FieldOfView;
|
||||
float4 WeatherAndTime;
|
||||
/* this still doesn't do anything */
|
||||
extern float fWaterLevel;
|
||||
|
|
@ -90,25 +68,6 @@ texture2D texHeat
|
|||
string ResourceName = "menbheat.png";
|
||||
#endif
|
||||
>;
|
||||
texture2D texFrost
|
||||
<
|
||||
#ifdef FROST_DDS
|
||||
string ResourceName = "menbfrost.dds";
|
||||
#else
|
||||
string ResourceName = "menbfrost.png";
|
||||
#endif
|
||||
>;
|
||||
texture2D texFrostBump
|
||||
<
|
||||
#ifdef FROSTBUMP_DDS
|
||||
string ResourceName = "menbfrostbump.dds";
|
||||
#else
|
||||
string ResourceName = "menbfrostbump.png";
|
||||
#endif
|
||||
>;
|
||||
texture2D texFocus;
|
||||
texture2D texCurr;
|
||||
texture2D texPrev;
|
||||
sampler2D SamplerColor = sampler_state
|
||||
{
|
||||
Texture = <texColor>;
|
||||
|
|
@ -157,66 +116,6 @@ sampler2D SamplerHeat = sampler_state
|
|||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerFrost = sampler_state
|
||||
{
|
||||
Texture = <texFrost>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Wrap;
|
||||
AddressV = Wrap;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerFrostBump = sampler_state
|
||||
{
|
||||
Texture = <texFrostBump>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Wrap;
|
||||
AddressV = Wrap;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerFocus = sampler_state
|
||||
{
|
||||
Texture = <texFocus>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Clamp;
|
||||
AddressV = Clamp;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerCurr = sampler_state
|
||||
{
|
||||
Texture = <texCurr>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Clamp;
|
||||
AddressV = Clamp;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
sampler2D SamplerPrev = sampler_state
|
||||
{
|
||||
Texture = <texPrev>;
|
||||
MinFilter = LINEAR;
|
||||
MagFilter = LINEAR;
|
||||
MipFilter = NONE;
|
||||
AddressU = Clamp;
|
||||
AddressV = Clamp;
|
||||
SRGBTexture = FALSE;
|
||||
MaxMipLevel = 0;
|
||||
MipMapLodBias = 0;
|
||||
};
|
||||
/* whatever */
|
||||
struct VS_OUTPUT_POST
|
||||
{
|
||||
|
|
|
|||
|
|
@ -37,82 +37,12 @@ float zFar
|
|||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {3098.0};
|
||||
string str_dist = "Distortion Filters";
|
||||
string str_dist = "Heat Distortion";
|
||||
float distcha
|
||||
<
|
||||
string UIName = "Distortion Chromatic Aberration";
|
||||
string UIWidget = "Spinner";
|
||||
> = {10.0};
|
||||
bool waterenable
|
||||
<
|
||||
string UIName = "Enable Underwater";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
float uwm1
|
||||
<
|
||||
string UIName = "Underwater Frequency 1";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.4};
|
||||
float uwm2
|
||||
<
|
||||
string UIName = "Underwater Frequency 2";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.6};
|
||||
float uwm3
|
||||
<
|
||||
string UIName = "Underwater Frequency 3";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.4};
|
||||
float uwf1
|
||||
<
|
||||
string UIName = "Underwater Speed 1";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {10.0};
|
||||
float uwf2
|
||||
<
|
||||
string UIName = "Underwater Speed 2";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {8.0};
|
||||
float uwf3
|
||||
<
|
||||
string UIName = "Underwater Speed 3";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {16.0};
|
||||
float uws1
|
||||
<
|
||||
string UIName = "Underwater Amplitude 1";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.3};
|
||||
float uws2
|
||||
<
|
||||
string UIName = "Underwater Amplitude 2";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.5};
|
||||
float uws3
|
||||
<
|
||||
string UIName = "Underwater Amplitude 3";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {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
|
||||
<
|
||||
string UIName = "Enable Hot Air Refraction";
|
||||
|
|
@ -184,736 +114,6 @@ 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_n
|
||||
<
|
||||
string UIName = "Frost Factor Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1.0};
|
||||
float frostfactor_d
|
||||
<
|
||||
string UIName = "Frost Factor Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1.0};
|
||||
float frostfactor_in
|
||||
<
|
||||
string UIName = "Frost Factor Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1.0};
|
||||
float frostfactor_id
|
||||
<
|
||||
string UIName = "Frost Factor Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1.0};
|
||||
bool frostalways
|
||||
<
|
||||
string UIName = "Frost Always Enable";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
string str_focus = "Focusing Parameters";
|
||||
/*
|
||||
focus modes:
|
||||
-1 : manual
|
||||
0 : center spot
|
||||
1 : center + triangle
|
||||
2 : 8x8 grid average
|
||||
TODO
|
||||
3 : 8x8 grid average of 8 closest points
|
||||
4 : 8x8 grid average of 8 farthest points
|
||||
*/
|
||||
int focuscircle
|
||||
<
|
||||
string UIName = "Focus Mode";
|
||||
string UIWidget = "Checkbox";
|
||||
int UIMin = -1;
|
||||
int UIMax = 2;
|
||||
> = {1};
|
||||
bool focusdisplay
|
||||
<
|
||||
string UIName = "Display Focus Points";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
float focusmanualvalue
|
||||
<
|
||||
string UIName = "Manual Focus Depth";
|
||||
string UIWidget = "Checkbox";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1000.0;
|
||||
> = {500.0};
|
||||
/* center point of focus */
|
||||
float focuscenter_x
|
||||
<
|
||||
string UIName = "Focus Point Center X";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 100.0;
|
||||
> = {50.0};
|
||||
float focuscenter_y
|
||||
<
|
||||
string UIName = "Focus Point Center Y";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 100.0;
|
||||
> = {50.0};
|
||||
float focuscircleangle
|
||||
<
|
||||
string UIName = "Focus Triangle Angle";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
/* radius of the focus point triangle */
|
||||
float focusradius_n
|
||||
<
|
||||
string UIName = "Focus Triangle Radius Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {20.0};
|
||||
float focusradius_d
|
||||
<
|
||||
string UIName = "Focus Triangle Radius Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {20.0};
|
||||
float focusradius_in
|
||||
<
|
||||
string UIName = "Focus Triangle Radius Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {20.0};
|
||||
float focusradius_id
|
||||
<
|
||||
string UIName = "Focus Triangle Radius Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {20.0};
|
||||
/* mix factor with sample at screen center */
|
||||
float focusmix_n
|
||||
<
|
||||
string UIName = "Focus Triangle Blending Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.5};
|
||||
float focusmix_d
|
||||
<
|
||||
string UIName = "Focus Triangle Blending Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.5};
|
||||
float focusmix_in
|
||||
<
|
||||
string UIName = "Focus Triangle Blending Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.5};
|
||||
float focusmix_id
|
||||
<
|
||||
string UIName = "Focus Triangle Blending Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.5};
|
||||
/* maximum focus depth */
|
||||
float focusmax_n
|
||||
<
|
||||
string UIName = "Focus Maximum Depth Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1000.0};
|
||||
float focusmax_d
|
||||
<
|
||||
string UIName = "Focus Maximum Depth Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1000.0};
|
||||
float focusmax_in
|
||||
<
|
||||
string UIName = "Focus Maximum Depth Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1000.0};
|
||||
float focusmax_id
|
||||
<
|
||||
string UIName = "Focus Maximum Depth Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {1000.0};
|
||||
/* dof filter */
|
||||
string str_dof = "Depth Of Field";
|
||||
/* dof multiplier (makes unfocused depths more blurry) */
|
||||
float dofmult_n
|
||||
<
|
||||
string UIName = "DOF Intensity Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {500.0};
|
||||
float dofmult_d
|
||||
<
|
||||
string UIName = "DOF Intensity Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {500.0};
|
||||
float dofmult_in
|
||||
<
|
||||
string UIName = "DOF Intensity Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {500.0};
|
||||
float dofmult_id
|
||||
<
|
||||
string UIName = "DOF Intensity Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {500.0};
|
||||
/* dof power (the higher it is, the wider the focused area gets) */
|
||||
float dofpow_n
|
||||
<
|
||||
string UIName = "DOF Contrast Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {4.0};
|
||||
float dofpow_d
|
||||
<
|
||||
string UIName = "DOF Contrast Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {4.0};
|
||||
float dofpow_in
|
||||
<
|
||||
string UIName = "DOF Contrast Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {4.0};
|
||||
float dofpow_id
|
||||
<
|
||||
string UIName = "DOF Contrast Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {4.0};
|
||||
/* dof bump (negative shift increases the area in complete focus) */
|
||||
float dofbump_n
|
||||
<
|
||||
string UIName = "DOF Shift Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float dofbump_d
|
||||
<
|
||||
string UIName = "DOF Shift Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float dofbump_in
|
||||
<
|
||||
string UIName = "DOF Shift Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float dofbump_id
|
||||
<
|
||||
string UIName = "DOF Shift Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
/* fixed focused depth factors */
|
||||
float doffixedfocusmult_n
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Intensity Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocusmult_d
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Intensity Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocusmult_in
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Intensity Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocusmult_id
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Intensity Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocuspow_n
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Contrast Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocuspow_d
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Contrast Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocuspow_in
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Contrast Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocuspow_id
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Contrast Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1.0};
|
||||
float doffixedfocusbump_n
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Shift Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedfocusbump_d
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Shift Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedfocusbump_in
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Shift Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedfocusbump_id
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Shift Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedfocusblend_n
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Blend Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffixedfocusblend_d
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Blend Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffixedfocusblend_in
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Blend Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffixedfocusblend_id
|
||||
<
|
||||
string UIName = "DOF Fixed Focus Blend Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 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 */
|
||||
float doffixedunfocusmult_n
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Intensity Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffixedunfocusmult_d
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Intensity Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffixedunfocusmult_in
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Intensity Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffixedunfocusmult_id
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Intensity Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffixedunfocuspow_n
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Contrast Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffixedunfocuspow_d
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Contrast Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffixedunfocuspow_in
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Contrast Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffixedunfocuspow_id
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Contrast Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffixedunfocusbump_n
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Shift Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedunfocusbump_d
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Shift Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedunfocusbump_in
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Shift Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedunfocusbump_id
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Shift Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffixedunfocusblend_n
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Blend Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffixedunfocusblend_d
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Blend Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffixedunfocusblend_in
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Blend Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffixedunfocusblend_id
|
||||
<
|
||||
string UIName = "DOF Fixed Unfocus Blend Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 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 */
|
||||
bool doffixedcut
|
||||
<
|
||||
string UIName = "DOF Fixed Use Cutoff";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {true};
|
||||
#ifndef FALLOUT
|
||||
/* fixed dof for foggy weathers */
|
||||
bool doffogenable
|
||||
<
|
||||
string UIName = "Enable DOF Fog";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {true};
|
||||
float doffogmult_n
|
||||
<
|
||||
string UIName = "DOF Fog Intensity Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffogmult_d
|
||||
<
|
||||
string UIName = "DOF Fog Intensity Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffogmult_in
|
||||
<
|
||||
string UIName = "DOF Fog Intensity Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffogmult_id
|
||||
<
|
||||
string UIName = "DOF Fog Intensity Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {2.0};
|
||||
float doffogpow_n
|
||||
<
|
||||
string UIName = "DOF Fog Contrast Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffogpow_d
|
||||
<
|
||||
string UIName = "DOF Fog Contrast Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffogpow_in
|
||||
<
|
||||
string UIName = "DOF Fog Contrast Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffogpow_id
|
||||
<
|
||||
string UIName = "DOF Fog Contrast Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {1000.0};
|
||||
float doffogbump_n
|
||||
<
|
||||
string UIName = "DOF Fog Shift Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffogbump_d
|
||||
<
|
||||
string UIName = "DOF Fog Shift Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffogbump_in
|
||||
<
|
||||
string UIName = "DOF Fog Shift Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffogbump_id
|
||||
<
|
||||
string UIName = "DOF Fog Shift Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doffogblend_n
|
||||
<
|
||||
string UIName = "DOF Fog Blend Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffogblend_d
|
||||
<
|
||||
string UIName = "DOF Fog Blend Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffogblend_in
|
||||
<
|
||||
string UIName = "DOF Fog Blend Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
> = {0.0};
|
||||
float doffogblend_id
|
||||
<
|
||||
string UIName = "DOF Fog Blend Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 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 */
|
||||
bool dofdisable
|
||||
<
|
||||
string UIName = "Disable DOF";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
bool doffixedonly
|
||||
<
|
||||
string UIName = "Use Only Fixed DOF";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
float dofpradius
|
||||
<
|
||||
string UIName = "DOF Gather Blur Radius";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.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
|
||||
<
|
||||
string UIName = "DOF Blur Chromatic Aberration";
|
||||
string UIWidget = "Spinner";
|
||||
> = {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
|
||||
bool dofrelfov
|
||||
<
|
||||
string UIName = "DOF Relative to FOV";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {true};
|
||||
float fovdefault
|
||||
<
|
||||
string UIName = "Default FOV";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 1.0;
|
||||
float UIMax = 180.0;
|
||||
> = {75.0};
|
||||
float relfovfactor_n
|
||||
<
|
||||
string UIName = "DOF Relative Factor Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {2.0};
|
||||
float relfovfactor_d
|
||||
<
|
||||
string UIName = "DOF Relative Factor Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {2.0};
|
||||
float relfovfactor_in
|
||||
<
|
||||
string UIName = "DOF Relative Factor Interior Night";
|
||||
string UIWidget = "Spinner";
|
||||
> = {2.0};
|
||||
float relfovfactor_id
|
||||
<
|
||||
string UIName = "DOF Relative Factor Interior Day";
|
||||
string UIWidget = "Spinner";
|
||||
> = {2.0};
|
||||
#endif
|
||||
/* tilting */
|
||||
float doftiltxcenter
|
||||
<
|
||||
string UIName = "Focus Plane Horizontal Tilt Center";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.5};
|
||||
float doftiltycenter
|
||||
<
|
||||
string UIName = "Focus Plane Vertical Tilt Center";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.5};
|
||||
float doftiltx
|
||||
<
|
||||
string UIName = "Focus Plane Horizontal Tilt";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
float doftilty
|
||||
<
|
||||
string UIName = "Focus Plane Vertical Tilt";
|
||||
string UIWidget = "Spinner";
|
||||
> = {0.0};
|
||||
/* cheap performance option */
|
||||
float dofminblur
|
||||
<
|
||||
string UIName = "DOF Minimum Blur";
|
||||
string UIWidget = "Spinner";
|
||||
float UIMin = 0.0;
|
||||
float UIMax = 1.0;
|
||||
> = {0.0};
|
||||
bool dofdebug
|
||||
<
|
||||
string UIName = "Debug Depth";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
bool dfcdebug
|
||||
<
|
||||
string UIName = "Debug Focus";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {false};
|
||||
/* use "edge vision" filter */
|
||||
string str_view = "Edgevision";
|
||||
bool edgevenable
|
||||
|
|
@ -1556,4 +756,4 @@ bool dcolorizeafterhsv
|
|||
<
|
||||
string UIName = "Colorize After HSV";
|
||||
string UIWidget = "Checkbox";
|
||||
> = {true};
|
||||
> = {true};
|
||||
|
|
|
|||
Reference in a new issue