diff --git a/enbseries.ini b/enbseries.ini index 4edc16d..378f844 100644 --- a/enbseries.ini +++ b/enbseries.ini @@ -20,6 +20,7 @@ EnableSkylighting=true EnableSubSurfaceScattering=true EnableWater=true EnableReflections=true +EnablePuddleReflections=true [COLORCORRECTION] UseProceduralCorrection=true Brightness=1.0 @@ -290,6 +291,22 @@ SkyAmbientBottomIntensityDusk=0.1 SkyAmbientBottomIntensityNight=0.08 SkyAmbientBottomIntensityInteriorDay=0.08 SkyAmbientBottomIntensityInteriorNight=0.03 +SpecularAmountMultiplierDawn=1.0 +SpecularAmountMultiplierSunrise=1.0 +SpecularAmountMultiplierDay=1.0 +SpecularAmountMultiplierSunset=1.0 +SpecularAmountMultiplierDusk=1.0 +SpecularAmountMultiplierNight=1.0 +SpecularAmountMultiplierInteriorDay=1.0 +SpecularAmountMultiplierInteriorNight=1.0 +SpecularPowerMultiplierDawn=1.0 +SpecularPowerMultiplierSunrise=1.0 +SpecularPowerMultiplierDay=1.0 +SpecularPowerMultiplierSunset=1.0 +SpecularPowerMultiplierDusk=1.0 +SpecularPowerMultiplierNight=1.0 +SpecularPowerMultiplierInteriorDay=1.0 +SpecularPowerMultiplierInteriorNight=1.0 [SSAO_SSIL] UseIndirectLighting=true SamplingQuality=1 @@ -350,14 +367,14 @@ SunColorFilterDusk=1, 1, 1 SunColorFilterNight=1, 1, 1 SunColorFilterInteriorDay=1, 1, 1 SunColorFilterInteriorNight=1, 1, 1 -DistanceColorMultiplierDawn=1.0 -DistanceColorMultiplierSunrise=1.0 -DistanceColorMultiplierDay=1.0 -DistanceColorMultiplierSunset=1.0 -DistanceColorMultiplierDusk=1.0 -DistanceColorMultiplierNight=1.0 -DistanceColorMultiplierInteriorDay=1.0 -DistanceColorMultiplierInteriorNight=1.0 +DistanceColorMultiplierDawn=0.43 +DistanceColorMultiplierSunrise=0.51 +DistanceColorMultiplierDay=0.68 +DistanceColorMultiplierSunset=0.47 +DistanceColorMultiplierDusk=0.34 +DistanceColorMultiplierNight=0.2 +DistanceColorMultiplierInteriorDay=0.6 +DistanceColorMultiplierInteriorNight=0.31 VerticalColorMultiplierDawn=1.0 VerticalColorMultiplierSunrise=1.0 VerticalColorMultiplierDay=1.0 @@ -438,4 +455,7 @@ AmbientMinLevelNight=0.54 AmbientMinLevelInteriorDay=0.66 AmbientMinLevelInteriorNight=0.51 [REFLECTIONS] -Quality=2 +Quality=1 +[WEATHER] +EnableMultipleWeathers=false +EnableLocationWeather=false diff --git a/enbseries/VERSION b/enbseries/VERSION index fd149b2..260fdde 100644 --- a/enbseries/VERSION +++ b/enbseries/VERSION @@ -1 +1 @@ -3.5.3 "Don't Ask Me For Anything Ever Again" +3.6.0 "Ibuki's Giant Tiddies" diff --git a/enbseries/_locationweather.ini b/enbseries/_locationweather.ini new file mode 100644 index 0000000..9799319 --- /dev/null +++ b/enbseries/_locationweather.ini @@ -0,0 +1,3 @@ +//example usage +//[0000003C] - WorldSpaceID +//13163=d4886 - first is LocationID, second is WeatherID (Riverwood with rainy weather) \ No newline at end of file diff --git a/enbseries/enbadaptation.fx b/enbseries/enbadaptation.fx index c2a8545..e9dbe82 100644 --- a/enbseries/enbadaptation.fx +++ b/enbseries/enbadaptation.fx @@ -1,6 +1,6 @@ /* enbadaptation.fx : MariENB3 eye adaptation shader. - (C)2016-2019 Marisa Kirisame, UnSX Team. + (C)2016-2020 Marisa Kirisame, UnSX Team. Part of MariENB3, the personal ENB of Marisa for Fallout 4. Released under the GNU GPLv3 (or later). */ diff --git a/enbseries/enbbloom.fx b/enbseries/enbbloom.fx index 8ecb260..8964743 100644 --- a/enbseries/enbbloom.fx +++ b/enbseries/enbbloom.fx @@ -1,6 +1,6 @@ /* enbbloom.fx : MariENB3 bloom shader. - (C)2016-2019 Marisa Kirisame, UnSX Team. + (C)2016-2020 Marisa Kirisame, UnSX Team. Part of MariENB3, the personal ENB of Marisa for Fallout 4. Released under the GNU GPLv3 (or later). */ diff --git a/enbseries/enbdepthoffield.fx b/enbseries/enbdepthoffield.fx index ced2a5d..0441c53 100644 --- a/enbseries/enbdepthoffield.fx +++ b/enbseries/enbdepthoffield.fx @@ -1,6 +1,6 @@ /* enbdepthoffield.fx : MariENB3 prepass shaders. - (C)2016-2019 Marisa Kirisame, UnSX Team. + (C)2016-2020 Marisa Kirisame, UnSX Team. Part of MariENB3, the personal ENB of Marisa for Fallout 4. Released under the GNU GPLv3 (or later). */ diff --git a/enbseries/enbeffect.fx b/enbseries/enbeffect.fx index e69f5d5..c1733e6 100644 --- a/enbseries/enbeffect.fx +++ b/enbseries/enbeffect.fx @@ -1,6 +1,6 @@ /* enbeffect.fx : MariENB3 base shader. - (C)2016-2019 Marisa Kirisame, UnSX Team. + (C)2016-2020 Marisa Kirisame, UnSX Team. Part of MariENB3, the personal ENB of Marisa for Fallout 4. Released under the GNU GPLv3 (or later). */ diff --git a/enbseries/enbeffectpostpass.fx b/enbseries/enbeffectpostpass.fx index e35684d..a020b1a 100644 --- a/enbseries/enbeffectpostpass.fx +++ b/enbseries/enbeffectpostpass.fx @@ -1,6 +1,6 @@ /* enbeffectpostpass.fx : MariENB3 extra shader. - (C)2016-2019 Marisa Kirisame, UnSX Team. + (C)2016-2020 Marisa Kirisame, UnSX Team. Part of MariENB3, the personal ENB of Marisa for Fallout 4. Released under the GNU GPLv3 (or later). */ @@ -401,7 +401,87 @@ float hsval_m float UIMin = -1.0; float UIMax = 1.0; > = {0.0}; -/* colour balance */ +/* retrofx */ +string str_b = "RetroFX"; +bool benable +< + string UIName = "Enable RetroFX"; + string UIWidget = "Checkbox"; +> = {false}; +float bresx +< + string UIName = "RetroFX Emulted Width"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {0.0}; +float bresy +< + string UIName = "RetroFX Emulted Height"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {0.0}; +float bsaturation +< + string UIName = "RetroFX Saturation Modifier"; + string UIWidget = "Spinner"; +> = {1.0}; +float bgamma +< + string UIName = "RetroFX Contrast Modifier"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {1.0}; +float bdbump_r +< + string UIName = "RetroFX Dither Offset Red"; + string UIWidget = "Spinner"; +> = {0.0}; +float bdbump_g +< + string UIName = "RetroFX Dither Offset Green"; + string UIWidget = "Spinner"; +> = {0.0}; +float bdbump_b +< + string UIName = "RetroFX Dither Offset Blue"; + string UIWidget = "Spinner"; +> = {0.0}; +float bdmult_r +< + string UIName = "RetroFX Dither Range Red"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {0.0}; +float bdmult_g +< + string UIName = "RetroFX Dither Range Green"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {0.0}; +float bdmult_b +< + string UIName = "RetroFX Dither Range Blue"; + string UIWidget = "Spinner"; + float UIMin = 0.0; +> = {0.0}; +int bpal +< + string UIName = "RetroFX Palette"; + string UIWidget = "Spinner"; + int UIMin = 0; + int UIMax = 34; +> = {0}; +/* needed so people know which palette is which because this stupid thing has no combo widget like Reshade */ +bool bpaldebug +< + string UIName = "RetroFX Display Palette Label"; + string UIWidget = "Checkbox"; +> = {false}; +bool mwatermark +< + string UIName = "Show MariENB Watermark"; + string UIWidget = "Checkbox"; +> = {false}; /* gaussian blur matrices */ /* radius: 4, std dev: 1.5 */ @@ -422,7 +502,22 @@ Texture2D TextureVignette string ResourceName = "menbvignette.png"; #endif >; - +Texture2D TextureLogo +< + string ResourceName = "menblogo.png"; +>; +Texture2D TexturePAL +< + string ResourceName = "menbpal.png"; +>; +Texture2D TexturePALNames +< + string ResourceName = "menbpaltext.png"; +>; +Texture2D TextureDither +< + string ResourceName = "menbdither.png"; +>; SamplerState Sampler { Filter = MIN_MAG_MIP_LINEAR; @@ -437,6 +532,13 @@ SamplerState SamplerB AddressV = Border; MaxLOD = 0; }; +SamplerState SamplerN +{ + Filter = MIN_MAG_MIP_POINT; + AddressU = Wrap; + AddressV = Wrap; + MaxLOD = 0; +}; struct VS_INPUT_POST { @@ -690,6 +792,75 @@ float4 PS_Cinematic( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target return res; } +/* RetroFX */ +float4 ReducePrepass( in float4 col, in float2 coord ) +{ + float3 hsv = rgb2hsv(col.rgb); + hsv.y = clamp(hsv.y*bsaturation,0.0,1.0); + hsv.z = pow(max(hsv.z,0.0),bgamma); + col.rgb = hsv2rgb(saturate(hsv)); + col.rgb += float3(bdbump_r,bdbump_g,bdbump_b) + +TextureDither.Sample(SamplerN,coord/8.0).x + *float3(bdmult_r,bdmult_g,bdmult_b); + col.rgb = saturate(col.rgb); + return col; +} + +float4 ReducePAL( in float4 color, in float2 coord ) +{ + float4 dac = clamp(ReducePrepass(color,coord),0.0,63.0/64.0); + float2 lc = float2((dac.r+bpal)/64.0,dac.g/64.0+floor(dac.b*64.0)/64.0); + return TexturePAL.Sample(SamplerN,lc); +} + +float4 PS_RetroRockets( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) + : SV_Target +{ + float2 coord = IN.txcoord.xy; + float4 res = TextureColor.Sample(Sampler,coord); + if ( !benable ) return res; + float2 rresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w); + float2 bresl = rresl; + if ( (bresx <= 0.0) || (bresy <= 0.0) ) bresl = rresl; + else + { + if ( bresx <= 1.0 ) bresl.x = rresl.x*bresx; + else bresl.x = bresx; + if ( bresy <= 1.0 ) bresl.y = rresl.y*bresy; + else bresl.y = bresy; + } + float2 sresl = rresl/bresl; + float2 ncoord = coord; + ncoord = floor(ncoord*bresl)/bresl; + if ( (bresx <= 0.0) || (bresy <= 0.0) ) ncoord = coord; + res = TextureColor.Sample(Sampler,ncoord); + res = ReducePAL(res,(coord*rresl)/sresl); + res.a = 1.0; + if ( !bpaldebug ) return res; + float2 scl = rresl/float2(256,1024); + float2 ocrd = (coord*scl)*.25; + if ( (ocrd.x < 1.0) && (ocrd.y < 1.0/64.0) ) + { + float4 label = TexturePALNames.Sample(SamplerN,ocrd+float2(0.0,bpal/64.0)); + res.rgb = lerp(res.rgb,label.rgb,label.a); + } + return res; +} + +/* Logo */ +float4 PS_Watermark( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target +{ + float2 coord = IN.txcoord.xy; + float4 res = TextureColor.Sample(Sampler,coord); + if ( !mwatermark ) return res; + float2 wscale; + wscale.x = 2.0; + wscale.y = 4.0*ScreenSize.w; + float4 logo = TextureLogo.Sample(Sampler,coord*wscale-float2(0.49,0.51)*wscale); + res.rgb = lerp(res.rgb,logo.rgb,logo.a); + return res; +} + #ifdef WITH_SMAA /* begin SMAA integration code */ @@ -874,6 +1045,22 @@ technique11 ExtraFilters8 SetPixelShader(CompileShader(ps_5_0,PS_Cinematic())); } } +technique11 ExtraFilters9 +{ + pass p0 + { + SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); + SetPixelShader(CompileShader(ps_5_0,PS_RetroRockets())); + } +} +technique11 ExtraFilters10 +{ + pass p0 + { + SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); + SetPixelShader(CompileShader(ps_5_0,PS_Watermark())); + } +} #else technique11 ExtraFilters { @@ -915,4 +1102,20 @@ technique11 ExtraFilters4 SetPixelShader(CompileShader(ps_5_0,PS_Cinematic())); } } +technique11 ExtraFilters5 +{ + pass p0 + { + SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); + SetPixelShader(CompileShader(ps_5_0,PS_RetroRockets())); + } +} +technique11 ExtraFilters6 +{ + pass p0 + { + SetVertexShader(CompileShader(vs_5_0,VS_PostProcess())); + SetPixelShader(CompileShader(ps_5_0,PS_Watermark())); + } +} #endif diff --git a/enbseries/enbeffectpostpass.fx.ini b/enbseries/enbeffectpostpass.fx.ini index 6c7d735..b3535b7 100644 --- a/enbseries/enbeffectpostpass.fx.ini +++ b/enbseries/enbeffectpostpass.fx.ini @@ -62,3 +62,17 @@ Blue Value=0.0 Magenta Hue=0.0 Magenta Saturation=0.0 Magenta Value=0.0 +Enable RetroFX=false +RetroFX Emulted Width=0.5 +RetroFX Emulted Height=0.5 +RetroFX Saturation Modifier=1.0 +RetroFX Contrast Modifier=1.0 +RetroFX Dither Offset Red=0.0 +RetroFX Dither Offset Green=0.0 +RetroFX Dither Offset Blue=0.0 +RetroFX Dither Range Red=0.05 +RetroFX Dither Range Green=0.05 +RetroFX Dither Range Blue=0.05 +RetroFX Palette=10 +RetroFX Display Palette Label=false +Show MariENB Watermark=false diff --git a/enbseries/menbdither.png b/enbseries/menbdither.png new file mode 100644 index 0000000..6b32e3e Binary files /dev/null and b/enbseries/menbdither.png differ diff --git a/enbseries/menbglobaldefs.fx b/enbseries/menbglobaldefs.fx index a573cd0..075ab12 100644 --- a/enbseries/menbglobaldefs.fx +++ b/enbseries/menbglobaldefs.fx @@ -1,6 +1,6 @@ /* menbglobaldefs.fx : MariENB3 global shared code. - (C)2016-2019 Marisa Kirisame, UnSX Team. + (C)2016-2020 Marisa Kirisame, UnSX Team. Part of MariENB3, the personal ENB of Marisa for Fallout 4. Released under the GNU GPLv3 (or later). */ diff --git a/enbseries/menblogo.png b/enbseries/menblogo.png new file mode 100644 index 0000000..91db6ae Binary files /dev/null and b/enbseries/menblogo.png differ diff --git a/enbseries/menbpal.png b/enbseries/menbpal.png new file mode 100644 index 0000000..603b04b Binary files /dev/null and b/enbseries/menbpal.png differ diff --git a/enbseries/menbpaltext.png b/enbseries/menbpaltext.png new file mode 100644 index 0000000..d12a8ff Binary files /dev/null and b/enbseries/menbpaltext.png differ