diff --git a/enbseries.ini b/enbseries.ini index cb0ab70..ffd9453 100644 --- a/enbseries.ini +++ b/enbseries.ini @@ -8,7 +8,7 @@ EnableLens=false EnableAdaptation=true EnableDepthOfField=true EnableAmbientOcclusion=true -EnableDetailedShadow=true +EnableDetailedShadow=false EnableSunRays=true EnableSunGlare=false [COLORCORRECTION] @@ -18,9 +18,9 @@ Brightness=1.0 GammaCurve=1.0 [NIGHTDAY] DetectorDefaultDay=false -DetectorLevelDay=0.75 -DetectorLevelNight=0.25 -DetectorLevelCurve=1.0 +DetectorLevelDay=0.8 +DetectorLevelNight=0.4 +DetectorLevelCurve=2.0 [ADAPTATION] ForceMinMaxValues=false AdaptationSensitivity=0.2 @@ -63,7 +63,7 @@ AOAmount=1.07 AOAmountInterior=1.05 ILAmount=2.18 ILAmountInterior=2.12 -AOIntensity=0.96 +AOIntensity=0.98 AOIntensityInterior=0.82 AOType=0 AOMixingType=2 @@ -73,33 +73,33 @@ EnableDenoiser=true LightingIntensityDay=1.13 LightingIntensityNight=1.15 LightingIntensityInterior=1.1 -LightingCurveDay=1.14 +LightingCurveDay=1.17 LightingCurveNight=1.05 LightingCurveInterior=1.06 -LightingDesaturationDay=0.05 -LightingDesaturationNight=0.07 +LightingDesaturationDay=0.14 +LightingDesaturationNight=0.1 LightingDesaturationInterior=0.12 -AmbientLightingIntensityDay=0.89 +AmbientLightingIntensityDay=0.75 AmbientLightingIntensityNight=0.62 -AmbientLightingIntensityInterior=1.03 -AmbientLightingCurveDay=1.2 +AmbientLightingIntensityInterior=0.85 +AmbientLightingCurveDay=1.18 AmbientLightingCurveNight=1.06 -AmbientLightingCurveInterior=0.94 +AmbientLightingCurveInterior=1.23 AmbientLightingDesaturationDay=0.08 AmbientLightingDesaturationNight=0.04 AmbientLightingDesaturationInterior=0.02 -FogColorMultiplierDay=1.08 -FogColorMultiplierNight=1.05 -FogColorMultiplierInterior=1.02 -FogColorCurveDay=0.88 -FogColorCurveNight=1.1 -FogColorCurveInterior=0.91 +FogColorMultiplierDay=1.02 +FogColorMultiplierNight=0.91 +FogColorMultiplierInterior=0.95 +FogColorCurveDay=1.11 +FogColorCurveNight=1.04 +FogColorCurveInterior=1.07 [SKY] Enable=true StarsIntensity=1.27 StarsCurve=1.08 CloudsIntensityDay=1.02 -CloudsIntensityNight=0.88 +CloudsIntensityNight=0.89 CloudsCurveDay=0.98 CloudsCurveNight=0.92 CloudsDesaturationDay=0.1 @@ -108,8 +108,8 @@ CloudsEdgeClamp=0.5 CloudsEdgeIntensity=1.0 GradientIntensityDay=1.11 GradientIntensityNight=0.96 -GradientDesaturationDay=0.07 -GradientDesaturationNight=0.04 +GradientDesaturationDay=0.18 +GradientDesaturationNight=0.24 GradientTopIntensityDay=1.08 GradientTopIntensityNight=0.98 GradientTopCurveDay=0.81 @@ -122,19 +122,19 @@ GradientHorizonIntensityDay=1.22 GradientHorizonIntensityNight=1.36 GradientHorizonCurveDay=1.19 GradientHorizonCurveNight=1.24 -SunIntensity=1.66 +SunIntensity=3.23 SunDesaturation=0.0 SunCoronaIntensity=0.001 SunCoronaCurve=1.0 SunCoronaDesaturation=0.0 -MoonIntensity=1.09 -MoonCurve=1.14 +MoonIntensity=0.63 +MoonCurve=0.94 MoonDesaturation=0.0 -MoonCoronaIntensity=0.001 +MoonCoronaIntensity=3.751 [DEPTHOFFIELD] FadeTime=0.4 [SHADOW] DetailedShadowQuality=1 ShadowDesaturation=0.0 [RAYS] -SunRaysMultiplier=0.29 +SunRaysMultiplier=0.36 diff --git a/enbseries/VERSION b/enbseries/VERSION index 92bbac0..57880b7 100644 --- a/enbseries/VERSION +++ b/enbseries/VERSION @@ -1 +1 @@ -2.4.3-1 "Good Old Vanilla" +2.5.0-1 "Cazador Waifu" diff --git a/enbseries/effect.txt.ini b/enbseries/effect.txt.ini index ecc45fe..a8338ed 100644 --- a/enbseries/effect.txt.ini +++ b/enbseries/effect.txt.ini @@ -46,3 +46,17 @@ Chroma Key Depth Vertical Tilt=0.0 Enable Black Bars=false Box Horizontal Ratio=2.39 Box Vertical Ratio=1.0 +Enable Vignette=false +Enable Border Blur=false +Vignette Shape=2 +Vignette Blending Mode=2 +Vignette Contrast=14.299999 +Vignette Intensity=0.93 +Vignette Shift=0.0 +Vignette Color Red=-0.04 +Vignette Color Green=-0.07 +Vignette Color Blue=-0.12 +Border Blur Contrast=2.24 +Border Blur Intensity=1.64 +Border Blur Shift=0.0 +Border Blur Radius=1.0 diff --git a/enbseries/enbbloom.fx.ini b/enbseries/enbbloom.fx.ini index 0b2d450..cab7597 100644 --- a/enbseries/enbbloom.fx.ini +++ b/enbseries/enbbloom.fx.ini @@ -8,10 +8,10 @@ Bloom Contrast Night=1.02 Bloom Contrast Day=1.05 Bloom Contrast Interior Night=1.03 Bloom Contrast Interior Day=1.03 -Bloom Saturation Night=1.19 -Bloom Saturation Day=1.13 -Bloom Saturation Interior Night=1.24 -Bloom Saturation Interior Day=1.24 +Bloom Saturation Night=1.09 +Bloom Saturation Day=1.06 +Bloom Saturation Interior Night=1.13 +Bloom Saturation Interior Day=1.13 Bloom Offset Night=-0.1 Bloom Offset Day=-0.15 Bloom Offset Interior Night=-0.13 @@ -33,10 +33,10 @@ Blue Shift Interior Night Blue=1.0 Blue Shift Interior Day Red=0.6 Blue Shift Interior Day Green=0.3 Blue Shift Interior Day Blue=1.0 -Blue Shift Intensity Night=0.6 -Blue Shift Intensity Day=0.5 -Blue Shift Intensity Interior Night=0.65 -Blue Shift Intensity Interior Day=0.65 +Blue Shift Intensity Night=0.31 +Blue Shift Intensity Day=0.22 +Blue Shift Intensity Interior Night=0.38 +Blue Shift Intensity Interior Day=0.38 Blue Shift Luminance Factor Per-pass=0.41 Blue Shift Color Factor Per-pass=0.9 Enable Anamorphic Bloom=true @@ -56,10 +56,10 @@ Anamorphic Bloom Blue Shift Interior Night Blue=1.0 Anamorphic Bloom Blue Shift Interior Day Red=0.21 Anamorphic Bloom Blue Shift Interior Day Green=0.42 Anamorphic Bloom Blue Shift Interior Day Blue=1.0 -Anamorphic Bloom Blue Shift Intensity Night=1.06 -Anamorphic Bloom Blue Shift Intensity Day=1.88 -Anamorphic Bloom Blue Shift Interior Night=1.79 -Anamorphic Bloom Blue Shift Interior Day=1.79 +Anamorphic Bloom Blue Shift Intensity Night=0.89 +Anamorphic Bloom Blue Shift Intensity Day=0.83 +Anamorphic Bloom Blue Shift Interior Night=0.96 +Anamorphic Bloom Blue Shift Interior Day=0.96 Anamorphic Bloom Contrast Night=1.22 Anamorphic Bloom Contrast Day=1.34 Anamorphic Bloom Contrast Interior Night=1.26 diff --git a/enbseries/enbeffect.fx.ini b/enbseries/enbeffect.fx.ini index 33f4d05..cd5954a 100644 --- a/enbseries/enbeffect.fx.ini +++ b/enbseries/enbeffect.fx.ini @@ -100,11 +100,11 @@ Grading Color Factor Interior Night=-0.1 Grading Color Factor Interior Day=-0.1 Enable HSV Grading=true Grading Saturation Intensity Night=1.23 -Grading Saturation Intensity Day=1.14 +Grading Saturation Intensity Day=1.17 Grading Saturation Intensity Interior Night=1.16 Grading Saturation Intensity Interior Day=1.16 Grading Saturation Contrast Night=1.18 -Grading Saturation Contrast Day=1.08 +Grading Saturation Contrast Day=1.11 Grading Saturation Contrast Interior Night=1.13 Grading Saturation Contrast Interior Day=1.13 Grading Value Intensity Night=0.98 @@ -112,14 +112,14 @@ Grading Value Intensity Day=0.93 Grading Value Intensity Interior Night=0.96 Grading Value Intensity Interior Day=0.96 Grading Value Contrast Night=1.12 -Grading Value Contrast Day=1.18 +Grading Value Contrast Day=1.19 Grading Value Contrast Interior Night=1.06 Grading Value Contrast Interior Day=1.06 Colorize After HSV=true Enable Vanilla Imagespace=true Vanilla Tint Blend=0.97 -Vanilla Vibrance Blend=0.93 -Vanilla Contrast Blend=0.77 +Vanilla Vibrance Blend=0.87 +Vanilla Contrast Blend=0.67 Enable LUT Grading=true LUT Blend Night=0.42 LUT Blend Day=0.35 @@ -132,8 +132,8 @@ Dither Pattern=2 Display Bloom=false Apply Grain Before Tone Mapping=true Tonemapping Method=2 -Tonemap Exposure Night=6.44 -Tonemap Exposure Day=6.259999 +Tonemap Exposure Night=6.45 +Tonemap Exposure Day=6.289999 Tonemap Exposure Interior Night=6.89 Tonemap Exposure Interior Day=6.89 Tonemap Blend Night=1.0 @@ -200,9 +200,9 @@ SweetFX Defog Color Blue Interior Night=1.0 SweetFX Defog Color Red Interior Day=0.0 SweetFX Defog Color Green Interior Day=0.0 SweetFX Defog Color Blue Interior Day=1.0 -Vanilla Tint Contrast=1.11 +Vanilla Tint Contrast=1.1 Vanilla Tint Strength=1.0 -Vanilla Vibrance Contrast=1.16 +Vanilla Vibrance Contrast=1.07 Vanilla Vibrance Strength=1.0 Enable Technicolor=true Technicolor Blend=0.5 diff --git a/enbseries/enbeffectprepass.fx.ini b/enbseries/enbeffectprepass.fx.ini index 1ab6fa3..eb9f3df 100644 --- a/enbseries/enbeffectprepass.fx.ini +++ b/enbseries/enbeffectprepass.fx.ini @@ -23,8 +23,8 @@ Heat Texture Size=8.16 Heat Speed=0.36 Heat Fade Contrast=231.910004 Heat Fade Intensity=0.72 -Heat Fade Offset=-0.61 -Heat Intensity=1.04 +Heat Fade Offset=-0.63 +Heat Intensity=0.64 Heat Contrast=1.18 Heat Time-of-day Contrast=7.73 Heat Always Enable=false @@ -44,8 +44,8 @@ Enable Focus Triangle=true Display Focus Points=false Enable Manual Focus=false Manual Focus Depth=1.0 -Focus Point Center X=0.5 -Focus Point Center Y=0.5 +Focus Point Center X=50.0 +Focus Point Center Y=50.0 Focus Triangle Angle=0.5 Focus Triangle Radius Night=6.0 Focus Triangle Radius Day=10.0 @@ -63,10 +63,10 @@ DOF Intensity Night=481.829987 DOF Intensity Day=449.019989 DOF Intensity Interior Night=496.119995 DOF Intensity Interior Day=496.119995 -DOF Contrast Night=2.42 -DOF Contrast Day=2.9 -DOF Contrast Interior Night=2.62 -DOF Contrast Interior Day=2.62 +DOF Contrast Night=2.93 +DOF Contrast Day=3.33 +DOF Contrast Interior Night=3.08 +DOF Contrast Interior Day=3.08 DOF Shift Night=0.0 DOF Shift Day=0.0 DOF Shift Interior Night=0.0 @@ -103,9 +103,9 @@ 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=false +DOF Fixed Use Cutoff=true Disable DOF=false -DOF Gather Blur Radius=12.0 +DOF Gather Blur Radius=8.0 Debug Depth=false Debug Focus=false Enable Edgevision=false @@ -144,8 +144,8 @@ SSAO Use Less Samples=true SSAO Blur Use Less Samples=true Sharpen Enable=true Sharpen Radius=0.8 -Sharpen Clamp=0.12 -Sharpen Blending=6.0 +Sharpen Clamp=0.1 +Sharpen Blending=8.0 DOF Bilateral Factor=20.0 DOF Blur Radius=8.0 DOF Minimum Blur=0.01 @@ -168,7 +168,7 @@ DOF Fog Blend Day=0.0 DOF Fog Blend Interior Night=0.0 DOF Fog Blend Interior Day=0.0 Use Only Fixed DOF=false -DOF Blur Chromatic Aberration=1.5 +DOF Blur Chromatic Aberration=2.34 Focus Plane Horizontal Tilt Center=0.5 Focus Plane Vertical Tilt Center=0.5 Focus Plane Horizontal Tilt=0.0 @@ -176,3 +176,96 @@ Focus Plane Vertical Tilt=0.0 DOF Fixed Focus Depth=0.0 DOF Fixed Focus Cap=1.0 DOF Fixed Unfocus Depth=0.0 +Enable DOF Post-Blur=true +DOF Post-Blur Radius=1.0 +Enable DOF Highlights=true +DOF Highlight Threshold=0.53 +DOF Highlight Gain=2.32 +DOF Bokeh Blur Radius=1.79 +DOF Bokeh Edge Bias=0.63 +DOF Bokeh Fuzz=0.05 +Heat Factor Night=0.0 +Heat Factor Day=1.17 +Heat Factor Interior Night=0.0 +Heat Factor Interior Day=0.62 +Frost Factor Night=0.0 +Frost Factor Day=0.0 +Frost Factor Interior Night=0.0 +Frost Factor Interior Day=0.0 +Depth Grading Center Depth=0.0 +Depth Grading Contrast Night=126.330002 +Depth Grading Contrast Day=155.559998 +Depth Grading Contrast Interior Night=169.070007 +Depth Grading Contrast Interior Day=169.070007 +Depth Grading Intensity Night=1.27 +Depth Grading Intensity Day=1.15 +Depth Grading Intensity Interior Night=1.29 +Depth Grading Intensity Interior Day=1.29 +Depth Grading Shift Night=-0.64 +Depth Grading Shift Day=-0.73 +Depth Grading Shift Interior Night=-0.9 +Depth Grading Shift Interior Day=-0.9 +Depth Grading Blend Night=1.0 +Depth Grading Blend Day=1.0 +Depth Grading Blend Interior Night=1.0 +Depth Grading Blend Interior Day=1.0 +Enable RGB Grading=true +Grading Intensity Night Red=1.0 +Grading Intensity Night Green=0.96 +Grading Intensity Night Blue=0.88 +Grading Intensity Day Red=1.0 +Grading Intensity Day Green=0.96 +Grading Intensity Day Blue=0.91 +Grading Intensity Interior Night Red=1.0 +Grading Intensity Interior Night Green=0.95 +Grading Intensity Interior Night Blue=0.89 +Grading Intensity Interior Day Red=1.0 +Grading Intensity Interior Day Green=0.95 +Grading Intensity Interior Day Blue=0.89 +Grading Contrast Night Red=1.0 +Grading Contrast Night Green=0.92 +Grading Contrast Night Blue=0.83 +Grading Contrast Day Red=1.0 +Grading Contrast Day Green=0.91 +Grading Contrast Day Blue=0.81 +Grading Contrast Interior Night Red=1.0 +Grading Contrast Interior Night Green=0.92 +Grading Contrast Interior Night Blue=0.81 +Grading Contrast Interior Day Red=1.0 +Grading Contrast Interior Day Green=0.92 +Grading Contrast Interior Day Blue=0.81 +Enable Vibrance Grading=true +Grading Color Night Red=-0.14 +Grading Color Night Green=-0.58 +Grading Color Night Blue=-1.38 +Grading Color Day Red=-0.16 +Grading Color Day Green=-0.39 +Grading Color Day Blue=-1.04 +Grading Color Interior Night Red=-0.16 +Grading Color Interior Night Green=-0.39 +Grading Color Interior Night Blue=-1.38 +Grading Color Interior Day Red=-0.16 +Grading Color Interior Day Green=-0.39 +Grading Color Interior Day Blue=-1.38 +Grading Color Factor Night=-0.2 +Grading Color Factor Day=-0.24 +Grading Color Factor Interior Night=-0.27 +Grading Color Factor Interior Day=-0.27 +Enable HSV Grading=true +Grading Saturation Intensity Night=1.28 +Grading Saturation Intensity Day=1.31 +Grading Saturation Intensity Interior Night=1.26 +Grading Saturation Intensity Interior Day=1.26 +Grading Saturation Contrast Night=1.19 +Grading Saturation Contrast Day=1.12 +Grading Saturation Contrast Interior Night=1.24 +Grading Saturation Contrast Interior Day=1.24 +Grading Value Intensity Night=0.42 +Grading Value Intensity Day=0.97 +Grading Value Intensity Interior Night=0.63 +Grading Value Intensity Interior Day=0.63 +Grading Value Contrast Night=0.6 +Grading Value Contrast Day=0.43 +Grading Value Contrast Interior Night=0.57 +Grading Value Contrast Interior Day=0.57 +Colorize After HSV=true diff --git a/enbseries/menbeffectfilters.fx b/enbseries/menbeffectfilters.fx index 502c5ee..0633707 100644 --- a/enbseries/menbeffectfilters.fx +++ b/enbseries/menbeffectfilters.fx @@ -391,12 +391,10 @@ float3 GradingGame( float3 res ) float3 GradingLUT( float3 res ) { /* - gross hacks were needed to "fix" the way direct3d interpolates on - sampling, and to manually interpolate on the blue channel - - this could be alleviated if I could have all the LUTs as 64 separate - volume maps, but PS 3.0 has a limit of 16 samplers and I think ENB - can't load volume maps anyway. + Gross hacks were needed to "fix" the way direct3d interpolates on + sampling, and to manually interpolate on the blue channel. + This could be removed if I could have the LUTs as volume maps, but + I think ENB doesn't support those. */ #ifdef LUTMODE_LEGACY float3 tcol = clamp(res,0.08,0.92); @@ -405,17 +403,17 @@ float3 GradingLUT( float3 res ) float2 lc2 = float2(tcol.r/16.0+ceil(tcol.b*16.0)/16.0,tcol.g/64.0); float dec = (ceil(tcol.b*16.0)==16.0)?(0.0):frac(tcol.b*16.0); /* night samples */ - float3 tcl1_n = tex2D(SamplerLUT,lc1+float2(0,clut_n/64.0)); - float3 tcl2_n = tex2D(SamplerLUT,lc2+float2(0,clut_n/64.0)); + float3 tcl1_n = tex2D(SamplerLUT,lc1+float2(0,clut_n/64.0)).rgb; + float3 tcl2_n = tex2D(SamplerLUT,lc2+float2(0,clut_n/64.0)).rgb; /* day samples */ - float3 tcl1_d = tex2D(SamplerLUT,lc1+float2(0,clut_d/64.0)); - float3 tcl2_d = tex2D(SamplerLUT,lc2+float2(0,clut_d/64.0)); + float3 tcl1_d = tex2D(SamplerLUT,lc1+float2(0,clut_d/64.0)).rgb; + float3 tcl2_d = tex2D(SamplerLUT,lc2+float2(0,clut_d/64.0)).rgb; /* interior night samples */ - float3 tcl1_in = tex2D(SamplerLUT,lc1+float2(0,clut_in/64.0)); - float3 tcl2_in = tex2D(SamplerLUT,lc2+float2(0,clut_in/64.0)); + float3 tcl1_in = tex2D(SamplerLUT,lc1+float2(0,clut_in/64.0)).rgb; + float3 tcl2_in = tex2D(SamplerLUT,lc2+float2(0,clut_in/64.0)).rgb; /* interior day samples */ - float3 tcl1_id = tex2D(SamplerLUT,lc1+float2(0,clut_id/64.0)); - float3 tcl2_id = tex2D(SamplerLUT,lc2+float2(0,clut_id/64.0)); + float3 tcl1_id = tex2D(SamplerLUT,lc1+float2(0,clut_id/64.0)).rgb; + float3 tcl2_id = tex2D(SamplerLUT,lc2+float2(0,clut_id/64.0)).rgb; #else #ifdef LUTMODE_16 float3 tcol = clamp(res,0.08,0.92); @@ -432,17 +430,17 @@ float3 GradingLUT( float3 res ) float dec = (ceil(tcol.b*64.0)==64.0)?(0.0):frac(tcol.b*64.0); #endif /* night samples */ - float3 tcl1_n = tex2D(SamplerLUTN,lc1); - float3 tcl2_n = tex2D(SamplerLUTN,lc2); + float3 tcl1_n = tex2D(SamplerLUTN,lc1).rgb; + float3 tcl2_n = tex2D(SamplerLUTN,lc2).rgb; /* day samples */ - float3 tcl1_d = tex2D(SamplerLUTD,lc1); - float3 tcl2_d = tex2D(SamplerLUTD,lc2); + float3 tcl1_d = tex2D(SamplerLUTD,lc1).rgb; + float3 tcl2_d = tex2D(SamplerLUTD,lc2).rgb; /* interior night samples */ - float3 tcl1_in = tex2D(SamplerLUTIN,lc1); - float3 tcl2_in = tex2D(SamplerLUTIN,lc2); + float3 tcl1_in = tex2D(SamplerLUTIN,lc1).rgb; + float3 tcl2_in = tex2D(SamplerLUTIN,lc2).rgb; /* interior day samples */ - float3 tcl1_id = tex2D(SamplerLUTID,lc1); - float3 tcl2_id = tex2D(SamplerLUTID,lc2); + float3 tcl1_id = tex2D(SamplerLUTID,lc1).rgb; + float3 tcl2_id = tex2D(SamplerLUTID,lc2).rgb; #endif float3 tcl1 = tod_ind(tcl1); float3 tcl2 = tod_ind(tcl2); diff --git a/enbseries/menbeffectinternals.fx b/enbseries/menbeffectinternals.fx index 03decea..488ca8c 100644 --- a/enbseries/menbeffectinternals.fx +++ b/enbseries/menbeffectinternals.fx @@ -40,6 +40,7 @@ float4 Timer; float ENightDayFactor; float EInteriorFactor; float EBloomAmount; +float4 WeatherAndTime; /* samplers and textures */ texture2D texs0; texture2D texs1; diff --git a/enbseries/menbeffectsettings.fx b/enbseries/menbeffectsettings.fx index dadb5be..0cc0b20 100644 --- a/enbseries/menbeffectsettings.fx +++ b/enbseries/menbeffectsettings.fx @@ -169,6 +169,16 @@ float amax_id > = {1.0}; /* tone mapping */ string str_tonemap = "Tone Mapping"; +/* + algorithms: + -1 : Disabled + 0 : Linear + 1 : Reinhard + 2 : Uncharted 2 + 3 : Hejl Dawson + 4 : Haarm-Peter Duiker + 5 : SweetFX +*/ int tmapenable < string UIName = "Tonemapping Method"; diff --git a/enbseries/menbextrafilters.fx b/enbseries/menbextrafilters.fx index f2e5339..190acbe 100644 --- a/enbseries/menbextrafilters.fx +++ b/enbseries/menbextrafilters.fx @@ -215,6 +215,69 @@ float4 PS_Shift( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR res.a = 1.0; return res; } +/* vignette filtering */ +float4 PS_Vignette( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR +{ + float2 coord = IN.txcoord.xy; + float4 res = tex2D(SamplerColor,coord); + float4 vigdata = float4(0,0,0,0); + if ( vigshape == 0 ) + { + /* circular vignette */ + float2 uv = ((coord-0.5)*float2(1.0,ScreenSize.w))*2.0; + vigdata.a = dot(uv,uv); + vigdata.a = clamp(pow(vigdata.a,vigpow)*vigmul+vigbump, + 0.0,1.0); + vigdata.rgb = float3(vigcolor_r,vigcolor_g,vigcolor_b); + } + else if ( vigshape == 1 ) + { + /* box vignette */ + float2 uv = coord.xy*(1.0-coord.yx)*4.0; + vigdata.a = 1.0-(uv.x*uv.y); + vigdata.a = clamp(pow(vigdata.a,vigpow)*vigmul+vigbump, + 0.0,1.0); + vigdata.rgb = float3(vigcolor_r,vigcolor_g,vigcolor_b); + } + else + { + /* textured vignette (rgb = color, alpha = blend) */ + vigdata = tex2D(SamplerVignette,coord); + } + /* apply blur */ + if ( bblurenable ) + { + float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); + float bfact = clamp(pow(max(vigdata.a,0.0),bblurpow)*bblurmul + +bblurbump,0.0,1.0); + float2 bof = (1.0/bresl)*bblurradius*bfact; + res.rgb *= 0; + int i,j; + [unroll] for ( i=-3; i<4; i++ ) [unroll] for ( j=-3; j<4; j++ ) + res.rgb += gauss4[abs(i)]*gauss4[abs(j)] + *tex2D(SamplerColor,coord+float2(i,j)*bof); + } + /* apply color */ + if ( vigenable ) + { + float3 outcol; + if ( vigmode == 0 ) + outcol = vigdata.rgb; + else if ( vigmode == 1 ) + outcol = res.rgb+vigdata.rgb; + else if ( vigmode == 2 ) + outcol = res.rgb*vigdata.rgb; + res.rgb = lerp(res.rgb,outcol,vigdata.a); + } + return clamp(res,0.0,1.0); +} +/* TODO paint filter */ +/*float4 PS_Oily( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR +{ + float2 coord = IN.txcoord.xy; + float4 res = tex2D(SamplerColor,coord); + return res; +}*/ /* ultimate super-cinematic immersive black bars */ float4 PS_Cinematic( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR { @@ -302,6 +365,24 @@ technique PostProcess4 } } technique PostProcess5 +{ + pass p0 + { + VertexShader = compile vs_3_0 VS_Pass(); + PixelShader = compile ps_3_0 PS_Vignette(); + DitherEnable = FALSE; + ZEnable = FALSE; + CullMode = NONE; + ALPHATESTENABLE = FALSE; + SEPARATEALPHABLENDENABLE = FALSE; + AlphaBlendEnable = FALSE; + StencilEnable = FALSE; + FogEnable = FALSE; + SRGBWRITEENABLE = FALSE; + } +} +/* Paint will go between these two */ +technique PostProcess6 { pass p0 { @@ -318,7 +399,7 @@ technique PostProcess5 SRGBWRITEENABLE = FALSE; } } -technique PostProcess6 +technique PostProcess7 { pass p0 { diff --git a/enbseries/menbextrainternals.fx b/enbseries/menbextrainternals.fx index 7656730..1141662 100644 --- a/enbseries/menbextrainternals.fx +++ b/enbseries/menbextrainternals.fx @@ -4,6 +4,12 @@ Part of MariENB, the personal ENB of Marisa. Released under the GNU GPLv3 (or later). */ +/* gaussian blur matrices */ +/* radius: 4, std dev: 1.5 */ +static const float gauss4[4] = +{ + 0.270682, 0.216745, 0.111281, 0.036633 +}; /* dithering threshold maps don't touch unless you know what you're doing @@ -52,6 +58,14 @@ texture2D texVGA < string ResourceName = "menbvgalut.png"; >; +texture2D texVignette +< +#ifdef VIGNETTE_DDS + string ResourceName = "menbvignette.dds"; +#else + string ResourceName = "menbvignette.png"; +#endif +>; sampler2D SamplerColor = sampler_state { Texture = ; @@ -124,6 +138,18 @@ sampler2D SamplerVGA = sampler_state MaxMipLevel = 0; MipMapLodBias = 0; }; +sampler2D SamplerVignette = sampler_state +{ + Texture = ; + MinFilter = LINEAR; + MagFilter = LINEAR; + MipFilter = NONE; + AddressU = Clamp; + AddressV = Clamp; + SRGBTexture = FALSE; + MaxMipLevel = 0; + MipMapLodBias = 0; +}; /* whatever */ struct VS_OUTPUT_POST { diff --git a/enbseries/menbextrasettings.fx b/enbseries/menbextrasettings.fx index 68e72c1..da1c8ef 100644 --- a/enbseries/menbextrasettings.fx +++ b/enbseries/menbextrasettings.fx @@ -260,3 +260,86 @@ float boxv string UIWidget = "Spinner"; float UIMin = 1.0; > = {1.0}; +/* vignette */ +string str_vignette = "Vignette with border blur"; +bool vigenable +< + string UIName = "Enable Vignette"; + string UIWidget = "Checkbox"; +> = {false}; +bool bblurenable +< + string UIName = "Enable Border Blur"; + string UIWidget = "Checkbox"; +> = {false}; +/* 0 = circle, 1 = box, 2 = texture */ +int vigshape +< + string UIName = "Vignette Shape"; + string UIWidget = "Spinner"; + int UIMin = 0; + int UIMax = 2; +> = {0}; +/* 0 = overwrite, 1 = add, 2 = multiply */ +int vigmode +< + string UIName = "Vignette Blending Mode"; + string UIWidget = "Spinner"; + int UIMin = 0; + int UIMax = 2; +> = {0}; +float vigpow +< + string UIName = "Vignette Contrast"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float vigmul +< + string UIName = "Vignette Intensity"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float vigbump +< + string UIName = "Vignette Shift"; + string UIWidget = "Spinner"; +> = {0.0}; +float vigcolor_r +< + string UIName = "Vignette Color Red"; + string UIWidget = "Spinner"; +> = {0.0}; +float vigcolor_g +< + string UIName = "Vignette Color Green"; + string UIWidget = "Spinner"; +> = {0.0}; +float vigcolor_b +< + string UIName = "Vignette Color Blue"; + string UIWidget = "Spinner"; +> = {0.0}; +float bblurpow +< + string UIName = "Border Blur Contrast"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float bblurmul +< + string UIName = "Border Blur Intensity"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float bblurbump +< + string UIName = "Border Blur Shift"; + string UIWidget = "Spinner"; +> = {0.0}; +float bblurradius +< + string UIName = "Border Blur Radius"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; diff --git a/enbseries/menbglobaldefs.fx b/enbseries/menbglobaldefs.fx index 461396a..b73ac03 100644 --- a/enbseries/menbglobaldefs.fx +++ b/enbseries/menbglobaldefs.fx @@ -9,21 +9,9 @@ /* are we running on fallout 3 / new vegas or on skyrim? */ #define FALLOUT /* time of day and interior interpolation */ -#ifdef FALLOUT -#define tod_ind(x) lerp(lerp(x##_n,x##_d,ENightDayFactor),\ - (x##_in+x##_id)*0.5,EInteriorFactor) -#else #define tod_ind(x) lerp(lerp(x##_n,x##_d,ENightDayFactor),\ lerp(x##_in,x##_id,ENightDayFactor),EInteriorFactor) -#endif /* weather macros */ -#define WT_TEMPERATE 0.0 -#define WT_HOT 1.0 -#define WT_COLD 2.0 -/* new additions */ -#define WT_TEMPERATE_FOG 3.0 -#define WT_COLD_FOG 4.0 -#define WT_HOT_FOG 5.0 #define weatherfactor(id) ((WeatherAndTime.x==id)?(WeatherAndTime.y==id)\ ?(1.0):(WeatherAndTime.z):(WeatherAndTime.y==id)\ ?(1.0-WeatherAndTime.z):(0.0)) @@ -39,19 +27,46 @@ ?(1.0-WeatherAndTime.z) -> return inverse transition :(0.0) -> otherwise return 0 */ +/* temperate no fog */ +#define WT_NEUTRAL 0.0 +#define WT_GENERAL 1.0 +#define WT_FOREST 2.0 +#define WT_DARK 3.0 +/* cold no fog */ +#define WT_COLD 4.0 +#define WT_SPOOKY 5.0 +/* warm no fog */ +#define WT_WARM 6.0 +/* temperate fog */ +#define WT_GENERALFOG 7.0 +#define WT_GENERALRAIN 8.0 +#define WT_FORESTFOG 9.0 +#define WT_FORESTRAIN 10.0 +#define WT_DARKFOG 11.0 +#define WT_DARKRAIN 12.0 +/* cold fog */ +#define WT_SPOOKYFOG 13.0 +#define WT_COLDFOG 14.0 +/* warm fog */ +#define WT_WARMFOG 15.0 +/* temperature and fog interpolation macros */ +#define istemperate(x) (((x>=0.0)&&(x<=3.0))||((x>=7.0)&&(x<=12.0))) +#define iscold(x) (((x>=4.0)&&(x<=5.0))||((x>=13.0)&&(x<=14.0))) +#define iswarm(x) ((x==6.0)||(x==15.0)) +#define isfog(x) ((x>=7.0)&&(x<=15.0)) +#define temperatefactor (istemperate(WeatherAndTime.x)\ + ?istemperate(WeatherAndTime.y)?(1.0):(WeatherAndTime.z)\ + :istemperate(WeatherAndTime.y)?(1.0-WeatherAndTime.z):(0.0)) +#define coldfactor (iscold(WeatherAndTime.x)\ + ?iscold(WeatherAndTime.y)?(1.0):(WeatherAndTime.z)\ + :iscold(WeatherAndTime.y)?(1.0-WeatherAndTime.z):(0.0)) +#define warmfactor (iswarm(WeatherAndTime.x)\ + ?iswarm(WeatherAndTime.y)?(1.0):(WeatherAndTime.z)\ + :iswarm(WeatherAndTime.y)?(1.0-WeatherAndTime.z):(0.0)) +#define fogfactor (isfog(WeatherAndTime.x)\ + ?isfog(WeatherAndTime.y)?(1.0):(WeatherAndTime.z)\ + :isfog(WeatherAndTime.y)?(1.0-WeatherAndTime.z):(0.0)) /* asset definitions */ -/* ascii art font */ -#define FONT_WIDTH 8 -#define FONT_HEIGHT 4096 -#define GLYPH_WIDTH 8 -#define GLYPH_HEIGHT 16 -#define FONT_LEVELS 255 -/* - aspect correction for certain overlays - uncommented : the textures are 1:1 and must be corrected - commented : the textures are 16:9 or whatever ratio you use -*/ -//#define ASPECT_LENSDIRT /* texture sizes */ #define NOISESIZE 256.0 #define HEATSIZE 1024.0 @@ -62,6 +77,6 @@ #define LUTMODE_64 /* some textures can be provided as DDS rather than PNG to save space */ //#define HEAT_DDS -//#define LENSDIRT_DDS //#define FROST_DDS -//#define FROSTBUMP_DDS \ No newline at end of file +//#define FROSTBUMP_DDS +//#define VIGNETTE_DDS \ No newline at end of file diff --git a/enbseries/menbprepassfilters.fx b/enbseries/menbprepassfilters.fx index a806631..f293828 100644 --- a/enbseries/menbprepassfilters.fx +++ b/enbseries/menbprepassfilters.fx @@ -16,12 +16,84 @@ VS_OUTPUT_POST VS_Pass( VS_INPUT_POST IN ) #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)) -/* these are znear/zfar values for Skyrim, but MAY match Fallout too */ +float3 rgb2hsv( float3 c ) +{ + float4 K = float4(0.0,-1.0/3.0,2.0/3.0,-1.0); + float4 p = (c.g 0) && (fixedy > 0) ) bresl = float2(fixedx,fixedy); else bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); float2 nc = coord*(bresl/HEATSIZE)*heatsize; @@ -189,10 +258,9 @@ float2 DistantHeat( float2 coord ) float2 ofs = tex2D(SamplerHeat,nc+ts).xy; ofs = (ofs-0.5)*2.0; ofs *= pow(length(ofs),heatpow); - if ( !heatalways ) ofs *= todpow + if ( !heatalways ) ofs *= max(tod_ind(heatfactor),0.0) #ifndef FALLOUT - *max(0.0,(weatherfactor(WT_HOT)+weatherfactor(WT_HOT_FOG)) - -(weatherfactor(WT_COLD)+weatherfactor(WT_COLD_FOG))) + *max(0.0,warmfactor-coldfactor) #endif ; odep = tex2D(SamplerDepth,coord+ofs*heatstrength*distfade*0.01).x; @@ -288,9 +356,9 @@ float4 PS_SSAOBlurV( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR float4 PS_ReadFocus( VS_OUTPUT_POST IN ) : COLOR { if ( dofdisable ) return 0.0; - if ( focuscircle < 0 ) return focusmanualvalue; + if ( focuscircle < 0 ) return focusmanualvalue*0.001; float focusmax = tod_ind(focusmax); - float2 fcenter = float2(focuscenter_x,focuscenter_y); + 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 ) @@ -390,10 +458,7 @@ float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR if ( doffixedonly ) dfc *= 0; dfc += lerp(0.0,dfu,doffixedunfocusblend); #ifndef FALLOUT - if ( doffogenable ) - dfc += (weatherfactor(WT_TEMPERATE_FOG) - +weatherfactor(WT_COLD_FOG)+weatherfactor(WT_HOT_FOG)) - *lerp(0.0,dfog,doffogblend); + if ( doffogenable ) dfc += fogfactor*lerp(0.0,dfog,doffogblend); #endif dfc *= lerp(1.0,dff,doffixedfocusblend); dfc = saturate(dfc); @@ -401,6 +466,36 @@ float4 PS_DoFPrepass( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR 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 { @@ -420,18 +515,15 @@ float4 PS_DoFGather( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR if ( dfc <= dofminblur ) return tex2D(SamplerColor,coord); float4 res = float4(0,0,0,0); float dep = tex2D(SamplerDepth,coord).x; - float ds, sw, tw = 0; float2 bsz = bof*dofpradius*dfc; - float4 sc; + float4 sc, ds, sd, sw, tw = float4(0,0,0,0); [unroll] for ( int i=0; i<32; i++ ) { - sc = float4(tex2D(SamplerColor,coord+poisson32[i]*bsz*(1 - +dofpcha*0.1)).r,tex2D(SamplerColor,coord+poisson32[i] - *bsz).g,tex2D(SamplerColor,coord+poisson32[i]*bsz*(1 - -dofpcha*0.1)).b,tex2D(SamplerColor,coord+poisson32[i] - *bsz).a); - ds = tex2D(SamplerDepth,coord+poisson32[i]*bsz).x; - sw = (ds>dep)?1.0:sc.a; + 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; } @@ -459,29 +551,31 @@ float4 PS_DoFBorkeh( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR */ if ( dfc <= dofminblur ) return res; float dep = tex2D(SamplerDepth,coord).x; - float sr = dofpradius*dfc; - float w = max(0,(1/(sr*sr+1))*luminance(res.rgb+0.01)); - res *= w; - float tw = w; - float2 bsz = bof*sr; - float4 pc; - float sc, ds; - [unroll] for ( int i=0; i<32; i++ ) + 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++ ) { - pc = float4(tex2D(SamplerColor,coord+poisson32[i]*bsz*(1 - +dofpcha*0.1)).r,tex2D(SamplerColor,coord+poisson32[i] - *bsz).g,tex2D(SamplerColor,coord+poisson32[i]*bsz*(1 - -dofpcha*0.1)).b,tex2D(SamplerColor,coord+poisson32[i] - *bsz).a); - ds = tex2D(SamplerDepth,coord+poisson32[i]*bsz).x; - sc = abs(pc.a*dofpradius); - if ( sr < 0.0 ) sc = max(abs(sr),sc); - w = (1.0/(pow(sc,2)+1))*luminance(pc.rgb+0.01); - w *= saturate(1-smoothstep(sc,sc*1.1,length(poisson32[i]*bsz) - *abs(sr))); - w *= (ds>dep)?1.0:sc; - res += pc*w; - tw += w; + rsamples = i*dofbsamples; + [unroll] for ( int j=0; jdep)?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; @@ -497,7 +591,7 @@ float4 PS_DoFPostBlur( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR 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; + float2 bof = (1.0/bresl)*dofpbradius; float2 ofs[16] = { float2(1.0,1.0), float2(-1.0,-1.0), @@ -513,13 +607,13 @@ float4 PS_DoFPostBlur( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR 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 ) @@ -531,13 +625,11 @@ float2 ScreenFrost( float2 coord ) float2 ofs = tex2D(SamplerFrostBump,nc).xy; ofs = (ofs-0.5)*2.0; ofs *= pow(length(ofs),frostpow)*froststrength; - if ( !frostalways ) ofs *= + if ( !frostalways ) ofs *= max(0.0,tod_ind(frostfactor)) #ifndef FALLOUT - max(0.0,(weatherfactor(WT_COLD)+weatherfactor(WT_COLD_FOG)) - -(weatherfactor(WT_HOT)+weatherfactor(WT_HOT_FOG)))* + *max(0.0,coldfactor-warmfactor) #endif - (1.0-ENightDayFactor)*frostnight; - if ( EInteriorFactor == 1.0 ) ofs *= frostind; + ; 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; @@ -570,14 +662,11 @@ float4 PS_FrostPass( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR 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 *= + if ( !frostalways ) dist *= max(0.0,tod_ind(frostfactor)) #ifndef FALLOUT - max(0.0,(weatherfactor(WT_COLD) - +weatherfactor(WT_COLD_FOG))+(weatherfactor(WT_HOT) - +weatherfactor(WT_HOT_FOG)))* + *max(0.0,coldfactor-warmfactor) #endif - (1.0-ENightDayFactor)*frostnight; - if ( EInteriorFactor == 1.0 ) dist *= frostind; + ; res.rgb *= 1.0+bmp*dist; } else res = tex2D(SamplerColor,coord); @@ -594,7 +683,7 @@ float4 PS_FrostPass( VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR } return res; } - float2 fcenter = float2(focuscenter_x,focuscenter_y); + 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); @@ -780,7 +869,7 @@ technique PostProcess8 } } -technique PostProcessB +technique PostProcessB { pass p0 { diff --git a/enbseries/menbprepasssettings.fx b/enbseries/menbprepasssettings.fx index 2e3529e..3f36bc1 100644 --- a/enbseries/menbprepasssettings.fx +++ b/enbseries/menbprepasssettings.fx @@ -159,12 +159,26 @@ float heatpow string UIWidget = "Spinner"; float UIMin = 0.0; > = {1.2}; -float heattodpow +float heatfactor_n < - string UIName = "Heat Time-of-day Contrast"; + string UIName = "Heat Factor Night"; string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {1.2}; +> = {1.0}; +float heatfactor_d +< + string UIName = "Heat Factor Day"; + string UIWidget = "Spinner"; +> = {1.0}; +float heatfactor_in +< + string UIName = "Heat Factor Interior Night"; + string UIWidget = "Spinner"; +> = {1.0}; +float heatfactor_id +< + string UIName = "Heat Factor Interior Day"; + string UIWidget = "Spinner"; +> = {1.0}; bool heatalways < string UIName = "Heat Always Enable"; @@ -222,18 +236,26 @@ float frostsize string UIWidget = "Spinner"; float UIMin = 0.0; > = {1.0}; -float frostind +float frostfactor_n < - string UIName = "Frost Indoor Factor"; + string UIName = "Frost Factor Night"; string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.05}; -float frostnight +> = {1.0}; +float frostfactor_d < - string UIName = "Frost Night Factor"; + string UIName = "Frost Factor Day"; string UIWidget = "Spinner"; - float UIMin = 0.0; -> = {0.25}; +> = {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"; @@ -267,23 +289,23 @@ float focusmanualvalue string UIName = "Manual Focus Depth"; string UIWidget = "Checkbox"; float UIMin = 0.0; - float UIMax = 1.0; -> = {0.5}; + 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 = 1.0; -> = {0.5}; + float UIMax = 100.0; +> = {50.0}; float focuscenter_y < string UIName = "Focus Point Center Y"; string UIWidget = "Spinner"; float UIMin = 0.0; - float UIMax = 1.0; -> = {0.5}; + float UIMax = 100.0; +> = {50.0}; float focuscircleangle < string UIName = "Focus Triangle Angle"; @@ -739,6 +761,13 @@ float doffogblend_id 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 @@ -753,15 +782,61 @@ bool doffixedonly > = {false}; float dofpradius < - string UIName = "DOF Blur Radius"; + 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 < @@ -1056,3 +1131,429 @@ float sharpblend string UIWidget = "Spinner"; float UIMin = 0.0; > = {1.2}; +/* depth-based colour grading suite */ +string str_grade = "Depth Color Grading Suite"; +float dgradedfoc +< + string UIName = "Depth Grading Center Depth"; + string UIWidget = "Spinner"; + float UIMin = 0.0; + float UIMax = 1000.0; +> = {500.0}; +float dgradedpow_n +< + string UIName = "Depth Grading Contrast Night"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradedpow_d +< + string UIName = "Depth Grading Contrast Day"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradedpow_in +< + string UIName = "Depth Grading Contrast Interior Night"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradedpow_id +< + string UIName = "Depth Grading Contrast Interior Day"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradedmul_n +< + string UIName = "Depth Grading Intensity Night"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradedmul_d +< + string UIName = "Depth Grading Intensity Day"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradedmul_in +< + string UIName = "Depth Grading Intensity Interior Night"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradedmul_id +< + string UIName = "Depth Grading Intensity Interior Day"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradedbump_n +< + string UIName = "Depth Grading Shift Night"; + string UIWidget = "Spinner"; +> = {0.0}; +float dgradedbump_d +< + string UIName = "Depth Grading Shift Day"; + string UIWidget = "Spinner"; +> = {0.0}; +float dgradedbump_in +< + string UIName = "Depth Grading Shift Interior Night"; + string UIWidget = "Spinner"; +> = {0.0}; +float dgradedbump_id +< + string UIName = "Depth Grading Shift Interior Day"; + string UIWidget = "Spinner"; +> = {0.0}; +float dgradedblend_n +< + string UIName = "Depth Grading Blend Night"; + string UIWidget = "Spinner"; + float UIMin = 0.0; + float UIMax = 1.0; +> = {1.0}; +float dgradedblend_d +< + string UIName = "Depth Grading Blend Day"; + string UIWidget = "Spinner"; + float UIMin = 0.0; + float UIMax = 1.0; +> = {1.0}; +float dgradedblend_in +< + string UIName = "Depth Grading Blend Interior Night"; + string UIWidget = "Spinner"; + float UIMin = 0.0; + float UIMax = 1.0; +> = {1.0}; +float dgradedblend_id +< + string UIName = "Depth Grading Blend Interior Day"; + string UIWidget = "Spinner"; + float UIMin = 0.0; + float UIMax = 1.0; +> = {1.0}; +bool dgradeenable1 +< + string UIName = "Enable RGB Grading"; + string UIWidget = "Checkbox"; +> = {false}; +/* color component multipliers */ +float dgrademul_r_n +< + string UIName = "Grading Intensity Night Red"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgrademul_g_n +< + string UIName = "Grading Intensity Night Green"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgrademul_b_n +< + string UIName = "Grading Intensity Night Blue"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgrademul_r_d +< + string UIName = "Grading Intensity Day Red"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgrademul_g_d +< + string UIName = "Grading Intensity Day Green"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgrademul_b_d +< + string UIName = "Grading Intensity Day Blue"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgrademul_r_in +< + string UIName = "Grading Intensity Interior Night Red"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgrademul_g_in +< + string UIName = "Grading Intensity Interior Night Green"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgrademul_b_in +< + string UIName = "Grading Intensity Interior Night Blue"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgrademul_r_id +< + string UIName = "Grading Intensity Interior Day Red"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgrademul_g_id +< + string UIName = "Grading Intensity Interior Day Green"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgrademul_b_id +< + string UIName = "Grading Intensity Interior Day Blue"; + string UIWidget = "Spinner"; +> = {1.0}; +/* color component contrasts */ +float dgradepow_r_n +< + string UIName = "Grading Contrast Night Red"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradepow_g_n +< + string UIName = "Grading Contrast Night Green"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradepow_b_n +< + string UIName = "Grading Contrast Night Blue"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradepow_r_d +< + string UIName = "Grading Contrast Day Red"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradepow_g_d +< + string UIName = "Grading Contrast Day Green"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradepow_b_d +< + string UIName = "Grading Contrast Day Blue"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradepow_r_in +< + string UIName = "Grading Contrast Interior Night Red"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradepow_g_in +< + string UIName = "Grading Contrast Interior Night Green"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradepow_b_in +< + string UIName = "Grading Contrast Interior Night Blue"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradepow_r_id +< + string UIName = "Grading Contrast Interior Day Red"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradepow_g_id +< + string UIName = "Grading Contrast Interior Day Green"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float dgradepow_b_id +< + string UIName = "Grading Contrast Interior Day Blue"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +/* colorization factors */ +bool dgradeenable2 +< + string UIName = "Enable Vibrance Grading"; + string UIWidget = "Checkbox"; +> = {false}; +float dgradecol_r_n +< + string UIName = "Grading Color Night Red"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradecol_g_n +< + string UIName = "Grading Color Night Green"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradecol_b_n +< + string UIName = "Grading Color Night Blue"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradecol_r_d +< + string UIName = "Grading Color Day Red"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradecol_g_d +< + string UIName = "Grading Color Day Green"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradecol_b_d +< + string UIName = "Grading Color Day Blue"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradecol_r_in +< + string UIName = "Grading Color Interior Night Red"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradecol_g_in +< + string UIName = "Grading Color Interior Night Green"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradecol_b_in +< + string UIName = "Grading Color Interior Night Blue"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradecol_r_id +< + string UIName = "Grading Color Interior Day Red"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradecol_g_id +< + string UIName = "Grading Color Interior Day Green"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradecol_b_id +< + string UIName = "Grading Color Interior Day Blue"; + string UIWidget = "Spinner"; +> = {1.0}; +/* blend factor for colorization (negative values are quite fancy) */ +float dgradecolfact_n +< + string UIName = "Grading Color Factor Night"; + string UIWidget = "Spinner"; +> = {0.0}; +float dgradecolfact_d +< + string UIName = "Grading Color Factor Day"; + string UIWidget = "Spinner"; +> = {0.0}; +float dgradecolfact_in +< + string UIName = "Grading Color Factor Interior Night"; + string UIWidget = "Spinner"; +> = {0.0}; +float dgradecolfact_id +< + string UIName = "Grading Color Factor Interior Day"; + string UIWidget = "Spinner"; +> = {0.0}; +/* HSV grading */ +bool dgradeenable3 +< + string UIName = "Enable HSV Grading"; + string UIWidget = "Checkbox"; +> = {false}; +/* saturation multiplier */ +float dgradesatmul_n +< + string UIName = "Grading Saturation Intensity Night"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradesatmul_d +< + string UIName = "Grading Saturation Intensity Day"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradesatmul_in +< + string UIName = "Grading Saturation Intensity Interior Night"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradesatmul_id +< + string UIName = "Grading Saturation Intensity Interior Day"; + string UIWidget = "Spinner"; +> = {1.0}; +/* saturation power */ +float dgradesatpow_n +< + string UIName = "Grading Saturation Contrast Night"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradesatpow_d +< + string UIName = "Grading Saturation Contrast Day"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradesatpow_in +< + string UIName = "Grading Saturation Contrast Interior Night"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradesatpow_id +< + string UIName = "Grading Saturation Contrast Interior Day"; + string UIWidget = "Spinner"; +> = {1.0}; +/* value multiplier */ +float dgradevalmul_n +< + string UIName = "Grading Value Intensity Night"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradevalmul_d +< + string UIName = "Grading Value Intensity Day"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradevalmul_in +< + string UIName = "Grading Value Intensity Interior Night"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradevalmul_id +< + string UIName = "Grading Value Intensity Interior Day"; + string UIWidget = "Spinner"; +> = {1.0}; +/* value power */ +float dgradevalpow_n +< + string UIName = "Grading Value Contrast Night"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradevalpow_d +< + string UIName = "Grading Value Contrast Day"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradevalpow_in +< + string UIName = "Grading Value Contrast Interior Night"; + string UIWidget = "Spinner"; +> = {1.0}; +float dgradevalpow_id +< + string UIName = "Grading Value Contrast Interior Day"; + string UIWidget = "Spinner"; +> = {1.0}; +bool dcolorizeafterhsv +< + string UIName = "Colorize After HSV"; + string UIWidget = "Checkbox"; +> = {true}; \ No newline at end of file diff --git a/enbseries/menbvignette.png b/enbseries/menbvignette.png new file mode 100644 index 0000000..a05f8fc Binary files /dev/null and b/enbseries/menbvignette.png differ