Download Link of shader files, updated 2015-01-26
http://www.mediafire.com/download/3i5fe ... rary_v5.7z
Nexus, updated 2015-03-29;
http://www.nexusmods.com/skyrim/mods/61955/?
Shader Library content
- elepHelpers.fxh - Contains useful helper functions such as Time and Location value "splitters", Yxy and HSL color space conversions, multiple average luminance functions etc.
- elepAdaptation.fxh - Contains Adaptation Min, Max range controls. Which have been applied to all relevant effects in this library.
- elepBloomControl.fxh - Some simple ENB bloom controls, can be used for Vanilla game bloom as well or both with a bit of code tinkering
- enbAGCC.fxh - Default APPLYGAMECOLORCORRECTION shader code
- elepAGCC.fxh - Customizable APPLYGAMECOLORCORRECTION inspired by Prod80
- enbPP1.fxh - Default ENBSeries Post-Process v1 shader code
- enbPP2.fxh - Default ENBSeries Post-Process v2 shader code
- enbPP3.fxh - Default ENBSeries Post-Process v3 shader code
- enbPP4.fxh - Default ENBSeries Post-Process v4 shader code
- elepNXS.fxh - NXS Dynamic color correction shader code
- elepHDRToning.fxh - My personal favorite tonemapping effect, uses Local Reinhard tonemapping as well as Uncharted2D tonemapping
- elepTonemapMethods.fxh - A collection of the more common tonemapping methods used in game post-processing
- elepNightEye.fxh - My personal Night Eye effect for use when AGCC is not used, preferably. Uses Visual Acuity based tonemapping along with some other useful settings
- elepPCC.fxh - My own personal version of Procedural Color Correction effects
- enbPalette.fxh - Boris default Palette effect
- enbPCC.fxh - Boris default Procedural Color Correction effects
- enbVanillaTechnique.fxh - Boris default Vanilla technique effect
All files contains useful info on what is available to add/include where those things should included into each file.
Preview of some of the files content
A simple showcase on how to include one of those files and use it's functions.
All .fxh files is designed to use the elepHelpers.fxh, so that has to be included into the file you are including one of the shader effects.
enbeffect.fx
First you need to include the files into the enbeffect.fx, you do that with this code line, elepHelpers.fxh and enbAGCC.fxh will be used for this example.
Code: Select all
#include "/ELEP Additional Shaders/elepHelpers.fxh" // This code line needs to be added after the register section inside enbeffect.fx, this is only true for the enbeffect.fx file
#include "/ELEP Additional Shaders/enbAGCC.fxh"
Now you need to include it into the rendering stage so it will have an effect on the render output.
For that you need to add this code line for the AGCC code to take affect;
Code: Select all
color.rgb = enbAGCC(color, vadapt, vbloom); // This code line goes into the Pixel shader (PS_D6EC7DD1) after all initialization code is done
Code: Select all
float4 PS_D6EC7DD1(VS_OUTPUT_POST IN, float2 vPos : VPOS) : COLOR
{
// Initialize various variables used in this shader file
float4 color = 0.0f;
float4 _v0 = 0.0f;
_v0.xy = IN.txcoord0.xy; /// Texture coordinates
color = tex2D(_s0, _v0.xy); /// ENBSeries color output
float4 vbloom = tex2D(_s1, _v0.xy); /// Vanilla bloom effect
float4 vadapt = tex2D(_s2, _v0.xy); /// Vanilla adaptation effect
float4 ebloom = tex2D(_s3, _v0.xy); /// ENBSeries bloom effect
float4 eadapt = tex2D(_s4, _v0.xy); /// ENBSeries adaptation effect
// Main ENBSeries Post-Processing computations and injections
color.rgb = enbAGCC(color, vadapt, vbloom); // AGCC injection code line
----
color.w = 1.0f;
return color;
}
To make it so you can easily enable or disable the AGCC effect, add this code into the file;
Code: Select all
// Add the below GUI annotation at the top of the file
bool ENABLE_AGCC <
string UIName = "Enable Game Post-Processing";
> = {true};
----
if (ENABLE_AGCC==true)
{
color.rgb = enbAGCC(color, vadapt, vbloom); // AGCC injection code line
}
I'll add more info later on but this should be enough to start off with.
None of these codes have been "set in stone" and I consider them all WIP as I always find something to improve or do differently, they are however 100% working and without issues.
Change Log
v5;
- Added NXS post-processing
- Fixed a code error in elepAGCC
- Added the new string feature, to better organize the GUI window and add in short info notes
- Created a new shader file for Adaptation with Min, Max range clamp/"limiting" controls, and attached to all relative shader effects
v3;
- Added Boris default Palette effect
- Added Boris default Procedural Color-Correction effect
- Removed unnecessary code from various files
- Added Split Screen to the elepTonemapMethods.fxh shader file
- Even added the Vanilla technqiue/FLIP_TECHNIQUE, mainly to show inexperienced coders that it's possible to do so.
- General/misc. alterations to all files in some way.
v2;
- Cleaning and general fixes to previous files, all controls have Day, Night and Interior separation now.
- Added ENBSeries four original Post-Process methods into the library, with Day, Night and Interior separation.
- Made the Tonemapping methods from v1 to be accessible through the TECHNIQUE drop down window found at the top of the enbeffect.fx GUI window. Thanks for the tip kingeric1992.
- Included a enbseries.ini for recommended settings, bloom is necessary for the HDR Toning to work as intended. Also a slightly modified enbbloom.fx, additional bloom coding is from Prod80's bloom shader.