/*======================================================================================
                             USER ADJUSTABLE SETTINGS
======================================================================================*/
// TODO: Normalize values to be on a human range scale, whole numbers prefered, decimals usable for micro adjustments
// These values should have min/max limit checks included in their functions, so that the end user doesn't get crazy results


/*------------------------------------------------------------------------------
						FILTER SELECTION
------------------------------------------------------------------------------*/
// Comment to deactivate an effect. 
// Example: To disable the tonemap effect, use // in front of #define USE_TONEMAP

#define FXAA_QUALITY__PRESET 5
#define USE_ANTI_ALIASING
#define USE_PRE_SHARPEN
#define USE_BLOOM
#define USE_TONEMAP
#define USE_VIGNETTE
#define USE_POST_SHARPEN


/*------------------------------------------------------------------------------
						FXAA Quality
------------------------------------------------------------------------------*/
//FXAA inactive; base routine running since other shaders depend on it; build in Skyrim FXAA used for actual anti-aliasing.

float fxaaQualitySubpix = 0;
float fxaaQualityEdgeThreshold = 0;
float fxaaQualityEdgeThresholdMin = 0;


/*------------------------------------------------------------------------------
						PRE_SHARPEN
------------------------------------------------------------------------------*/
//For higher precision in the calculation of contour, requires slightly more processing power

bool highQualitySharpen = 1;	//0 = Disable  | 1 = Enable

// Set values to calculate the amount of  AA produced blur to consider for the sharpening pass

#define Average 0.25
#define CoefBlur 2

// Set values of the sharpening amount

#define SharpenEdge 0.25
#define Sharpen_val0 0.75


/*------------------------------------------------------------------------------
						BLOOM
------------------------------------------------------------------------------*/
// Number of samples per pixel taken for the Bloom effect. Don't set it to high!  4 = 25spp, 8 = 81spp, 16 = 289spp

#define NUM_SAMPLES2 4 // Must be set with a value dividable by 2
float BloomPreset = 5; // Disabled = 0 (Valid Preset Values = 1 to 9) Preset value 1 to 9 takes control over the next 3 settings.
float BloomThreshold = 1; // The min. level at which the effect starts (Valid Values = 1 to 9, use decimals for finetuning)
float BloomWidth = 1; // Sets the width of the effect (Valid Values = 1 to 9, use decimals for finetuning)
float BloomPower = 1; // The power of the effect (Valid Values = 1 to 9, use decimals for finetuning)


/*------------------------------------------------------------------------------
						TONEMAP
------------------------------------------------------------------------------*/
//TONEMAP: Completely post processes the colours for more natural contrast and saturation (leave SKYRIM config gamma at 1.0, use gamma below to adjust for your monitor 

#define Gamma 1.1236          // higher values give a darker and more saturated colour band
#define Exposure -0.06       // simulates exposure: higher values dramatically increase strength of bright parts of the image, used here to balance the overall loss of gamma brightness and to increase the overall contrast
#define Saturation 0.145     // strength of the colour band, lowered here to balance the excessive saturation caused by high gamma whilst retaining high and natural contrast
#define BlueShift -0.45
#define RedShift 0.35 		 // Increase if the image is too warm or red
#define Bleach 0.05
#define Defog 0.02 
#define FogColor float4(0.0, 0.0, 0.0, 3.0) 
#float Sharpen = 0.160
//#define USE_VIGNETTE
/*------------------------------------------------------------------------------
						VIGNETTE
------------------------------------------------------------------------------*/
//VIGNETTE: like a picture frame, very subtly darkeness the images close to monitor edges, effect often used in film to concentrate the imgage and "force" the frame

#define VignetteCenter float2(0.500, 0.500) 
#define VignetteRadius 1.25 
#define VignetteAmount -0.5 


/*------------------------------------------------------------------------------
						POST_SHARPEN
------------------------------------------------------------------------------*/
// Overall crispness of image and textures, controls additional sharpening applied after previous processing. Strength should be max 0.25!

float Sharpen = 0.110;	  // Lower if the image is too grainy. This controls sharpening!
