enbseries.ini
[PROXY]
EnableProxyLibrary=0
InitProxyFunctions=0
ProxyLibrary=
[GLOBAL]
UseEffect=1
AlternativeDepth=1
AllowAntialias=1
BugFixMode=0
SkipShaderOptimization=0
QuadVertexBuffer=0
EnableShaders_3_0=1
AdditionalConfigFile=enbseries2.ini
UseMRTRendering=0
[EFFECT]
EnableBloom=1
EnableOcclusion=1
EnableReflection=0
EnableMotionBlur=0
EnableWater=1
EnableShadow=1
DepthBias=0
EnableDepthOfField=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=1
ReflectionQuality=2
ReflectionSourceSpecular=0
ReflectionSourceTFactor=0
UseAdditiveReflection=0
ReflectionDepthBias=0
UseLowResReflection=0
ReflectionSinglePass=1
UseEnvBump=0
EnvBumpAmount=100
EnvBumpOffset=100
ReflectionFlip=1
[BLOOM]
BloomPowerDay=20
BloomFadeTime=500
BloomConstantDay=0
BloomQuality=2
BloomScreenLevelDay=50
BloomCurveDay=5
BloomPowerNight=30
BloomConstantNight=0
BloomCurveNight=-5
BloomScreenLevelNight=20
BloomAdaptationScreenLevel=70
BloomAdaptationMultiplier=20
BloomAllowOversaturation=1
BloomMaxLimit=30
[SSAO]
UseFilter=1
OcclusionQuality=1
FilterQuality=0
DarkeningLevel=35
BrighteningLevel=35
IlluminationLevel=30
AdditiveIlluminationLevel=0
UseAmbientOcclusion=1
UseIndirectLighting=0
FadeDistance=80
UseForAlphaTest=0
UseForAlphaBlend=0
[COLORCORRECTION]
DarkeningAmountDay=20
ScreenLevelDay=60
ScreenLevelNight=20
DarkeningAmountNight=-20
GammaCurveDay=-4
GammaCurveNight=0
ColorSaturationDay=2
ColorSaturationNight=0
UsePaletteTexture=0
[WATER]
UseWaterDeep=20
WaterDeepness=23
WaterQuality=1
[SHADOW]
ShadowFadeStart=400
ShadowFadeEnd=800
ShadowAmountDay=70
ShadowAmountNight=30
ShadowScreenLevelDay=60
ShadowScreenLevelNight=20
ShadowQuality=0
UseShadowFilter=1
FilterQuality=1
ShadowBlurRange=40
[ENGINE]
ForceAnisotropicFiltering=1
MaxAnisotropy=16
ForceDisplayRefreshRate=0
DisplayRefreshRateHz=70
[MOTIONBLUR]
MotionBlurQuality=1
MotionBlurVelocity=200
MotionBlurRotation=200
[PERPIXELLIGHTING]
SpecularColorMin=0
SpecularColorMax=100
SpecularColorMultiplier=100
SpecularGlossinessMin=0
SpecularGlossinessMax=100
SpecularGlossinessMultiplier=100
[DEPTHOFFIELD]
DOFQuality=1
DOFNumberOfPasses=1
DOFFocusRange=80
DOFBlurinessRange=4
effect.txt
//++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++
//ENBSeries:
boris-vorontsov@yandex.ru, boris-vorontsov.narod.ru
//++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++
/*
THIS IS HLSL (HIGH LEVEL SHADER LANGUAGE) FILE FOR EXECUTING ADDITIONAL
HARDWARE EFFECTS. MAKE THE COPY BEFORE CHANGING IT!
*/
//keyboard controled variables
float tempF1;
float tempF2;
float tempF3;
float tempF4;
float tempF5;
float tempF6;
float tempF7;
float tempF8;
float tempF9;
float tempF0;
//global variables, already set before executing this code
float ScreenSize; //width of the display resolution (1024 f.e.)
float ScreenScaleY; //screen proportions (1.333 for 1024/768)
float ScreenBrightnessAdaptation;//(-10..10) for bloom it controls how much to dark in the night or when scene is dark (user defined constant factor)
float bloomPower;//(0..10) actually used for bloom, but may be useful here (user defined constant factor)
float useBloom;//(0 or 1) if bloom enabled by user
//textures
texture2D texColor;
sampler2D SamplerColor = sampler_state
{
Texture = <texColor>;
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = NONE;//NONE;
AddressU = Clamp;
AddressV = Clamp;
SRGBTexture=FALSE;
};
struct VS_OUTPUT_POST {
float4 vpos : POSITION;
float2 txcoord : TEXCOORD0;
};
struct VS_INPUT_POST {
float3 pos : POSITION;
float2 txcoord : TEXCOORD0;
};
//++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++
//
//++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++
VS_OUTPUT_POST VS_PostProcess(VS_INPUT_POST IN)
{
VS_OUTPUT_POST OUT;
float4 pos=float4(IN.pos.x,IN.pos.y,IN.pos.z,1.0);
OUT.vpos=pos;
OUT.txcoord.xy=IN.txcoord.xy;
return OUT;
}
float4 PS_PostProcess(VS_OUTPUT_POST In) : COLOR
{
/*
float tempF1=1.0;
float tempF2=1.0;
float tempF3=1.0;
float tempF4=1.0;
float tempF5=1.3;
float tempF6=4.35;
float tempF7=1.12;
float tempF8=1.2;
float tempF9=3.17;
float tempF0=1.4;
*/
//START TO MAKE YOUR CHANGES FROM HERE
float4 res;
float4 uvsrc=0;
uvsrc.xy=In.txcoord;
float2 offset[8]=
{
float2(-1.0,-1.0),
float2(-1.0, 1.0),
float2( 1.0, 1.0),
float2( 1.0,-1.0),
float2( 0.0, 1.41),
float2( 0.0,-1.41),
float2(-1.41, 0.0),
float2( 1.41, 0.0)
};
res=0.0;
float4 coord=0.0;
coord.xy=In.txcoord.xy;
float4 origcolor=tex2D(SamplerColor, coord.xy);
float origgray=max(origcolor.r, max(origcolor.g, origcolor.b));
res+=origcolor;
float range=0.7*tempF1/ScreenSize;
for (int i=0; i<8; i++)
{
coord.xy=In.txcoord+offset[i]*range;
float4 color;
float gray;
color=tex2D(SamplerColor, coord.xy);
float4 colordiff=abs(origcolor-color);
gray=dot(colordiff.rgb,0.333);
float lerpfact=saturate(4.0*abs(gray)*color.a);//saturate
res+=lerp(origcolor, color, lerpfact);
}
res=res*0.11111;
float4 color=res; //tex2Dbias(SamplerColor, uvsrc);
float tf7=tempF7;
float tf8=tempF8*0.55;
float3 correctedcolor=saturate((1.0-color*tempF9*0.24)*tempF0*0.16);
res.rgb=saturate(color.rgb-correctedcolor);
res.rgb=pow(res.rgb,tf8)*tf7;
res.a=1.0;
return res;
}
//++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++
//
//++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++
technique PostProcess
{
pass P0
{
VertexShader = compile vs_2_0 VS_PostProcess();
PixelShader = compile ps_2_a PS_PostProcess();
FogEnable=FALSE;
ALPHATESTENABLE=FALSE;
SEPARATEALPHABLENDENABLE=FALSE;
AlphaBlendEnable=FALSE;
FogEnable=FALSE;
SRGBWRITEENABLE=FALSE;
}
}