1
Fork 0

MariENB Skyrim 2.1.3

This commit is contained in:
Marisa the Magician 2019-04-07 17:41:10 +02:00
commit 6d0120e96a
15 changed files with 568 additions and 147 deletions

View file

@ -7,7 +7,7 @@ UseOriginalPostProcessing=false
UseOriginalObjectsProcessing=false UseOriginalObjectsProcessing=false
EnableBloom=true EnableBloom=true
EnableAdaptation=true EnableAdaptation=true
EnableAmbientOcclusion=false EnableAmbientOcclusion=true
EnableDepthOfField=true EnableDepthOfField=true
EnableDetailedShadow=true EnableDetailedShadow=true
EnableSunRays=true EnableSunRays=true
@ -70,8 +70,8 @@ SamplingRange=0.15
FadeFogRangeDay=0.0 FadeFogRangeDay=0.0
FadeFogRangeNight=3.0 FadeFogRangeNight=3.0
FadeFogRangeInterior=0.0 FadeFogRangeInterior=0.0
SizeScale=0.25 SizeScale=0.5
SourceTexturesScale=0.25 SourceTexturesScale=0.5
FilterQuality=1 FilterQuality=1
AOAmount=1.1 AOAmount=1.1
ILAmount=0.31 ILAmount=0.31
@ -800,8 +800,8 @@ LightingInfluenceDusk=1.21
Quality=1 Quality=1
FilterQuality=1 FilterQuality=1
FilterBluriness=1.0 FilterBluriness=1.0
SizeScale=0.25 SizeScale=0.5
SourceTexturesScale=0.25 SourceTexturesScale=0.5
Amount=0.35 Amount=0.35
Power=1.06 Power=1.06
GlosinessMin=0.1 GlosinessMin=0.1

View file

@ -38,3 +38,29 @@ Sharp Sampling Range=0.35
Sharpening Amount=2.0 Sharpening Amount=2.0
Enable Shift=true Enable Shift=true
Shift Sampling Range=0.6 Shift Sampling Range=0.6
------Sharpening------------=false
Show Original=false
Show Edges=false
Use Edge Smoothing=true
Edge Smoothing Intensity=0.42
Depth Sharpening: Far Depth=2500.0
Sharpening HL Limiter Exterior=0.073
Sharpening HL Limiter Interior=0.047
Use Luma Sharpen=true
Blur Sigma Exterior=0.525
Blur Sigma Interior=0.525
Sharpening Strength Exterior=2.45
Sharpening Strength Interior=2.375
Sharpening Threshold Exterior=0.0
Sharpening Threshold Interior=0.0
------Letterbox-------------=false
Enable Letterbox=false
Letterbox Size (%)=4.0
------Noise-----------------=true
Enable Grain=false
Grain Motion=0.004
Grain Saturation=1.0
Grain Intensity=0.004
Grain Saturation Shadow=1.0
Grain Intensity Shadow=0.001
Shadow Noise Curve=0.095

View file

@ -1,9 +1,9 @@
[ENBBLOOM.FX] [ENBBLOOM.FX]
TECHNIQUE=0 TECHNIQUE=0
Bloom Intensity Night=0.6 Bloom Intensity Night=0.61
Bloom Intensity Day=0.66 Bloom Intensity Day=0.52
Bloom Intensity Interior Night=0.87 Bloom Intensity Interior Night=0.71
Bloom Intensity Interior Day=0.71 Bloom Intensity Interior Day=0.62
Bloom Contrast Night=1.02 Bloom Contrast Night=1.02
Bloom Contrast Day=1.0 Bloom Contrast Day=1.0
Bloom Contrast Interior Night=0.96 Bloom Contrast Interior Night=0.96
@ -12,10 +12,10 @@ Bloom Saturation Night=1.08
Bloom Saturation Day=1.03 Bloom Saturation Day=1.03
Bloom Saturation Interior Night=1.19 Bloom Saturation Interior Night=1.19
Bloom Saturation Interior Day=1.19 Bloom Saturation Interior Day=1.19
Bloom Offset Night=-0.07 Bloom Offset Night=-0.26
Bloom Offset Day=-0.08 Bloom Offset Day=-0.34
Bloom Offset Interior Night=-0.07 Bloom Offset Interior Night=-0.23
Bloom Offset Interior Day=-0.03 Bloom Offset Interior Day=-0.27
Bloom Intensity Cap Night=50.0 Bloom Intensity Cap Night=50.0
Bloom Intensity Cap Day=50.0 Bloom Intensity Cap Day=50.0
Bloom Intensity Cap Interior Night=50.0 Bloom Intensity Cap Interior Night=50.0
@ -61,8 +61,8 @@ Anamorphic Bloom Blue Shift Intensity Day=1.45
Anamorphic Bloom Blue Shift Interior Night=1.98 Anamorphic Bloom Blue Shift Interior Night=1.98
Anamorphic Bloom Blue Shift Interior Day=1.84 Anamorphic Bloom Blue Shift Interior Day=1.84
Anamorphic Bloom Contrast Night=1.19 Anamorphic Bloom Contrast Night=1.19
Anamorphic Bloom Contrast Day=1.22 Anamorphic Bloom Contrast Day=1.27
Anamorphic Bloom Contrast Interior Night=1.0 Anamorphic Bloom Contrast Interior Night=1.11
Anamorphic Bloom Contrast Interior Day=1.17 Anamorphic Bloom Contrast Interior Day=1.17
Anamorphic Bloom Radius Multiplier=4.0 Anamorphic Bloom Radius Multiplier=4.0
Bloom Pass 1 Blend=0.97 Bloom Pass 1 Blend=0.97
@ -85,3 +85,74 @@ Dirt Base Blend=0.0
Dirt Texture Preserve Aspect=true Dirt Texture Preserve Aspect=true
Dirt Contrast=1.05 Dirt Contrast=1.05
Dirt Factor=0.95 Dirt Factor=0.95
------Options & Settings----=false
Bloom Quality=0.0
------Depth-----------------=false
Far Depth=50.0
Exterior: Min Depth=0.67
Interior: Min Depth=0.67
------Tinting---------------=false
Tinting: Enable Bloom Tinting=true
Tinting: Tint Method=1.0
Tinting: Day Tint RGB Color=0.6, 0.4, 1
Tinting: Day Tint Level=0.59
Tinting: (method 3) Day Tint Mix=0.47
Tinting: Night Tint RGB Color=0.6, 0.4, 1
Tinting: Night Tint Level=0.59
Tinting: (method 3) Night Tint Mix=0.47
Tinting: Interior Tint RGB Color=0.6, 0.4, 1
Tinting: Interior Tint Level=0.44
Tinting: (method 3) Interior Tint Mix=0.47
------Bloom Day-------------=false
Day Bloom: Black Level=0.025
Day Bloom: Gamma Curve=1.0
Day Bloom: White Level=0.46
Day Bloom: Black Cutoff=0.0
Day Bloom: White Cutoff=0.135
Day Bloom: Saturation=1.0
Day Bloom: Sigma (Blur width)=24.0
Day Bloom: X Intensity=1.0
Day Bloom: X+Y Intensity=1.0
------Bloom Night-----------=false
Night Bloom: Black Level=0.025
Night Bloom: Gamma Curve=1.0
Night Bloom: White Level=0.45
Night Bloom: Black Cutoff=0.0
Night Bloom: White Cutoff=0.165
Night Bloom: Saturation=1.0
Night Bloom: Sigma (Blur width)=24.0
Night Bloom: X Intensity=1.0
Night Bloom: X+Y Intensity=1.0
------Bloom Interior--------=false
Interior Bloom: Black Level=0.025
Interior Bloom: Gamma Curve=1.0
Interior Bloom: White Level=0.455
Interior Bloom: Black Cutoff=0.0
Interior Bloom: White Cutoff=0.165
Interior Bloom: Saturation=1.0
Interior Bloom: Sigma (Blur width)=24.0
Interior Bloom: X Intensity=1.0
Interior Bloom: X+Y Intensity=1.0
------Texture Selection-----=false
Enable Tex 1: 512x512=false
Enable Tex 2: 256x256=true
Enable Tex 3: 128x128=true
Enable Tex 4: 64x64=true
Enable Tex 5: 32x32=true
Enable Tex 6: 16x16=true
Enable Tex 7: 8x8=true
------Texture Sample Range--=false
Tex 1: Sample Range=0.5
Tex 2: Sample Range=0.5
Tex 3: Sample Range=0.5
Tex 4: Sample Range=0.25
Tex 5: Sample Range=0.25
Tex 6: Sample Range=0.25
Tex 7: Sample Range=0.25
------Noise-----------------=false
Noise Motion=0.004
Noise Saturation=1.0
Noise Intensity Exterior=0.003
Noise Intensity Interior=0.002
Bloom Blur Radius X=1.0
Bloom Blur Radius Y=1.0

View file

@ -150,3 +150,156 @@ Display Bloom=false
Enable Vanilla Imagespace=true Enable Vanilla Imagespace=true
Vanilla Vibrance Blend=1.0 Vanilla Vibrance Blend=1.0
Vanilla Contrast Blend=1.0 Vanilla Contrast Blend=1.0
Enable Spell Special Effects=true
Show Bloom Output=false
Bloom Filter Sample Range=0.5
ENB Adaptation Curve=7.0
Skyrim Adaptation Min=5.0
Skyrim Adaptation Max=5.0
Skyrim Bloom Amount Day=0.0
Skyrim Bloom Amount Night=0.0
Skyrim Bloom Amount Interior=0.0
------Gray Level Controls---=false
Day: Gray Black In=0.006
Day: Gray Gamma In=1.01
Day: Gray White In=1.0
Day: Gray Black Out=0.016
Day: Gray Black Out Min=0.02
Day: Gray White Out=1.0
Night: Gray Black In=0.004
Night: Gray Gamma In=1.01
Night: Gray White In=1.0
Night: Gray Black Out=0.035
Night: Gray Black Out Min=0.014
Night: Gray White Out=1.0
Interior: Gray Black In=0.007
Interior: Gray Gamma In=1.01
Interior: Gray White In=1.0
Interior: Gray Black Out=0.065
Interior: Gray Black Out Min=0.012
Interior: Gray White Out=1.0
------RGB Level Controls----=false
Day: RGB Black In=0, 0, 0
Day: Red Gamma In=1.025
Day: Green Gamma In=1.06
Day: Blue Gamma In=1.09
Day: RGB White In=1, 1, 1
Day: RGB Black Out=0, 0, 0
Day: RGB White Out=1, 0.98, 1
Night: RGB Black In=0, 0, 0
Night: Red Gamma In=1.025
Night: Green Gamma In=1.06
Night: Blue Gamma In=1.09
Night: RGB White In=1, 1, 1
Night: RGB Black Out=0, 0, 0
Night: RGB White Out=1, 0.98, 1
Interior: RGB Black In=0, 0, 0
Interior: Red Gamma In=1.025
Interior: Green Gamma In=1.06
Interior: Blue Gamma In=1.09
Interior: RGB White In=1, 1, 1
Interior: RGB Black Out=0, 0, 0
Interior: RGB White Out=1, 0.98, 1
------Tonemapping (Filmic)--=false
Tonemap Day: Shoulder Strength=0.59
Tonemap Day: Linear Strength=0.815
Tonemap Day: Linear Angle=0.35
Tonemap Day: Toe Strength=0.705
Tonemap Day: Toe Numerator=0.083
Tonemap Day: Toe Denominator=0.365
Tonemap Day: White Lower Limit=0.012
Tonemap Day: White Upper Limit=0.365
Tonemap Night: Shoulder Strength=0.59
Tonemap Night: Linear Strength=0.815
Tonemap Night: Linear Angle=0.35
Tonemap Night: Toe Strength=0.965
Tonemap Night: Toe Numerator=0.083
Tonemap Night: Toe Denominator=0.365
Tonemap Night: White Lower Limit=0.012
Tonemap Night: White Upper Limit=0.365
Tonemap Interior: Shoulder Strength=0.71
Tonemap Interior: Linear Strength=0.815
Tonemap Interior: Linear Angle=0.35
Tonemap Interior: Toe Strength=0.72
Tonemap Interior: Toe Numerator=0.083
Tonemap Interior: Toe Denominator=0.365
Tonemap Interior: White Lower Limit=0.012
Tonemap Interior: White Upper Limit=0.365
Adaptation Ext: Lower White Point=1.875
Adaptation Ext: Upper White Point=3.15
Adaptation Int: Lower White Point=1.875
Adaptation Int: Upper White Point=3.2
------Channel Mixer---------=false
Channel Mixer Red Day=1, 0, 0
Channel Mixer Green Day=0, 1, 0
Channel Mixer Blue Day=0, 0, 1
Channel Mixer Red Night=1, 0, 0
Channel Mixer Green Night=0, 1, 0
Channel Mixer Blue Night=0, 0, 1
Channel Mixer Red Interior=1, 0, 0
Channel Mixer Green Interior=0, 1, 0
Channel Mixer Blue Interior=0, 0, 1
------Color Filter----------=false
Color Filter: Luma=0.212, 0.714, 0.0706
Color Filter: Hue Middle=0.0
Color Filter: Hue Range=0.15
Color Filter: Saturation Limit=1.0
Color Filter: Effect Strength=0.0
------Highlights & Shadows--=false
Day: Highlights=0.334
Day: Shadows=0.02
Night: Highlights=0.334
Night: Shadows=0.05
Interior: Highlights=0.334
Interior: Shadows=0.02
------After Effects---------=false
AFX: Contrast Tweak Day=0.2
AFX: Contrast Tweak Night=0.4
AFX: Contrast Tweak Interior=0.3
AFX: Brightness Tweak Day=0.1
AFX: Brightness Tweak Night=0.0
AFX: Brightness Tweak Interior=0.095
AFX: Vibrance Tweak Day=1.1
AFX: Vibrance Tweak Night=1.3
AFX: Vibrance Tweak Interior=1.1
AFX: Red Saturation Day=1.0
AFX: Red Saturation Night=0.89
AFX: Red Saturation Interior=0.89
AFX: Green Saturation Day=0.9
AFX: Green Saturation Night=0.88
AFX: Green Saturation Interior=0.88
AFX: Blue Saturation Day=1.0
AFX: Blue Saturation Night=0.85
AFX: Blue Saturation Interior=0.85
------Ported SFX: Curves----=false
Day Curves 12: Start Point=0.036
Day Curves 12: Control Point 1=0.165
Day Curves 12: Control Point 2=1.0
Day Curves 12: End Point=1.0
Day Curves 12: Contrast Amount=0.765
Night Curves 12: Start Point=0.013
Night Curves 12: Control Point 1=0.13
Night Curves 12: Control Point 2=1.0
Night Curves 12: End Point=1.0
Night Curves 12: Contrast Amount=0.765
Interior Curves 12: Start Point=0.025
Interior Curves 12: Control Point 1=0.145
Interior Curves 12: Control Point 2=1.0
Interior Curves 12: End Point=1.0
Interior Curves 12: Contrast Amount=0.765
------Skyrim IS Limits------=false
Skyrim IS: Max Saturation Ext=1.0
Skyrim IS: Max Saturation Int=1.0
Skyrim IS: Max Contrast Ext=1.365
Skyrim IS: Max Contrast Int=1.395
Skyrim IS: Max Brightness Ext=1.2
Skyrim IS: Max Brightness Int=1.2
Skyrim IS: Max Tint Amount Ext=0.8
Skyrim IS: Max Tint Amount Int=0.8
Skyrim IS: New Tint Strength Ext=0.8
Skyrim IS: New Tint Strength Int=0.8
Skyrim IS: New Tint Add Shadow Day=0.095
Skyrim IS: New Tint Add Shadow Night=0.02
Skyrim IS: New Tint Add Shadow Int=0.032
Skyrim IS: New Tint Desaturate Ext=0.0
Skyrim IS: New Tint Desaturate Int=0.0

View file

@ -1,5 +1,5 @@
[ENBEFFECTPREPASS.FX] [ENBEFFECTPREPASS.FX]
TECHNIQUE=0 TECHNIQUE=2
Fixed Resolution Width=1920 Fixed Resolution Width=1920
Fixed Resolution Height=1080 Fixed Resolution Height=1080
Depth Cutoff=999998.0 Depth Cutoff=999998.0
@ -48,10 +48,10 @@ DOF Intensity Night=475.899994
DOF Intensity Day=424.299988 DOF Intensity Day=424.299988
DOF Intensity Interior Night=480.799988 DOF Intensity Interior Night=480.799988
DOF Intensity Interior Day=432.299988 DOF Intensity Interior Day=432.299988
DOF Contrast Night=3.16 DOF Contrast Night=3.32
DOF Contrast Day=3.58 DOF Contrast Day=3.7
DOF Contrast Interior Night=2.78 DOF Contrast Interior Night=3.02
DOF Contrast Interior Day=3.14 DOF Contrast Interior Day=3.43
DOF Shift Night=0.0 DOF Shift Night=0.0
DOF Shift Day=0.0 DOF Shift Day=0.0
DOF Shift Interior Night=0.0 DOF Shift Interior Night=0.0
@ -95,10 +95,10 @@ DOF Bilateral Factor=5.0
DOF Blur Radius=1.0 DOF Blur Radius=1.0
DOF Relative to FOV=true DOF Relative to FOV=true
Default FOV=75.0 Default FOV=75.0
DOF Relative Factor Night=2.57 DOF Relative Factor Night=2.76
DOF Relative Factor Day=2.79 DOF Relative Factor Day=2.9
DOF Relative Factor Interior Night=2.54 DOF Relative Factor Interior Night=2.65
DOF Relative Factor Interior Day=2.61 DOF Relative Factor Interior Day=2.73
Debug Depth=false Debug Depth=false
Debug Focus=false Debug Focus=false
Enable Depth Edge Detect=false Enable Depth Edge Detect=false
@ -132,7 +132,7 @@ Edgevision Fade Intensity Interior Day=600.0
Edgevision Contrast=0.25 Edgevision Contrast=0.25
Edgevision Intensity=8.0 Edgevision Intensity=8.0
Edgevision Radius=1.0 Edgevision Radius=1.0
Enable SSAO=true Enable SSAO=false
SSAO Radius=0.15 SSAO Radius=0.15
SSAO Noise=0 SSAO Noise=0
SSAO Fade Contrast Night=0.46 SSAO Fade Contrast Night=0.46
@ -180,4 +180,31 @@ SSAO Blur Use Less Samples=true
Bokeh Threshold=1.0 Bokeh Threshold=1.0
Bokeh Blur Threshold=0.5 Bokeh Blur Threshold=0.5
Bokeh Size=8.0 Bokeh Size=8.0
DOF Gather Blur Radius=10.0 DOF Gather Blur Radius=12.0
DES mode=0
DES Level=0.0
DES Blend Color=1, 0, 0
DES Blend Factor=1.0
MF mode=false
Display AF Cursor=false
AF posX=0.5
AF posY=0.6
AF Near Blur Curve=30.0
AF Far Blur Curve=2.4
MF Far Blur Plane(m)=10.0
MF Focused Plane(m)=1.0
Aperture Size(%)=0.35
Aperture Deform=0.0
Aperture Shape=5
Aperture Ratio=1.19
Aperture Angle(°)=0
Tilt Shift Axis(°)=0
Tilt Shift Angle(°)=0.0
Quality=3
Bokeh Highlight=10.0
Bokeh Bias=0.0
Bokeh Bias Curve=1.0
Guassian Radius=1.0
Noise Amount=0.0
Noise Curve=1.0
DOF Minimum Blur=0.01

View file

@ -1,2 +1,25 @@
[ENBLENS.FX] [ENBLENS.FX]
TECHNIQUE=0 TECHNIQUE=0
Lens Reflect Position X=0.0
Lens Reflect Position Y=0.0
Lens Reflect Size=1.0
Lens Reflect Intensity=0.35
Flare IntensityL-N=0.7
Flare IntensityH-N=0.7
Flare IntensityL-D=0.7
Flare IntensityH-D=0.7
Flare IntensityL-I=0.7
Flare IntensityH-I=0.7
Flare Lighting ThresholdL-N=0.2
Flare Lighting ThresholdH-N=0.27
Flare Lighting ThresholdL-D=0.45
Flare Lighting ThresholdH-D=0.45
Flare Lighting ThresholdL-I=0.48
Flare Lighting ThresholdH-I=0.52
Flare Curve1=16.0
Flare Curve2=16.0
Flare Tint1=0.129, 0.216, 1
Flare Tint2=0.129, 0.216, 1
Flare Angle 1=135.0
Flare Angle 2=45.0
blur radii=12.0

View file

@ -1,2 +1,20 @@
[ENBSUNSPRITE.FX] [ENBSUNSPRITE.FX]
TECHNIQUE=0 TECHNIQUE=0
Glare Intensity=0.9
Glare Scale=0.8
Glare Tint=0.973, 0.894, 0.486
Moire Vib Frequency(Hz)=1.0
Moire Vib Scale=0.3
Moire Offset=0.1
Rotation Modifier=100.0
Blink Axis(°)=1
Blink Frequency(Hz)=0.3
Blink Speed=0.3
Blink Starting Angle(°)=90
Blink Ending Angle(°)=10
Blink Angle Width=10.0
Blink Intensity=4.0
Spike Intensity=6.0
Spike Frequency=2.0
Spike Speed=0.4
Spike Width=1.0

View file

@ -63,7 +63,7 @@ float4 PS_BloomTexture1(VS_OUTPUT_POST In) : COLOR
float2 pp; float2 pp;
[unroll] for ( i=-7; i<=7; i++ ) [unroll] for ( i=-7; i<=7; i++ )
{ {
pp = coord+float2(i,0)*TempParameters.z*bloomradius; pp = coord+float2(i,0)*TempParameters.z*bloomradiusx;
res += gauss8[abs(i)]*tex2D(SamplerBloom1,pp); res += gauss8[abs(i)]*tex2D(SamplerBloom1,pp);
sum += ((pp.x>=0)&&(pp.x<1))?gauss8[abs(i)]:0; sum += ((pp.x>=0)&&(pp.x<1))?gauss8[abs(i)]:0;
} }
@ -81,7 +81,7 @@ float4 PS_BloomTexture2(VS_OUTPUT_POST In) : COLOR
float2 pp; float2 pp;
[unroll] for ( i=-7; i<=7; i++ ) [unroll] for ( i=-7; i<=7; i++ )
{ {
pp = coord+float2(0,i)*TempParameters.z*bloomradius; pp = coord+float2(0,i)*TempParameters.z*bloomradiusy;
res += gauss8[abs(i)]*tex2D(SamplerBloom1,pp); res += gauss8[abs(i)]*tex2D(SamplerBloom1,pp);
sum += ((pp.y>=0)&&(pp.y<1))?gauss8[abs(i)]:0; sum += ((pp.y>=0)&&(pp.y<1))?gauss8[abs(i)]:0;
} }
@ -124,11 +124,11 @@ float4 PS_AnamPass(VS_OUTPUT_POST In) : COLOR
int i; int i;
float sum = 0; float sum = 0;
float2 pp; float2 pp;
[unroll] for ( i=-79; i<=79; i++ ) [unroll] for ( i=-39; i<=39; i++ )
{ {
pp = coord+float2(i,0)*TempParameters.z*bloomradius*flen; pp = coord+float2(i,0)*TempParameters.z*bloomradiusx*flen;
res += gauss80[abs(i)]*tex2D(SamplerBloom1,pp); res += gauss40[abs(i)]*tex2D(SamplerBloom1,pp);
sum += ((pp.x>=0)&&(pp.x<1))?gauss80[abs(i)]:0; sum += ((pp.x>=0)&&(pp.x<1))?gauss40[abs(i)]:0;
} }
res *= 1.0/sum; res *= 1.0/sum;
/* blue shift */ /* blue shift */
@ -143,7 +143,7 @@ float4 PS_AnamPass(VS_OUTPUT_POST In) : COLOR
float fbl = tod_ind(fbl); float fbl = tod_ind(fbl);
float fpw = tod_ind(fpw); float fpw = tod_ind(fpw);
res.rgb *= lerp(1.0,flu,lm); res.rgb *= lerp(1.0,flu,lm);
res.rgb = pow(res.rgb,fpw)*fbl; res.rgb = pow(max(0,res.rgb),fpw)*fbl;
res.a = 1.0; res.a = 1.0;
return res; return res;
} }
@ -161,7 +161,6 @@ float4 PS_BloomPostPass(VS_OUTPUT_POST In) : COLOR
res += bloommix7*tex2D(SamplerBloomC7,coord); // P5 res += bloommix7*tex2D(SamplerBloomC7,coord); // P5
res += bloommix8*tex2D(SamplerBloomC8,coord); // P6 res += bloommix8*tex2D(SamplerBloomC8,coord); // P6
res.rgb /= 6.0; res.rgb /= 6.0;
if ( alfenable ) res.rgb *= 0.5;
res.rgb = clamp(res.rgb,0,32768); res.rgb = clamp(res.rgb,0,32768);
res.a = 1.0; res.a = 1.0;
return res; return res;
@ -186,7 +185,6 @@ float4 PS_LensDirtPass(VS_OUTPUT_POST In) : COLOR
mud += dirtmix7*tex2D(SamplerBloomC7,coord); // P5 mud += dirtmix7*tex2D(SamplerBloomC7,coord); // P5
mud += dirtmix8*tex2D(SamplerBloomC8,coord); // P6 mud += dirtmix8*tex2D(SamplerBloomC8,coord); // P6
mud.rgb /= 6.0; mud.rgb /= 6.0;
if ( alfenable ) mud.rgb *= 0.5;
mud.rgb = clamp(mud.rgb,0,32768); mud.rgb = clamp(mud.rgb,0,32768);
float mudmax = luminance(mud.rgb); float mudmax = luminance(mud.rgb);
float mudn = max(mudmax/(1.0+mudmax),0.0); float mudn = max(mudmax/(1.0+mudmax),0.0);

View file

@ -7,26 +7,33 @@
/* mathematical constants */ /* mathematical constants */
static const float pi = 3.1415926535898; static const float pi = 3.1415926535898;
/* gaussian blur matrices */ /* gaussian blur matrices */
/* radius: 3, std dev: 0.7014 */ /* radius: 4, std dev: 1.5 */
/*static const float gauss3[3] = {0.568780, 0.205851, 0.009759};*/ /*static const float gauss4[4] =
{
0.270682, 0.216745, 0.111281, 0.036633
};*/
/* radius: 8, std dev: 3 */ /* radius: 8, std dev: 3 */
static const float gauss8[8] = static const float gauss8[8] =
{ {
0.134598, 0.127325, 0.107778, 0.081638, 0.134598, 0.127325, 0.107778, 0.081638,
0.055335, 0.033562, 0.018216, 0.008847 0.055335, 0.033562, 0.018216, 0.008847
}; };
/* radius: 36, std dev: 32 */ /* radius: 40, std dev: 15 */
/*static const float gauss36[36] = static const float gauss40[40] =
{ {
0.017014, 0.017006, 0.016981, 0.016939, 0.016881, 0.016807, 0.026823, 0.026763, 0.026585, 0.026291,
0.016717, 0.016612, 0.016490, 0.016354, 0.016203, 0.016038, 0.025886, 0.025373, 0.024760, 0.024055,
0.015859, 0.015666, 0.015461, 0.015244, 0.015015, 0.014775, 0.023267, 0.022404, 0.021478, 0.020499,
0.014524, 0.014264, 0.013995, 0.013718, 0.013433, 0.013141, 0.019477, 0.018425, 0.017352, 0.016269,
0.012843, 0.012539, 0.012231, 0.011918, 0.011602, 0.011284, 0.015186, 0.014112, 0.013056, 0.012025,
0.010964, 0.010642, 0.010319, 0.009997, 0.009675, 0.009355 0.011027, 0.010067, 0.009149, 0.008279,
};*/ 0.007458, 0.006688, 0.005972, 0.005308,
0.004697, 0.004139, 0.003630, 0.003170,
0.002756, 0.002385, 0.002055, 0.001763,
0.001506, 0.001280, 0.001084, 0.000913
};
/* radius: 80, std dev: 30 */ /* radius: 80, std dev: 30 */
static const float gauss80[80] = /*static const float gauss80[80] =
{ {
0.013406, 0.013398, 0.013376, 0.013339, 0.013287, 0.013221, 0.013406, 0.013398, 0.013376, 0.013339, 0.013287, 0.013221,
0.013140, 0.013046, 0.012938, 0.012816, 0.012681, 0.012534, 0.013140, 0.013046, 0.012938, 0.012816, 0.012681, 0.012534,
@ -42,7 +49,7 @@ static const float gauss80[80] =
0.001192, 0.001107, 0.001027, 0.000952, 0.000881, 0.000815, 0.001192, 0.001107, 0.001027, 0.000952, 0.000881, 0.000815,
0.000753, 0.000694, 0.000640, 0.000589, 0.000542, 0.000497, 0.000753, 0.000694, 0.000640, 0.000589, 0.000542, 0.000497,
0.000456, 0.000418 0.000456, 0.000418
}; };*/
/* standard stuff */ /* standard stuff */
float4 ScreenSize; float4 ScreenSize;
float4 TempParameters; float4 TempParameters;

View file

@ -120,9 +120,15 @@ float bloomcap_id
> = {20.0}; > = {20.0};
string str_bloomper = "Bloom Per-pass"; string str_bloomper = "Bloom Per-pass";
/* bloom blur radius */ /* bloom blur radius */
float bloomradius float bloomradiusx
< <
string UIName = "Bloom Blur Radius"; string UIName = "Bloom Blur Radius X";
string UIWidget = "Spinner";
float UIMin = 0.0;
> = {1.0};
float bloomradiusy
<
string UIName = "Bloom Blur Radius Y";
string UIWidget = "Spinner"; string UIWidget = "Spinner";
float UIMin = 0.0; float UIMin = 0.0;
> = {1.0}; > = {1.0};

View file

@ -127,7 +127,7 @@ float3 GradingRGB( float3 res )
float gradepow_b = tod_ind(gradepow_b); float gradepow_b = tod_ind(gradepow_b);
float3 grademul = float3(grademul_r,grademul_g,grademul_b); float3 grademul = float3(grademul_r,grademul_g,grademul_b);
float3 gradepow = float3(gradepow_r,gradepow_g,gradepow_b); float3 gradepow = float3(gradepow_r,gradepow_g,gradepow_b);
return pow(res,gradepow)*grademul; return pow(max(0,res),gradepow)*grademul;
} }
float3 GradingColorize( float3 res ) float3 GradingColorize( float3 res )
{ {
@ -147,8 +147,8 @@ float3 GradingHSV( float3 res )
float gradevalmul = tod_ind(gradevalmul); float gradevalmul = tod_ind(gradevalmul);
float gradevalpow = tod_ind(gradevalpow); float gradevalpow = tod_ind(gradevalpow);
float3 hsv = rgb2hsv(res); float3 hsv = rgb2hsv(res);
hsv.y = clamp(pow(hsv.y,gradesatpow)*gradesatmul,0.0,1.0); hsv.y = clamp(pow(max(0,hsv.y),gradesatpow)*gradesatmul,0.0,1.0);
hsv.z = pow(hsv.z,gradevalpow)*gradevalmul; hsv.z = pow(max(0,hsv.z),gradevalpow)*gradevalmul;
return hsv2rgb(hsv); return hsv2rgb(hsv);
} }
/* game grading filters */ /* game grading filters */

View file

@ -36,7 +36,7 @@ float4 ReducePrepass( in float4 col, in float2 coord )
{ {
float3 hsv = rgb2hsv(col); float3 hsv = rgb2hsv(col);
hsv.y = clamp(hsv.y*bsaturation,0.0,1.0); hsv.y = clamp(hsv.y*bsaturation,0.0,1.0);
hsv.z = pow(hsv.z,bgamma); hsv.z = pow(max(0,hsv.z),bgamma);
col.rgb = hsv2rgb(saturate(hsv)); col.rgb = hsv2rgb(saturate(hsv));
if ( dither == 0 ) if ( dither == 0 )
col += bdbump+checkers[int(coord.x%2)+2*int(coord.y%2)]*bdmult; col += bdbump+checkers[int(coord.x%2)+2*int(coord.y%2)]*bdmult;
@ -350,7 +350,7 @@ float4 PS_DotMatrix( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
moire patterns when using the default size of 2x2. moire patterns when using the default size of 2x2.
*/ */
float4 dots = tex2D(SamplerDots,coord*bresl)*dac; float4 dots = tex2D(SamplerDots,coord*bresl)*dac;
float3 tcol = pow((dots.rgb+dots.a),dotpow)*dotmult; float3 tcol = pow(max(0,dots.rgb+dots.a),dotpow)*dotmult;
res.rgb = res.rgb*(1-dotblend)+tcol*dotblend; res.rgb = res.rgb*(1-dotblend)+tcol*dotblend;
return res; return res;
} }

View file

@ -81,8 +81,8 @@ float3 EdgeView( float3 res, float2 coord )
mdy += GY[2][2]*depths[2][2]; mdy += GY[2][2]*depths[2][2];
mud = pow(mdx*mdx+mdy*mdy,0.5); mud = pow(mdx*mdx+mdy*mdy,0.5);
float fade = 1.0-tex2D(SamplerDepth,coord).x; float fade = 1.0-tex2D(SamplerDepth,coord).x;
mud *= saturate(pow(fade,edgevfadepow)*edgevfademult); mud *= saturate(pow(max(0,fade),edgevfadepow)*edgevfademult);
mud = saturate(pow(mud,edgevpow)*edgevmult); mud = saturate(pow(max(0,mud),edgevpow)*edgevmult);
return mud; return mud;
} }
/* /*
@ -141,7 +141,7 @@ float4 PS_EdgePlusSSAOPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
{ {
sample = reflect(ssao_samples_lq[i],rnormal); sample = reflect(ssao_samples_lq[i],rnormal);
sample *= sign(dot(normal,sample)); sample *= sign(dot(normal,sample));
so = ldepth-sample.z*bof; so = ldepth-sample.z*bof.x;
sdepth = depthlinear(coord+bof*sample.xy/ldepth); sdepth = depthlinear(coord+bof*sample.xy/ldepth);
delta = saturate(so-sdepth); delta = saturate(so-sdepth);
delta *= 1.0-smoothstep(0.0,sclamp,delta); delta *= 1.0-smoothstep(0.0,sclamp,delta);
@ -152,7 +152,7 @@ float4 PS_EdgePlusSSAOPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
{ {
sample = reflect(ssao_samples_hq[i],rnormal); sample = reflect(ssao_samples_hq[i],rnormal);
sample *= sign(dot(normal,sample)); sample *= sign(dot(normal,sample));
so = ldepth-sample.z*bof; so = ldepth-sample.z*bof.x;
sdepth = depthlinear(coord+bof*sample.xy/ldepth); sdepth = depthlinear(coord+bof*sample.xy/ldepth);
delta = saturate(so-sdepth); delta = saturate(so-sdepth);
delta *= 1.0-smoothstep(0.0,sclamp,delta); delta *= 1.0-smoothstep(0.0,sclamp,delta);
@ -161,8 +161,8 @@ float4 PS_EdgePlusSSAOPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
} }
float uocc = saturate(occ/(ssaoquarter?16.0:64.0)); float uocc = saturate(occ/(ssaoquarter?16.0:64.0));
float fade = 1.0-depth; float fade = 1.0-depth;
uocc *= saturate(pow(fade,ssaofadepow)*ssaofademult); uocc *= saturate(pow(max(0,fade),ssaofadepow)*ssaofademult);
uocc = saturate(pow(uocc,ssaopow)*ssaomult); uocc = saturate(pow(max(0,uocc),ssaopow)*ssaomult);
res.a = saturate(1.0-(uocc*ssaoblend)); res.a = saturate(1.0-(uocc*ssaoblend));
return res; return res;
} }
@ -186,10 +186,11 @@ float2 DistantHeat( float2 coord )
float2 bresl; float2 bresl;
float dep, odep; float dep, odep;
dep = tex2D(SamplerDepth,coord).x; dep = tex2D(SamplerDepth,coord).x;
float distfade = clamp(pow(dep,heatfadepow)*heatfademul+heatfadebump, float distfade = clamp(pow(max(0,dep),heatfadepow)*heatfademul
0.0,1.0); +heatfadebump,0.0,1.0);
if ( distfade <= 0.0 ) return coord; if ( distfade <= 0.0 ) return coord;
float todpow = pow(ENightDayFactor*(1.0-EInteriorFactor),heattodpow); float todpow = pow(max(0,ENightDayFactor*(1.0-EInteriorFactor)),
heattodpow);
if ( !heatalways && (todpow <= 0.0) ) return coord; if ( !heatalways && (todpow <= 0.0) ) return coord;
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy); if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
@ -204,8 +205,8 @@ float2 DistantHeat( float2 coord )
#endif #endif
; ;
odep = tex2D(SamplerDepth,coord+ofs*heatstrength*distfade*0.01).x; odep = tex2D(SamplerDepth,coord+ofs*heatstrength*distfade*0.01).x;
float odistfade = clamp(pow(odep,heatfadepow)*heatfademul+heatfadebump, float odistfade = clamp(pow(max(0,odep),heatfadepow)*heatfademul
0.0,1.0); +heatfadebump,0.0,1.0);
if ( odistfade <= 0.0 ) return coord; if ( odistfade <= 0.0 ) return coord;
return coord+ofs*heatstrength*distfade*0.01; return coord+ofs*heatstrength*distfade*0.01;
} }
@ -221,18 +222,16 @@ float4 PS_Distortion( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
if ( heatenable ) ofs = DistantHeat(ofs); if ( heatenable ) ofs = DistantHeat(ofs);
ofs -= coord; ofs -= coord;
float4 res; float4 res;
if ( (distcha != 0.0) && (length(ofs) != 0) ) if ( (distcha == 0.0) || (length(ofs) == 0) )
{ return tex2D(SamplerColor,coord+ofs);
float2 ofr, ofg, ofb; float2 ofr, ofg, ofb;
ofr = ofs*(1.0-distcha*0.01); ofr = ofs*(1.0-distcha*0.01);
ofg = ofs; ofg = ofs;
ofb = ofs*(1.0+distcha*0.01); ofb = ofs*(1.0+distcha*0.01);
res = float4(tex2D(SamplerColor,coord+ofr).r, res = float4(tex2D(SamplerColor,coord+ofr).r,
tex2D(SamplerColor,coord+ofg).g, tex2D(SamplerColor,coord+ofg).g,
tex2D(SamplerColor,coord+ofb).b, tex2D(SamplerColor,coord+ofb).b,
tex2D(SamplerColor,coord+ofs).a); tex2D(SamplerColor,coord+ofs).a);
}
else res = tex2D(SamplerColor,coord+ofs);
return res; return res;
} }
/* /*
@ -400,9 +399,8 @@ float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
This method skips blurring areas that are perfectly in focus. The This method skips blurring areas that are perfectly in focus. The
performance gain is negligible in most cases, though. performance gain is negligible in most cases, though.
*/ */
#ifdef USE_BOKEH
/* gather blur pass */ /* gather blur pass */
float4 PS_DoFBlurH( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
{ {
float2 coord = IN.txcoord.xy; float2 coord = IN.txcoord.xy;
if ( dofdisable ) return tex2D(SamplerColor,coord); if ( dofdisable ) return tex2D(SamplerColor,coord);
@ -413,44 +411,27 @@ float4 PS_DoFBlurH( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy); if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 bof = 1.0/bresl; float2 bof = 1.0/bresl;
float4 res = tex2D(SamplerColor,coord); if ( dfc <= dofminblur ) return tex2D(SamplerColor,coord);
float4 ccol = res; float4 res = float4(0,0,0,0);
if ( dfc > 0.0 ) float dep = tex2D(SamplerDepth,coord).x;
float sd, ds, sw, tw = 0;
float2 bsz = bof*dofpradius*dfc;
float4 sc;
[unroll] for ( int i=0; i<32; i++ )
{ {
res *= 0; sc = tex2Dlod(SamplerColor,float4(coord.x
float dep = tex2D(SamplerDepth,coord).x; +poisson32[i].x*bsz.x,coord.y+poisson32[i].y
float sd, ds, sw, tw = 0; *bsz.y,0.0,dfc*4.0));
float2 bsz = bof*dofpradius*dfc; ds = tex2D(SamplerDepth,coord+poisson32[i]*bsz).x;
float4 sc; sd = tex2D(SamplerColor,coord+poisson32[i]*bsz).a;
[unroll] for ( int i=0; i<32; i++ ) sw = (ds>dep)?1.0:sd;
{ tw += sw;
sc = tex2Dlod(SamplerColor,float4(coord.x res += sc*sw;
+poisson32[i].x*bsz.x,coord.y+poisson32[i].y
*bsz.y,0.0,dfc));
ds = tex2D(SamplerDepth,coord+poisson32[i]*bsz).x;
sd = tex2D(SamplerColor,coord+poisson32[i]*bsz).a;
sw = (ds>dep)?1.0:sd;
tw += sw;
res += sc*sw;
}
res /= tw;
} }
res.a = dfc; res /= tw;
return res;
}
/* nobody here, only one pass is really needed */
float4 PS_DoFBlurV( 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;
float4 res = tex2D(SamplerColor,coord);
res.a = 1.0; res.a = 1.0;
return res; return res;
} }
#else
float4 PS_DoFBlurH( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR float4 PS_DoFBlurH( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
{ {
float2 coord = IN.txcoord.xy; float2 coord = IN.txcoord.xy;
@ -461,12 +442,7 @@ float4 PS_DoFBlurH( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
float bresl = (fixedx>0)?fixedx:ScreenSize.x; float bresl = (fixedx>0)?fixedx:ScreenSize.x;
float bof = (1.0/bresl)*dofbradius; float bof = (1.0/bresl)*dofbradius;
float4 res = float4(0,0,0,0); float4 res = float4(0,0,0,0);
if ( dfc <= 0.0 ) if ( dfc <= dofminblur ) return tex2D(SamplerColor,coord);
{
res = tex2D(SamplerColor,coord);
res.a = dfc;
return res;
}
int i; int i;
float isd, sd, ds, sw, tw = 0; float isd, sd, ds, sw, tw = 0;
isd = dfc; isd = dfc;
@ -493,12 +469,7 @@ float4 PS_DoFBlurV( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
float bresl = (fixedy>0)?fixedy:(ScreenSize.x*ScreenSize.w); float bresl = (fixedy>0)?fixedy:(ScreenSize.x*ScreenSize.w);
float bof = (1.0/bresl)*dofbradius; float bof = (1.0/bresl)*dofbradius;
float4 res = float4(0,0,0,0); float4 res = float4(0,0,0,0);
if ( dfc <= 0.0 ) if ( dfc <= dofminblur ) return tex2D(SamplerColor,coord);
{
res = tex2D(SamplerColor,coord);
res.a = dfc;
return res;
}
int i; int i;
float isd, sd, ds, sw, tw = 0; float isd, sd, ds, sw, tw = 0;
isd = dfc; isd = dfc;
@ -515,7 +486,6 @@ float4 PS_DoFBlurV( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
res.a = 1.0; res.a = 1.0;
return res; return res;
} }
#endif
/* Screen frost shader. Not very realistic either, but looks fine too. */ /* Screen frost shader. Not very realistic either, but looks fine too. */
float2 ScreenFrost( float2 coord ) float2 ScreenFrost( float2 coord )
{ {
@ -543,25 +513,24 @@ float4 PS_FrostPass( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
float2 bresl; float2 bresl;
if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy); if ( (fixedx > 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy);
else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float2 ofs = coord;
if ( frostenable ) ofs = ScreenFrost(ofs);
ofs -= coord;
float4 res; float4 res;
if ( (distcha != 0.0) && (length(ofs) != 0.0) )
{
float2 ofr, ofg, ofb;
ofr = ofs*(1.0-distcha*0.01);
ofg = ofs;
ofb = ofs*(1.0+distcha*0.01);
res = float4(tex2D(SamplerColor,coord+ofr).r,
tex2D(SamplerColor,coord+ofg).g,
tex2D(SamplerColor,coord+ofb).b,1.0);
}
else res = tex2D(SamplerColor,coord+ofs);
if ( frostenable ) 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; float2 nc = coord*(bresl/FROSTSIZE)*frostsize;
float bmp = pow(tex2D(SamplerFrost,nc).x,frostbpow); float bmp = pow(max(0,tex2D(SamplerFrost,nc).x),frostbpow);
float dist = distance(coord,float2(0.5,0.5))*2.0; float dist = distance(coord,float2(0.5,0.5))*2.0;
dist = clamp(pow(dist,frostrpow)*frostrmult+frostrbump,0.0, dist = clamp(pow(dist,frostrpow)*frostrmult+frostrbump,0.0,
1.0)*frostblend; 1.0)*frostblend;
@ -573,6 +542,7 @@ float4 PS_FrostPass( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
if ( EInteriorFactor == 1.0 ) dist *= frostind; if ( EInteriorFactor == 1.0 ) dist *= frostind;
res.rgb *= 1.0+bmp*dist; res.rgb *= 1.0+bmp*dist;
} }
else res = tex2D(SamplerColor,coord);
if ( !focusdisplay ) return res; if ( !focusdisplay ) return res;
float2 fcenter = float2(focuscenter_x,focuscenter_y); float2 fcenter = float2(focuscenter_x,focuscenter_y);
if ( distance(coord,fcenter) < 0.01 ) res.rgb = float3(1,0,0); if ( distance(coord,fcenter) < 0.01 ) res.rgb = float3(1,0,0);
@ -622,7 +592,7 @@ technique WriteFocus
SRGBWRITEENABLE = FALSE; SRGBWRITEENABLE = FALSE;
} }
} }
technique PostProcess technique PostProcess <string UIName="MariENB Bilateral Blur DoF";>
{ {
pass p0 pass p0
{ {
@ -758,3 +728,122 @@ technique PostProcess8
SRGBWRITEENABLE = FALSE; SRGBWRITEENABLE = FALSE;
} }
} }
technique PostProcessG <string UIName="MariENB Gather Blur 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 PostProcessG2
{
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 PostProcessG3
{
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 PostProcessG4
{
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 PostProcessG5
{
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 PostProcessG6
{
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 PostProcessG8
{
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;
}
}

View file

@ -81,7 +81,6 @@ static const float3 ssao_samples_hq[64] =
float3(-0.8919,-0.0384, 0.3360),float3(-0.0144, 0.9775,-0.2105) float3(-0.8919,-0.0384, 0.3360),float3(-0.0144, 0.9775,-0.2105)
}; };
/* For high quality DOF */ /* For high quality DOF */
#ifdef USE_BOKEH
static const float2 poisson32[32] = static const float2 poisson32[32] =
{ {
float2( 0.7284430,-0.1927130),float2( 0.4051600,-0.2312710), float2( 0.7284430,-0.1927130),float2( 0.4051600,-0.2312710),
@ -101,7 +100,6 @@ static const float2 poisson32[32] =
float2( 0.0761715,-0.9631760),float2(-0.9218270, 0.2121210), float2( 0.0761715,-0.9631760),float2(-0.9218270, 0.2121210),
float2(-0.6378530, 0.3053550),float2(-0.8425180, 0.4753000) float2(-0.6378530, 0.3053550),float2(-0.8425180, 0.4753000)
}; };
#endif
/* standard stuff */ /* standard stuff */
float4 ScreenSize; float4 ScreenSize;
float ENightDayFactor; float ENightDayFactor;

View file

@ -619,7 +619,6 @@ bool dofdisable
string UIName = "Disable DOF"; string UIName = "Disable DOF";
string UIWidget = "Checkbox"; string UIWidget = "Checkbox";
> = {false}; > = {false};
#ifndef USE_BOKEH
float dofbfact float dofbfact
< <
string UIName = "DOF Bilateral Factor"; string UIName = "DOF Bilateral Factor";
@ -631,14 +630,12 @@ float dofbradius
string UIWidget = "Spinner"; string UIWidget = "Spinner";
float UIMin = 0.0; float UIMin = 0.0;
> = {1.0}; > = {1.0};
#else
float dofpradius float dofpradius
< <
string UIName = "DOF Gather Blur Radius"; string UIName = "DOF Gather Blur Radius";
string UIWidget = "Spinner"; string UIWidget = "Spinner";
float UIMin = 0.0; float UIMin = 0.0;
> = {6.0}; > = {6.0};
#endif
#ifndef FALLOUT #ifndef FALLOUT
bool dofrelfov bool dofrelfov
< <
@ -673,6 +670,14 @@ float relfovfactor_id
string UIWidget = "Spinner"; string UIWidget = "Spinner";
> = {2.0}; > = {2.0};
#endif #endif
/* 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 bool dofdebug
< <
string UIName = "Debug Depth"; string UIName = "Debug Depth";