1
Fork 0

The very first version of MariENB. Uses Generic ENB 0.0076.

This commit is contained in:
Marisa the Magician 2019-04-07 17:07:10 +02:00
commit 807cbe600b
4 changed files with 741 additions and 13 deletions

BIN
Logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 KiB

View file

@ -1,13 +0,0 @@
![logo](Logo.png)
This repo contains every single version of MariENB ever made.
For the sake of neater organization, they are divided in specific branches:
- **historic**: Alpha versions of MariENB.
- **legacy**: 1.x releases.
- **twopoint-modular**: 2.0.x releases that used a modular packaging model.
- **twopoint-dust**: 2.x releases for Fallout: DUST.
- **twopoint-fnv**: 2.x releases for Fallout: New Vegas.
- **twopoint-skyrim**: 2.x releases for Skyrim.
- **threepoint-frost**: 3.x releases for Fallout: FROST.
- **threepoint-fo4**: 3.x releases for Fallout 4.

593
effect.txt Normal file
View file

@ -0,0 +1,593 @@
/*
Pseudo-CRT emulation shader (and some other stuff).
(C)2013 Marisa Kirisame, UnSX Team
Some parts cobbled together from original effect.txt by Boris, and
random algorithms taken from the internet.
Released under the WTFPL.
*/
/*
The original code for some sections (mainly the curvature one) made me wish
I could choke the original authors through standard TCP/IP.
*/
/* PS: HLSL is disgusting. I prefer GLSL, or even pure C software shaders. */
/* Borders are blurred */
#define EBORDERBLUR
/* border shine blur sampling range */
float blursamp = 1.5;
/* blend power of blur */
float blurpow = 28.0;
/* falloff curve of blur towards center of screen */
float blurcurve = 2.2;
/* blur falloff radius */
float blurradius = 0.56;
/* Crossblur modified from Uboa Engine */
#define ECROSSBLUR
/* crossblur sampling range */
float cblursamp = 0.3;
/* Soft grain */
#define EGRAIN
/* soft grain speed */
float nf = 0.02;
/* soft grain intensity */
float ni = 0.01;
/* soft grain saturation */
float ns = 0.15;
/* Block graphics filter with palette reduction */
#define EBLOCKGFX
/* emulated resolution for block graphics (0 or less for real resolution) */
float2 bres = float2(320,200);
/* do not scale */
bool bnoscale = false;
/* perform aspect ratio correction on emulated screen (ignored if no scale) */
bool bratio = true;
/* extra border factor (negative values for overscan) */
float bborderf = 0.05;
/*
palette type for block graphics:
0: 64-color AOS
1: 6bpc
2: CGA
3: 16-bit RGB565
other values disable palette reduction
*/
int paltype = 0;
/* Use AOS CGA colors rather than standard CGA */
#define AOSCGA
/* Cheap dot matrix filter */
#define EDOTMATRIX
/* blend factor for dot matrix */
float dotblend = 0.4;
/* subpixel size in pixels */
int dotsize = 1;
/* Dirty screen effect (static noise) */
#define EDIRT
/* dirt amount */
float dirtfactor = 0.08;
/* Use CRT curvature shader */
#define ECRT
/* chromatic aberration on CRT: fancy effect that isn't really realistic */
float chromaab = 0.015;
/* curvature lens zoom (0.5 = none) */
float lenszoom = 0.53;
/* curvature lens distortion */
float lensdist = 0.1;
/* not sure what this does */
float lensdistc = 0.1;
/*
+------------------------------+
|User-tweakable stuff ends here|
+------------------------------+
*/
/* do not touch this! */
#define E_SHADER_3_0
/* standard stuff */
float tempF1;
float tempF2;
float tempF3;
float tempF4;
float tempF5;
float tempF6;
float tempF7;
float tempF8;
float tempF9;
float tempF0;
float4 Timer;
float4 ScreenSize;
/* samplers and textures */
texture2D texColor;
texture texNoise;
sampler2D SamplerColor = sampler_state
{
Texture = <texColor>;
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = NONE;
AddressU = Clamp;
AddressV = Clamp;
SRGBTexture = FALSE;
MaxMipLevel = 0;
MipMapLodBias = 0;
};
sampler2D SamplerNoise = sampler_state
{
Texture = <texNoise>;
MinFilter = POINT;
MagFilter = POINT;
MipFilter = NONE;
AddressU = Wrap;
AddressV = Wrap;
SRGBTexture = FALSE;
MaxMipLevel = 0;
MipMapLodBias = 0;
};
/* whatever */
struct VS_OUTPUT_POST
{
float4 vpos : POSITION;
float2 txcoord : TEXCOORD0;
};
struct VS_INPUT_POST
{
float3 pos : POSITION;
float2 txcoord : TEXCOORD0;
};
/* Shader routines */
VS_OUTPUT_POST VS_Process(VS_INPUT_POST IN)
{
VS_OUTPUT_POST OUT;
float4 pos = float4(IN.pos.x,IN.pos.y,IN.pos.z,1);
OUT.vpos = pos;
OUT.txcoord.xy = IN.txcoord.xy;
return OUT;
}
float4 PS_ProcessBlur(VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
{
float4 coord = float4(IN.txcoord.x,IN.txcoord.y,0,0);
float4 res = tex2Dlod(SamplerColor,coord);
#ifdef EBORDERBLUR
float4 origcolor = res;
float4 tcol = float4(0,0,0,0);
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float4 bof = float4(1.0/bresl.x,1.0/bresl.y,0,0)*blursamp;
int i, j;
for ( i=-2; i<3; i++ )
for( j=-2; j<3; j++ )
tcol += tex2Dlod(SamplerColor,
coord+float4(i,j,0,0)*bof);
tcol *= 0.04;
float2 uv = (IN.txcoord.xy-0.5)*blurradius;
float vig = pow(saturate(dot(uv.xy,uv.xy)),blurcurve);
res.xyz = lerp(origcolor.xyz,tcol.xyz,vig*blurpow);
#endif
return res;
}
float4 PS_ProcessDirt(VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
{
float4 coord = float4(IN.txcoord.x,IN.txcoord.y,0,0);
float4 res = tex2Dlod(SamplerColor,coord);
#ifdef EDIRT
float gray = (res.r+res.g+res.b)/3.0;
float4 ncol = tex2Dlod(SamplerNoise, coord*16+gray);
res = lerp(res,(ncol.r+1)*res,dirtfactor*saturate(1-gray*0.5));
#endif
return res;
}
float4 PS_ProcessCurve(VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
{
float4 coord = float4(IN.txcoord.x,IN.txcoord.y,0,0);
float4 res = tex2Dlod(SamplerColor,coord);
#ifdef ECRT
float4 tcol = res;
float3 eta = float3(1+chromaab*0.9,1+chromaab*0.6,1+chromaab*0.3);
float2 center = float2(coord.x-0.5,coord.y-0.5);
float zfact = 1.0/lenszoom;
float r2 = center.x*center.x+center.y*center.y;
float f = 0;
if( lensdistc == 0.0)
f = 1+r2*lensdist;
else
f = 1+r2*(lensdist+lensdistc*sqrt(r2));
float x = f*zfact*center.x+0.5;
float y = f*zfact*center.y+0.5;
float2 rcoord = (f*eta.r)*zfact*(center.xy*0.5)+0.5;
float2 gcoord = (f*eta.g)*zfact*(center.xy*0.5)+0.5;
float2 bcoord = (f*eta.b)*zfact*(center.xy*0.5)+0.5;
float4 idist = float4(tex2D(SamplerColor,rcoord).r,
tex2D(SamplerColor,gcoord).g,
tex2D(SamplerColor,bcoord).b,
tex2D(SamplerColor,float2(x,y)).a);
/* clamp (currently hard, will add softening later */
float clampval = 0.01;
if ( rcoord.x < clampval || rcoord.x >= 1-clampval
|| rcoord.y < clampval || rcoord.y >= 1-clampval )
idist.r *= 0;
if ( gcoord.x < clampval || gcoord.x >= 1-clampval
|| gcoord.y < clampval || gcoord.y >= 1-clampval )
idist.g *= 0;
if ( bcoord.x < clampval || bcoord.x >= 1-clampval
|| bcoord.y < clampval || bcoord.y >= 1-clampval )
idist.b *= 0;
res.rgb = idist.rgb;
#endif
return res;
}
float4 PS_ProcessCrossblur( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
{
float4 coord = float4(IN.txcoord.x,IN.txcoord.y,0,0);
float4 res = tex2Dlod(SamplerColor,coord);
#ifdef ECROSSBLUR
float2 bresl = float2(ScreenSize.x,ScreenSize.x*ScreenSize.w);
float4 bof = float4(1.0/bresl.x,1.0/bresl.y,0,0)*cblursamp;
float factor[4] = {0.3,0.2,0.1,0.05};
int i, j;
res *= 0;
/* I'm going to hell for this ugly staircase code */
for ( i=-3; i<4; i++ )
for ( j=-3; j<4; j++ )
res += factor[abs(i)]*factor[abs(j)]
*tex2Dlod(SamplerColor,
coord+float4(i,j,0,0)*bof);
#endif
return res;
}
float4 PS_ProcessBlock( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
{
float4 coord = float4(IN.txcoord.x,IN.txcoord.y,0,0);
float4 res = tex2Dlod(SamplerColor,coord);
#ifdef EBLOCKGFX
float4 rresl = float4(ScreenSize.x,ScreenSize.x*ScreenSize.w,1,1);
float4 bresl;
if ( bres.x <= 0 || bres.y <= 0 )
bresl = rresl;
else
bresl = float4(bres.x,bres.y,1,1);
float4 ncoord = floor(coord*bresl)/bresl;
float4 rratio = rresl/bresl;
if ( !bnoscale )
{
if ( bratio )
rratio /= min(rratio.x,rratio.y);
else
rratio /= rratio;
}
rratio *= 1+bborderf;
ncoord = ((ncoord-float4(0.5,0.5,0,0))*rratio)+float4(0.5,0.5,0,0);
float4 tcol = tex2Dlod(SamplerColor,ncoord);
/* clamp */
if ( ncoord.x < 0 || ncoord.x >= 1 || ncoord.y < 0 || ncoord.y >= 1 )
tcol *= 0;
/* 64-color (4bpc) AOS EGA region */
if ( paltype == 0 )
{
/* dither */
bool evx = (coord.x*bresl.x)%2 < 1;
bool evy = (coord.y*bresl.y)%2 < 1;
if ( evx != evy )
tcol = tcol+float4(1,1,1,0)*0.01;
else
tcol = tcol-float4(1,1,1,0)*0.01;
/* truncate */
res.rgb = trunc(tcol.rgb*16.0)/16.0;
/* additional brightness bump */
res = res+float4(1,1,1,0)*0.02;
}
/* 6bpc */
else if ( paltype == 1 )
{
/* dither */
bool evx = (coord.x*bresl.x)%2 < 1;
bool evy = (coord.y*bresl.y)%2 < 1;
if ( evx != evy )
tcol = tcol+float4(1,1,1,0)*0.01;
else
tcol = tcol-float4(1,1,1,0)*0.01;
/* truncate */
res.rgb = trunc(tcol.rgb*64.0)/64.0;
/* additional brightness bump */
res = res+float4(1,1,1,0)*0.02;
}
/* CGA palette */
else if ( paltype == 2 )
{
float4 dac;
/* brighten shadows */
tcol.rgb = pow(tcol.rgb,0.5);
/* dither */
bool evx = (coord.x*bresl.x)%2 < 1;
bool evy = (coord.y*bresl.y)%2 < 1;
if ( evx != evy )
tcol = tcol+float4(1,1,1,0)*0.01;
else
tcol = tcol-float4(1,1,1,0)*0.01;
/* additional brightness bump */
tcol = tcol-float4(1,1,1,0)*0.01;
/* oversaturate components */
dac.a = (tcol.r+tcol.g+tcol.b)/3.0;
dac.r = dac.a+(tcol.r-dac.a)*3.0;
dac.g = dac.a+(tcol.g-dac.a)*3.0;
dac.b = dac.a+(tcol.b-dac.a)*3.0;
/* color lookup */
#ifdef AOSCGA
float3 cgapal[16] =
{
float3(0.000000,0.000000,0.000000),
float3(0.500000,0.000000,0.000000),
float3(0.125000,0.500000,0.000000),
float3(0.625000,0.250000,0.125000),
float3(0.000000,0.125000,0.343750),
float3(0.234375,0.000000,0.343750),
float3(0.062500,0.625000,0.812500),
float3(0.343750,0.343750,0.343750),
float3(0.125000,0.125000,0.125000),
float3(1.000000,0.250000,0.250000),
float3(0.281250,1.000000,0.250000),
float3(1.000000,0.875000,0.234375),
float3(0.187500,0.500000,1.000000),
float3(0.750000,0.187500,1.000000),
float3(0.281250,0.875000,1.000000),
float3(1.000000,1.000000,1.000000),
};
#else
float3 cgapal[16] =
{
float3(0.000,0.000,0.000),
float3(0.333,0.000,0.000),
float3(0.000,0.333,0.000),
float3(0.333,0.333,0.000),
float3(0.000,0.000,0.333),
float3(0.333,0.000,0.333),
float3(0.000,0.333,0.333),
float3(0.666,0.666,0.666),
float3(0.333,0.333,0.333),
float3(1.000,0.333,0.333),
float3(0.333,1.000,0.333),
float3(1.000,1.000,0.333),
float3(0.333,0.333,1.000),
float3(1.000,0.333,1.000),
float3(0.333,1.000,1.000),
float3(1.000,1.000,1.000),
};
#endif
float dist = 2.0;
int idx = 0;
for ( int i=0; i<16; i++ )
{
if ( distance(dac.rgb,cgapal[i]) < dist )
{
idx = i;
dist = distance(dac.rgb,cgapal[i]);
}
}
res.rgb = cgapal[idx];
/* additional brightness bump */
res = res+float4(1,1,1,0)*0.02;
}
/* RGB565 */
else if ( paltype == 3 )
{
/* dither */
bool evx = (coord.x*bresl.x)%2 < 1;
bool evy = (coord.y*bresl.y)%2 < 1;
if ( evx != evy )
tcol = tcol+float4(1,1,1,0)*0.01;
else
tcol = tcol-float4(1,1,1,0)*0.01;
/* truncate */
res.r = trunc(tcol.r*32.0)/32.0;
res.g = trunc(tcol.g*64.0)/64.0;
res.b = trunc(tcol.b*32.0)/32.0;
/* additional brightness bump */
res = res+float4(1,1,1,0)*0.02;
}
#endif
return res;
}
float4 PS_ProcessDotmatrix( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
{
float4 coord = float4(IN.txcoord.x,IN.txcoord.y,0,0);
float4 res = tex2Dlod(SamplerColor,coord);
#ifdef EDOTMATRIX
/* number of dots */
float4 bresl = float4(ScreenSize.x,ScreenSize.x*ScreenSize.w,1,1);
bresl.xy *= 1.0/dotsize;
/* RGBI dot luminance values */
float4 dac = float4(res.r*0.5,res.g*0.5,res.b*0.5,
(res.r+res.g+res.b)/6.0);
float3 tcol;
/* 2x2 matrix */
if ( ((coord.x*bresl.x)%2 < 1) && ((coord.y*bresl.y)%2 < 1) )
tcol.rgb = float3(dac.r,0,0);
else if ( ((coord.x*bresl.x)%2 >= 0) && ((coord.y*bresl.y)%2 < 1) )
tcol.rgb = float3(0,dac.g,0);
else if ( ((coord.x*bresl.x)%2 < 1) && ((coord.y*bresl.y)%2 >= 0) )
tcol.rgb = float3(0,0,dac.b);
else
tcol.rgb = float3(dac.a,dac.a,dac.a);
/* blend in */
res.rgb = res.rgb*(1-dotblend)+tcol.rgb*dotblend;
/* screen boundary */
float2 bfact = float2(0.0,0.0);
float2 bounds = float2(bfact.x/bresl.x,bfact.y/bresl.y);
if ( (coord.x < bounds.x) || (coord.x > 1-bounds.x)
|| (coord.y < bounds.y) || (coord.y > 1-bounds.y) )
res *= 0;
#endif
return res;
}
/* pseudorandom number generator */
float random( in float2 uv )
{
float2 n = frac(sin(dot(uv,float2(12.9898,78.233)*2.0))*43758.5453);
return abs(n.x+n.y)*0.5;
}
float4 PS_ProcessGrain( VS_OUTPUT_POST IN, float2 vPos : VPOS ) : COLOR
{
float4 coord = float4(IN.txcoord.x,IN.txcoord.y,0,0);
float4 res = tex2Dlod(SamplerColor,coord);
#ifdef EGRAIN
float ts = Timer.x*nf;
float2 tcs = coord.xy;
float2 s1 = tcs+float2(0,ts);
float2 s2 = tcs+float2(ts,0);
float2 s3 = tcs+float2(ts,ts);
float n1 = random(s1);
float n2 = random(s2);
float n3 = random(s3);
float n4 = (n1+n2+n3)/3;
float3 ng = float3(n4,n4,n4);
float3 nc = float3(n1,n2,n3);
res.rgb += lerp(ng,nc,ns)*ni-0.5*ni;
#endif
return res;
}
technique PostProcess
{
pass P0
{
VertexShader = compile vs_3_0 VS_Process();
PixelShader = compile ps_3_0 PS_ProcessBlur();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
ALPHATESTENABLE = FALSE;
SEPARATEALPHABLENDENABLE = FALSE;
AlphaBlendEnable = FALSE;
StencilEnable = FALSE;
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcess2
{
pass P0
{
VertexShader = compile vs_3_0 VS_Process();
PixelShader = compile ps_3_0 PS_ProcessCrossblur();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
ALPHATESTENABLE = FALSE;
SEPARATEALPHABLENDENABLE = FALSE;
AlphaBlendEnable = FALSE;
StencilEnable = FALSE;
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcess3
{
pass P0
{
VertexShader = compile vs_3_0 VS_Process();
PixelShader = compile ps_3_0 PS_ProcessGrain();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
ALPHATESTENABLE = FALSE;
SEPARATEALPHABLENDENABLE = FALSE;
AlphaBlendEnable = FALSE;
StencilEnable = FALSE;
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcess4
{
pass P0
{
VertexShader = compile vs_3_0 VS_Process();
PixelShader = compile ps_3_0 PS_ProcessBlock();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
ALPHATESTENABLE = FALSE;
SEPARATEALPHABLENDENABLE = FALSE;
AlphaBlendEnable = FALSE;
StencilEnable = FALSE;
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcess5
{
pass P0
{
VertexShader = compile vs_3_0 VS_Process();
PixelShader = compile ps_3_0 PS_ProcessDotmatrix();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
ALPHATESTENABLE = FALSE;
SEPARATEALPHABLENDENABLE = FALSE;
AlphaBlendEnable = FALSE;
StencilEnable = FALSE;
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcess6
{
pass P0
{
VertexShader = compile vs_3_0 VS_Process();
PixelShader = compile ps_3_0 PS_ProcessDirt();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
ALPHATESTENABLE = FALSE;
SEPARATEALPHABLENDENABLE = FALSE;
AlphaBlendEnable = FALSE;
StencilEnable = FALSE;
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}
technique PostProcess7
{
pass P0
{
VertexShader = compile vs_3_0 VS_Process();
PixelShader = compile ps_3_0 PS_ProcessCurve();
DitherEnable = FALSE;
ZEnable = FALSE;
CullMode = NONE;
ALPHATESTENABLE = FALSE;
SEPARATEALPHABLENDENABLE = FALSE;
AlphaBlendEnable = FALSE;
StencilEnable = FALSE;
FogEnable = FALSE;
SRGBWRITEENABLE = FALSE;
}
}

148
enbseries.ini Normal file
View file

@ -0,0 +1,148 @@
[PROXY]
EnableProxyLibrary=0
InitProxyFunctions=0
ProxyLibrary=
[GLOBAL]
UseEffect=1
AlternativeDepth=1
AllowAntialias=1
BugFixMode=0
SkipShaderOptimization=0
QuadVertexBuffer=1
EnableShaders_3_0=1
AdditionalConfigFile=enbseries2.ini
UseMRTRendering=0
TempF1=100
TempF2=100
TempF3=100
TempF4=100
TempF5=100
TempF6=100
TempF7=100
TempF8=100
TempF9=100
TempF0=100
[EFFECT]
EnableBloom=0
EnableOcclusion=0
EnableReflection=0
EnableMotionBlur=0
EnableWater=0
EnableShadow=0
DepthBias=0
EnableDepthOfField=0
EnableReflectiveBump=0
[INPUT]
KeyUseEffect=123
KeyBloom=120
KeyOcclusion=121
KeyReflection=122
KeyCombination=16
KeyScreenshot=44
KeyShadow=119
KeyWater=118
KeyShowFPS=106
[REFLECTION]
ReflectionPower=0
ChromePower=0
UseCurrentFrameReflection=0
ReflectionQuality=0
ReflectionSourceSpecular=0
ReflectionSourceTFactor=0
UseAdditiveReflection=0
ReflectionDepthBias=0
UseLowResReflection=0
ReflectionSinglePass=0
UseEnvBump=0
EnvBumpAmount=0
EnvBumpOffset=0
ReflectionFlip=0
IBLAmount=0
IBLPower=0
[BLOOM]
BloomPowerDay=0
BloomFadeTime=0
BloomConstantDay=0
BloomQuality=0
BloomScreenLevelDay=0
BloomCurveDay=0
BloomPowerNight=0
BloomConstantNight=0
BloomCurveNight=0
BloomScreenLevelNight=0
BloomAdaptationScreenLevel=0
BloomAdaptationMultiplier=0
BloomAllowOversaturation=0
BloomMaxLimit=0
[SSAO]
UseFilter=0
OcclusionQuality=0
FilterQuality=0
DarkeningLevel=0
BrighteningLevel=0
IlluminationLevel=0
AdditiveIlluminationLevel=0
UseAmbientOcclusion=0
UseIndirectLighting=0
FadeDistance=0
UseForAlphaTest=0
UseForAlphaBlend=0
[COLORCORRECTION]
DarkeningAmountDay=0
ScreenLevelDay=0
ScreenLevelNight=0
DarkeningAmountNight=0
GammaCurveDay=0
GammaCurveNight=0
ColorSaturationDay=0
ColorSaturationNight=0
UsePaletteTexture=0
[WATER]
UseWaterDeep=0
WaterDeepness=0
WaterQuality=0
[SHADOW]
ShadowFadeStart=0
ShadowFadeEnd=0
ShadowAmountDay=0
ShadowAmountNight=0
ShadowScreenLevelDay=0
ShadowScreenLevelNight=0
ShadowQuality=0
UseShadowFilter=0
FilterQuality=0
ShadowBlurRange=0
[ENGINE]
ForceAnisotropicFiltering=0
MaxAnisotropy=16
ForceDisplayRefreshRate=0
DisplayRefreshRateHz=60
[MOTIONBLUR]
MotionBlurQuality=0
MotionBlurVelocity=0
MotionBlurRotation=0
[PERPIXELLIGHTING]
SpecularColorMin=0
SpecularColorMax=0
SpecularColorMultiplier=0
SpecularGlossinessMin=0
SpecularGlossinessMax=0
SpecularGlossinessMultiplier=0
[DEPTHOFFIELD]
DOFQuality=0
DOFNumberOfPasses=0
DOFFocusRange=0
DOFBlurinessRange=0