Part 1: Basics
Stay tuned
You cannot copy, edit or past this tutorial on a different domain from The Lancers Reactor.org or the SWAT Portal. This is property of TLR.org now.
Welcome, class! Today we'll learn about what Enbseries is, what Enbseries does, who made Enbseries, and how can we use Enbseries. First off, you'll need the following tools, I won't bother to post links for all of them, since I think that you are capable enough to search for them in Google, savvy?
Quote from Post if you need helpIf you are lost, or if you didn't understand something, raise your hand.
Tools Needed:
- GIMP (Free) / Photoshop // For later use - We'll need to create a bitmap palette in Part 2
- Resource Hacker / .dll/.exe editing application
Requirements:
- Updated Graphical Drivers
- Shader Model 2 capable GPU
- Lots of patience
- A bottle of beer on your desk
- Sunglasses (Your retina will suffer after a while, trust me)
What is Enbseries? Enbseries is a graphical plugin created by Boris Vorontsov, a well known member on GTA related Forums because of his ENB mod. He developed this mod in order to refresh older games, and make them more graphically pleasant.
My version of EnbSeries that I ran when I still played on Discovery.
My version of EnbSeries that I ran when I still played on Discovery.
In Enbseries there are a lot of SSAO, AA or SAA filters out there that we can use, and that we can create, but I'll speak about this in another tutorial. I'll limit to tutorial to explain everything you need to know about the most fundamental of all files in order to make Enbseries run. Well.. Enbseries.ini of course! Lets see.
In this graphic above I'm showing you how does the .ini interacts with the DirectX library, conditioning the .dll to react in a certain way when the .exe is launched.
In short words:
1) You run the .exe
2) The DirectX library is loaded
3) Enbseries.ini defines how the library acts when the .exe is run
Enbseries.ini
Quote from Folgore's GuideDisplay More
[PROXY]
EnableProxyLibrary= 0 / 1
InitProxyFunctions= 0 / 1
ProxyLibrary= <Filename>
[GLOBAL]
UseEffect= 0 / 1
AlternativeDepth= 0 / 1
AllowAntialias= 0 / 1
BugFixMode= 1 > 5
HDR Values for Nvidia (Values supported: 0 - 3 - 5)
HDR Values for ATI (Values supported: 1 - 2 - 4)
0 -> R32G32F (32bit) High Quality, Medium Performance //For Nvidia 169.xx+/171.xx
1 -> R32F (32bit) Medium Quality, Fast Performance //For ATI Catalyst 8.x+
2 -> A32R32G32B32F (32bit) Very High Quality, Slow Performance //For ATI Catalyst 9.x+
3 -> R16F (16bit) Very Low Quality, Fast Performance //For Nvidia 93.xx
4 -> R16G16F (16bit) Low Quality, Fast Performance //For Catalyst 8.x+
5 -> A16R16G16B16F (16bit) Low Quality, Medium Performance //For Nvidia 93.xx
[EFFECT]
EnableBloom= 0 / 1 Enables Bloom
EnableOcclusion= 0 / 1 Enables Ambient Occlusion (SSAO)
EnableReflection= 0 Not necessary, the value is related to car reflection in GTA IV
EnableMotionBlur= 0 Not necessary, the value is related to car reflection in GTA IV
EnableWater= 0 Not necessary, the value is related to water in GTA IV
EnableShadow= 0 Not necessary, the value is related to shadows in GTA IV
DepthBias= 0 / 1000 Value is related to the depth rendering. You need to increase it by 100 ( 100 - 200 - 300 etc). The effect is an occlusion of the camera viewpoint upon focusing towards the border of a system.
[REFLECTION]
ReflectionPower= 0 / 100 Relection of a surface. If you need to increase it, increase it by 10 units per time (10 - 20 - 30 etc)
ChromePower= 0 Effect is not used in Freelancer.
UseCurrentFrameReflection= 0 Effect is not used in Freelancer.
ReflectionQuality= 0 Effect is not used in Freelancer.
ReflectionSourceSpecular= 0 Effect is not used in Freelancer.
ReflectionSourceTFactor= 0 Effect is not used in Freelancer.
UseAdditiveReflection= 0 Effect is not used in Freelancer.
ReflectionDepthBias= 0 Effect is not used in Freelancer.
UseLowResReflection= 0 Effect is not used in Freelancer.
[BLOOM]
BloomPowerDay= 0 > 100 Bloom Power. Increase it by 10. (10 - 20 - 30 etc)
BloomFadeTime= 0 > 100000 Bloom Adaptation to Monitor Brightness. Value is in milliseconds. The smaller the value, the faster the adaptation but with a higher system resource use, a high value instead will manage system resources in an appropiate way. Value is to be increased by 10000
BloomQuality= 0 / 1 / 2 Bloom Effect Quality
0 = High
1 = Medium
2 = Low
BloomScreenLevelDay= 0 / 100 Level of screen brightness in percents
BloomCurveDay= -2 Bloom Contrast
BloomPowerNight= 50 Power of Bloom on dark textures. Value depends on screen brightness.
BloomConstantNight= 50 Power of Bloom on dark textures
BloomCurveNight= -5 Bloom Contrast
BloomScreenLevelNight= 0 / 100 Level of screen brightness in percents. Works on dark textures.
BloomAdaptationScreenLevel= 0 / 100 Level of screen brightness in percents, over which bloom will fade. This parametere needs to be lower than BloomScreenLevelDay.
BloomAllowOversaturation= 0 / 1 Oversaturation causes the famous 'cornea-bleeding' effect, on which a white surface will get oversaturated an overlighted.
[SSAO]
UseFilter= 0 / 1 Enables SSAO noise
OcclusionQuality= 0 / 1 / 2 SSAO Quality
0 = High
1 = Medium
2 = Low
FilterQuality= 0 / 1 / 2 Quality of SSAO Noise
0 = High
1 = Medium
2 = Low
DarkeningLevel= 0 / 100 Darkening Level caused by SSAO
BrighteningLevel= 0 / 100 Brightening Level caused by SSAO
IlluminationLevel= 0 / 100 Illumination Level caused by SSAO
AdditiveIlluminationLevel= 0 Unsupported in Freelancer
UseAmbientOcclusion= 0 / 1 Darkening on Nearest Objects
UseIndirectLightning= 0 / 1 Indirect Lightning on Dark objects
[COLORCORRECTION]
DarkeningAmountDay= -100 / 100 How dark or bright is the screen relative to a bright texture
ScreenLevelDay= 0 / 100 Level of Screen Brightness, when close to a bright texture
ScreenLevelNight= 0 / 100 Level of Screen brightness, when close to a dark texture
DarkeningAmountNight= -100 / 100 How dark or bright is the screen relative to a dark texture
GammaCurveDay= -10 / 10 Color Correction Contrast, if the value is negative the image will be more pale-looking, if the value is positive, the image will be more vivid because of Gamma Contrast.
GammaCurveNight= - 10 / 10 Color Correction Contrast, if the value is negative the image will be more pale-looking, if the value is positive, the image will be more vivid because of Gamma Contrast. Value needs to be of the same value as GammaCurveDay.
[ENGINE]
ForceAnisotropicFiltering= 0 / 1 Forces Anisotropic Filtering on textures
MaxAnisotropy= 2 > 16 Anisotropic Filtering Levels (They go in values of 2 - 4 - 8 and 16)
ForceDisplayRefreshRate= 0 / 1 Forces the monitor's refresh rate
DisplayRefreshRateHz= 50 > 240 Forces a different refresh rate. An incorrect value will corrupt your monitor's refresh rate.
How can you change the version of an EnbSeries pack that you have developed? Easy. Download Resource Hacker (here) and then open your DirectX library. On the lower 01 section, change the version info and save the changes. On the next tutorial I'll explain how you can create a convertor.ini to use DirectX9 libraries instead of DirectX8 libraries.