1
Fork 0

MariENB FO4 3.0.5a

This commit is contained in:
Marisa the Magician 2019-04-07 17:47:39 +02:00
commit 0ac5ca02ac
7 changed files with 132 additions and 120 deletions

View file

@ -29,10 +29,10 @@ DuskDuration=2.0
NightTime=1.0
[ADAPTATION]
AdaptationSensitivity=0.65
AdaptationTime=3.0
ForceMinMaxValues=true
AdaptationMin=0.05
AdaptationSensitivity=0.35
AdaptationTime=2.2
ForceMinMaxValues=false
AdaptationMin=0.0
AdaptationMax=1.0
[DEPTHOFFIELD]
@ -69,7 +69,7 @@ GradientIntensitySunrise=0.92
GradientIntensityDay=1.37
GradientIntensitySunset=0.870001
GradientIntensityDusk=0.750001
GradientIntensityNight=0.94
GradientIntensityNight=0.970001
GradientIntensityInteriorDay=1.32
GradientIntensityInteriorNight=0.79
GradientDesaturationDawn=0.0
@ -86,7 +86,7 @@ GradientTopIntensitySunrise=0.82
GradientTopIntensityDay=1.430001
GradientTopIntensitySunset=0.86
GradientTopIntensityDusk=0.75
GradientTopIntensityNight=0.54
GradientTopIntensityNight=0.63
GradientTopIntensityInteriorDay=1.39
GradientTopIntensityInteriorNight=0.52
GradientTopCurveDawn=0.87
@ -94,7 +94,7 @@ GradientTopCurveSunrise=0.82
GradientTopCurveDay=0.54
GradientTopCurveSunset=0.81
GradientTopCurveDusk=0.89
GradientTopCurveNight=0.68
GradientTopCurveNight=0.74
GradientTopCurveInteriorDay=0.53
GradientTopCurveInteriorNight=0.67
GradientTopColorFilterDawn=0.953, 0.208, 0.753
@ -102,16 +102,16 @@ GradientTopColorFilterSunrise=0.918, 0.349, 0.188
GradientTopColorFilterDay=0.882, 0.502, 0.263
GradientTopColorFilterSunset=0.91, 0.286, 0.188
GradientTopColorFilterDusk=0.855, 0.165, 0.463
GradientTopColorFilterNight=0.447, 0.231, 0.773
GradientTopColorFilterNight=0.486, 0.443, 0.561
GradientTopColorFilterInteriorDay=0.984, 0.537, 0.216
GradientTopColorFilterInteriorNight=0.616, 0.251, 0.933
GradientTopColorFilterInteriorNight=0.596, 0.506, 0.678
GradientMiddleIntensityDawn=0.7
GradientMiddleIntensitySunrise=1.02
GradientMiddleIntensityDay=1.25
GradientMiddleIntensitySunset=1.02
GradientMiddleIntensityDusk=0.77
GradientMiddleIntensityNight=0.7
GradientMiddleIntensityNight=0.82
GradientMiddleIntensityInteriorDay=1.27
GradientMiddleIntensityInteriorNight=0.64
GradientMiddleCurveDawn=0.94
@ -119,7 +119,7 @@ GradientMiddleCurveSunrise=0.81
GradientMiddleCurveDay=0.69
GradientMiddleCurveSunset=0.88
GradientMiddleCurveDusk=0.9
GradientMiddleCurveNight=0.63
GradientMiddleCurveNight=0.77
GradientMiddleCurveInteriorDay=0.72
GradientMiddleCurveInteriorNight=0.64
GradientMiddleColorFilterDawn=0.824, 0.533, 0.8
@ -127,24 +127,24 @@ GradientMiddleColorFilterSunrise=0.898, 0.392, 0.239
GradientMiddleColorFilterDay=0.816, 0.529, 0.4
GradientMiddleColorFilterSunset=0.882, 0.318, 0.129
GradientMiddleColorFilterDusk=0.827, 0.302, 0.529
GradientMiddleColorFilterNight=0.616, 0.424, 0.855
GradientMiddleColorFilterNight=0.62, 0.506, 0.773
GradientMiddleColorFilterInteriorDay=1, 0.435, 0.106
GradientMiddleColorFilterInteriorNight=0.529, 0.306, 0.847
GradientMiddleColorFilterInteriorNight=0.549, 0.431, 0.722
GradientHorizonIntensityDawn=1.6
GradientHorizonIntensitySunrise=1.63
GradientHorizonIntensityDawn=1.42
GradientHorizonIntensitySunrise=1.57
GradientHorizonIntensityDay=1.240001
GradientHorizonIntensitySunset=1.56
GradientHorizonIntensityDusk=1.69
GradientHorizonIntensityNight=1.36
GradientHorizonIntensityDusk=1.26
GradientHorizonIntensityNight=1.13
GradientHorizonIntensityInteriorDay=1.25
GradientHorizonIntensityInteriorNight=1.39
GradientHorizonCurveDawn=0.44
GradientHorizonCurveDawn=0.63
GradientHorizonCurveSunrise=0.4
GradientHorizonCurveDay=0.36
GradientHorizonCurveSunset=0.44
GradientHorizonCurveDusk=0.46
GradientHorizonCurveNight=0.57
GradientHorizonCurveDusk=0.63
GradientHorizonCurveNight=0.92
GradientHorizonCurveInteriorDay=0.33
GradientHorizonCurveInteriorNight=0.65
GradientHorizonColorFilterDawn=0.741, 0.576, 0.62
@ -152,9 +152,9 @@ GradientHorizonColorFilterSunrise=0.925, 0.635, 0.416
GradientHorizonColorFilterDay=0.906, 0.467, 0.263
GradientHorizonColorFilterSunset=0.82, 0.471, 0.294
GradientHorizonColorFilterDusk=0.749, 0.396, 0.357
GradientHorizonColorFilterNight=0.388, 0.294, 0.906
GradientHorizonColorFilterNight=0.557, 0.608, 0.722
GradientHorizonColorFilterInteriorDay=0.961, 0.486, 0.247
GradientHorizonColorFilterInteriorNight=0.357, 0.212, 0.949
GradientHorizonColorFilterInteriorNight=0.522, 0.557, 0.639
CloudsIntensityDawn=0.15
CloudsIntensitySunrise=0.7
@ -284,7 +284,7 @@ AmbientLightingIntensityInteriorNight=0.83
UseIndirectLighting=true
ResolutionScale=0.5
SourceTexturesScale=0.5
SamplingQuality=2
SamplingQuality=1
SamplingRange=0.3
AOIntensity=1.65
AOIntensityInterior=1.35

View file

@ -1,13 +1,23 @@
/* This shader intentionally left unchanged */
/*
enbadaptation.fx : MariENB3 eye adaptation shader.
(C)2016 Marisa Kirisame, UnSX Team.
Part of MariENB3, the personal ENB of Marisa for Fallout 4.
Released under the GNU GPLv3 (or later).
*/
#include "menbglobaldefs.fx"
float4 AdaptationParameters;
Texture2D TextureCurrent;
Texture2D TexturePrevious;
SamplerState Sampler0
{
Filter = MIN_MAG_MIP_POINT;
Filter = MIN_MAG_MIP_LINEAR;
AddressU = Clamp;
AddressV = Clamp;
};
struct VS_INPUT_POST
{
float3 pos : POSITION;
@ -18,86 +28,65 @@ struct VS_OUTPUT_POST
float4 pos : SV_POSITION;
float2 txcoord0 : TEXCOORD0;
};
VS_OUTPUT_POST VS_Quad(VS_INPUT_POST IN,
uniform float sizeX, uniform float sizeY)
VS_OUTPUT_POST VS_Quad( VS_INPUT_POST IN )
{
VS_OUTPUT_POST OUT;
float4 pos;
pos.xyz = IN.pos.xyz;
pos.w = 1.0;
OUT.pos = pos;
float2 offset;
offset.x = sizeX;
offset.y = sizeY;
OUT.txcoord0.xy = IN.txcoord.xy+offset.xy;
OUT.pos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0);
OUT.txcoord0.xy = IN.txcoord.xy;
return OUT;
}
float4 PS_Downsample(VS_OUTPUT_POST IN, float4 v0 : SV_Position0) : SV_Target
/* helper functions */
/* photometric */
#define luminance(x) dot(x,float3(0.2126,0.7152,0.0722))
/* CCIR601 */
//#define luminance(x) dot(x,float3(0.299,0.587,0.114))
float4 PS_Downsample( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float4 res;
float2 pos, coord;
float4 curr = 0.0, currmax = 0.0;
const float scale = 1.0/16.0, step = 1.0/16.0, halfstep = 0.5/16.0;
pos.x = -0.5+halfstep;
for (int x=0; x<16; x++)
{
pos.y = -0.5+halfstep;
for (int y=0; y<16; y++)
{
coord = pos.xy*scale;
float4 tempcurr = TextureCurrent.Sample(Sampler0,
IN.txcoord0.xy+coord.xy);
currmax = max(currmax,tempcurr);
curr += tempcurr;
pos.y += step;
}
pos.x += step;
}
curr /= 256.0;
res = curr;
res = max(res.x,max(res.y,res.z));
float2 coord = IN.txcoord0.xy;
float ssz = 1.0/16.0;
float4 res = float4(0,0,0,0);
int x, y;
[unroll] for ( y=-8; y<8; y++ ) [unroll] for ( x=-8; x<8; x++ )
res += TextureCurrent.Sample(Sampler0,coord+float2(x,y)*ssz);
res /= 256.0;
res = luminance(res.rgb);
res.w = 1.0;
return res;
}
float4 PS_Adaptation(VS_OUTPUT_POST IN, float4 v0 : SV_Position0) : SV_Target
{
float4 res;
float prev = TexturePrevious.Sample(Sampler0,IN.txcoord0.xy).x;
float2 pos;
float curr = 0.0, currmax = 0.0;
const float step = 1.0/16.0, halfstep = 0.5/16.0;
pos.x = halfstep;
for (int x=0; x<16; x++)
float2 coord = IN.txcoord0.xy;
float prev = TexturePrevious.Sample(Sampler0,coord).x;
float ssz = 1.0/16.0;
float4 res = float4(0,0,0,0);
float smpmax = 0.0, smp;
int x, y;
[unroll] for ( y=-8; y<8; y++ ) [unroll] for ( x=-8; x<8; x++ )
{
pos.y = halfstep;
for (int y=0; y<16; y++)
{
float tempcurr = TextureCurrent.Sample(Sampler0,
IN.txcoord0.xy+pos.xy).x;
currmax = max(currmax,tempcurr);
curr += tempcurr;
pos.y += step;
}
pos.x += step;
smp = TextureCurrent.Sample(Sampler0,coord+float2(x,y)*ssz).x;
smpmax = max(smpmax,smp);
res += smp;
}
curr /= 256.0;
curr = lerp(curr,currmax,AdaptationParameters.z);
res = lerp(prev,curr,AdaptationParameters.w);
res = max(res,0.001);
res = min(res,16384.0);
float valmax, valcut;
valmax = max(res.x,max(res.y,res.z));
valcut = max(valmax,AdaptationParameters.x);
valcut = min(valcut,AdaptationParameters.y);
res *= valcut/(valmax+0.000000001);
res /= 256.0;
res = lerp(res,smpmax,AdaptationParameters.z);
res = lerp(prev,res,AdaptationParameters.w);
res = clamp(res,0.0,16384.0);
float vclip = clamp(res.x,AdaptationParameters.x,
AdaptationParameters.y);
res *= vclip/(res+0.000000001);
res.w = 1.0;
return res;
}
technique11 Downsample
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad(0.0,0.0)));
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_Downsample()));
}
}
@ -105,7 +94,7 @@ technique11 Draw
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad(0.0,0.0)));
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_Adaptation()));
}
}

View file

@ -624,7 +624,7 @@ float4 PS_PostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
float4 PS_SPostPass( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
{
float2 coord = IN.txcoord0.xy;
float4 res = bloommixs*RenderTarget32.Sample(Sampler2,coord);
float4 res = bloommixs*RenderTarget128.Sample(Sampler2,coord);
res.rgb = clamp(res.rgb,0.0,32768.0);
res.a = 1.0;
if ( !dirtenable ) return res;
@ -704,6 +704,23 @@ technique11 BloomSimplePass6 <string RenderTarget="RenderTarget32";>
}
technique11 BloomSimplePass7
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget128,128.0)));
}
}
technique11 BloomSimplePass8 <string RenderTarget="RenderTarget128";>
{
pass p0
{
SetVertexShader(CompileShader(vs_5_0,VS_Quad()));
SetPixelShader(CompileShader(ps_5_0,PS_VerticalBlur(TextureColor,128.0,3.0)));
}
}
technique11 BloomSimplePass9
{
pass p0
{
@ -711,7 +728,7 @@ technique11 BloomSimplePass7
SetPixelShader(CompileShader(ps_5_0,PS_HorizontalBlur(RenderTarget32,32.0)));
}
}
technique11 BloomSimplePass8 <string RenderTarget="RenderTarget32";>
technique11 BloomSimplePass10 <string RenderTarget="RenderTarget32";>
{
pass p0
{
@ -720,7 +737,7 @@ technique11 BloomSimplePass8 <string RenderTarget="RenderTarget32";>
}
}
technique11 BloomSimplePass9
technique11 BloomSimplePass11
{
pass p0
{

View file

@ -1,42 +1,42 @@
[ENBBLOOM.FX]
TECHNIQUE=1
Bloom Intensity Night=1.08
Bloom Intensity Day=1.13
Bloom Intensity Interior=1.11
Bloom Contrast Night=1.13
Bloom Contrast Day=1.19
Bloom Contrast Interior=1.15
Bloom Saturation Night=0.89
Bloom Intensity Night=0.51
Bloom Intensity Day=0.43
Bloom Intensity Interior=0.46
Bloom Contrast Night=0.92
Bloom Contrast Day=0.95
Bloom Contrast Interior=0.93
Bloom Saturation Night=0.87
Bloom Saturation Day=0.77
Bloom Saturation Interior=0.84
Bloom Offset Night=-0.23
Bloom Offset Night=-0.28
Bloom Offset Day=-0.44
Bloom Offset Interior=-0.38
Bloom Intensity Cap Night=2.0
Bloom Intensity Cap Day=2.0
Bloom Intensity Cap Interior=2.0
Bloom Intensity Cap Night=1.0
Bloom Intensity Cap Day=1.0
Bloom Intensity Cap Interior=1.0
Bloom Blur Radius=1.0
Blue Shift Night=0.294, 0.424, 0.859
Blue Shift Day=0.22, 0.537, 0.855
Blue Shift Interior=0.337, 0.525, 0.878
Blue Shift Intensity Night=0.94
Blue Shift Intensity Night=0.97
Blue Shift Intensity Day=0.72
Blue Shift Intensity Interior=0.88
Blue Shift Luminance Factor Per-pass=0.31
Blue Shift Color Factor Per-pass=0.79
Enable Anamorphic Bloom=true
Anamorphic Bloom Blend Night=0.94
Anamorphic Bloom Blend Day=0.4
Anamorphic Bloom Blend Interior=0.67
Anamorphic Bloom Blend Night=0.68
Anamorphic Bloom Blend Day=0.34
Anamorphic Bloom Blend Interior=0.44
Anamorphic Bloom Blue Shift Night=0.553, 0.404, 0.851
Anamorphic Bloom Blue Shift Day=0.424, 0.384, 0.831
Anamorphic Bloom Blue Shift Interior=0.537, 0.475, 0.89
Anamorphic Bloom Blue Shift Intensity Night=2.31
Anamorphic Bloom Blue Shift Intensity Day=1.59
Anamorphic Bloom Blue Shift Intensity Interior=1.86
Anamorphic Bloom Contrast Night=0.92
Anamorphic Bloom Contrast Night=0.95
Anamorphic Bloom Contrast Day=1.0
Anamorphic Bloom Contrast Interior=0.96
Anamorphic Bloom Contrast Interior=0.97
Anamorphic Bloom Radius Multiplier=1.0
Bloom Intensity Interior Night=1.33
Bloom Intensity Interior Day=1.26
@ -80,12 +80,12 @@ Anamorphic Bloom Blue Shift Interior Night=1.86
Anamorphic Bloom Blue Shift Interior Day=1.86
Anamorphic Bloom Contrast Interior Night=1.12
Anamorphic Bloom Contrast Interior Day=1.22
Bloom Pass 1 Blend=0.84
Bloom Pass 2 Blend=0.68
Bloom Pass 3 Blend=0.59
Bloom Pass 4 Blend=0.76
Bloom Pass 5 Blend=1.07
Bloom Pass 6 Blend=1.68
Bloom Pass 1 Blend=0.13
Bloom Pass 2 Blend=0.24
Bloom Pass 3 Blend=0.36
Bloom Pass 4 Blend=0.52
Bloom Pass 5 Blend=0.69
Bloom Pass 6 Blend=1.0
Enable Lens Dirt=true
Dirt Pass 1 Blend=0.03
Dirt Pass 2 Blend=0.12
@ -95,7 +95,7 @@ Dirt Pass 5 Blend=0.67
Dirt Pass 6 Blend=3.66
Dirt Contrast=0.92
Dirt Factor=2.07
Bloom Blur Radius X=1.92
Bloom Blur Radius Y=1.08
Bloom Single Pass Blend=0.37
Dirt Single Pass Blend=0.71
Bloom Blur Radius X=1.0
Bloom Blur Radius Y=1.0
Bloom Single Pass Blend=0.29
Dirt Single Pass Blend=1.13

View file

@ -107,7 +107,7 @@ SSAO Fade Intensity Night=10.5
SSAO Fade Intensity Day=12.5
SSAO Fade Intensity Interior=11.5
SSAO Intensity=1.2
SSAO Contrast=0.75
SSAO Contrast=0.65
SSAO Blending=0.8
SSAO Blur=true
SSAO Bilateral Factor=1500.0

View file

@ -398,7 +398,11 @@ bool bloomdebug
string UIName = "Display Bloom";
string UIWidget = "Checkbox";
> = {false};
bool adaptdebug
<
string UIName = "Display Adaptation";
string UIWidget = "Checkbox";
> = {false};
/*
dithering threshold maps
@ -753,7 +757,7 @@ float4 PS_Draw( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
/* Insert MariENB filters here */
float2 coord = IN.txcoord0.xy;
if ( bloomdebug ) res = TextureBloom.Sample(Sampler1,Params01[4].zw
*IN.txcoord0.xy)*ENBParams01.x;
*coord)*ENBParams01.x;
if ( tmapenable ) res.rgb = Tonemap(res.rgb);
if ( gradeenable1 ) res.rgb = GradingRGB(res.rgb);
if ( colorizeafterhsv )
@ -768,6 +772,7 @@ float4 PS_Draw( VS_OUTPUT_POST IN, float4 v0 : SV_Position0 ) : SV_Target
}
if ( lutenable ) res.rgb = GradingLUT(res.rgb);
if ( ne ) res.rgb = FilmGrain(res.rgb,coord);
if ( adaptdebug ) res.rgb = TextureAdaptation.Sample(Sampler1,coord).x;
if ( dodither ) res.rgb = Dither(res.rgb,coord);
res.rgb = max(0,res.rgb);
res.a = 1.0;

View file

@ -140,3 +140,4 @@ Grading Value Contrast Interior Night=1.42
Grading Value Contrast Interior Day=1.62
LUT Blend Interior Night=0.39
LUT Blend Interior Day=0.45
Display Adaptation=false