/*======================================================================================
                             "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 USE_PRE_SHARPEN
//#define USE_TECHNICOLOR
//#define USE_TONEMAP
//#define USE_SEPIA
//#define USE_VIGNETTE
//#define USE_BLOOM
//#define USE_POST_SHARPEN
//#define USE_FINAL_LIMITER


/*------------------------------------------------------------------------------
						FXAA SHADER
------------------------------------------------------------------------------*/
// Set values to calculate the amount of Anti Aliasing applied
float fxaaQualitySubpix = 1;  // Default: 0.75 Raise to increase amount of blur
float fxaaQualityEdgeThreshold = 0.063; // Lower the value for more smoothing
float fxaaQualityEdgeThresholdMin = 0.063; // Lower the value for more smoothing


/*------------------------------------------------------------------------------
						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.5
#define CoefBlur 1.4

// Set values of the sharpening amount
#define SharpenEdge 0.2
#define Sharpen_val0 1.4


/*------------------------------------------------------------------------------
						TECHNICOLOR
------------------------------------------------------------------------------*/
#define TechniAmount 0.50 // 1.00 = Max
#define TechniPower 3.5 // lower values = whitening

// lower values = stronger channel
#define redNegativeAmount 1.0 // 1.00 = Max
#define greenNegativeAmount 1.0 // 1.00 = Max
#define blueNegativeAmount 1.0 // 1.00 = Max


/*------------------------------------------------------------------------------
						TONEMAP
------------------------------------------------------------------------------*/
#define Gamma 1.15
#define Exposure 0.020
#define Saturation 0.05 // use negative values for less saturation. 
#define BlueShift 0.20 // Higher = more blue in image.
#define Bleach 0.10 // Bleach bypass, higher = stronger effect
#define Defog 0.000 // Strength of Lens Colors.
#define FogColor float4(0.0, 0.0, 0.0, 0.0) //Lens-style color filters for Blue, Red, Yellow, White.


/*------------------------------------------------------------------------------
						SEPIA
------------------------------------------------------------------------------*/
// Sepia Tones - float3(1.00, 1.00, 1.00) values are for R G B
#define SepiaTone float3(1.12, 0.66, 0.20) //open injFX_Shaders/SepiaTones_examples.txt for color schemes 
#define SepiaPower 0.5 // 1.00 = Max


/*------------------------------------------------------------------------------
						VIGNETTE
------------------------------------------------------------------------------*/
// Vignette effect, process by which there is loss in clarity towards the corners and sides of the image, like a picture frame
#define VignetteCenter float2(0.500, 0.500) // Center of screen for effect.
#define VignetteRadius 1.00 // lower values = stronger radial effect from center
#define VignetteAmount -0.70 // Strength of black. -2.00 = Max Black, 1.00 = Max White.


/*------------------------------------------------------------------------------
						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 2 // Must be set with a value dividable by 2
float BloomThreshold = 2; // The min. level at which the effect starts (Valid Values = 1 to 9, use decimals for finetuning)
float BloomWidth = 2;	// Sets the width of the effect (Valid Values = 1 to 5, use decimals for finetuning)
float BloomScale = 0.10; // The power of the effect


/*------------------------------------------------------------------------------
						POST_SHARPEN
------------------------------------------------------------------------------*/
// Controls additional sharpening applied after previous processing. Strength should be max 0.25!
float Sharpen = 0.05;


/*------------------------------------------------------------------------------
						FINAL_LIMITER
------------------------------------------------------------------------------*/
// Controls the strenght of the limiter. 1.000 for default setting
int LimiterStrenght = 1.000; 