/*===============================================================================*\
|######################   [HLSL PCSX2 FX SETTINGS V2.00]   #######################|
|########################	    [BY ASMODEAN@PCSX2]	     #########################|
||																				 ||
||		  This program is free software; you can redistribute it and/or			 ||
||		  modify it under the terms of the GNU General Public License			 ||
||		  as published by the Free Software Foundation; either version 2		 ||
||		  of the License, or (at your option) any later version.				 ||
||																				 ||
||		  This program is distributed in the hope that it will be useful,		 ||
||		  but WITHOUT ANY WARRANTY; without even the implied warranty of		 ||
||		  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the			 ||
||		  GNU General Public License for more details.							 ||
||																				 ||
|#################################################################################|
\*===============================================================================*/

/*------------------------------------------------------------------------------
						[DEFINITIONS & ON/OFF OPTIONS]
------------------------------------------------------------------------------*/

//---------------------------#[CHOOSE EFFECTS]#--------------------------------\\

#define FXAA_PASS					 1			//#High Quality Fast Approximate Anti Aliasing. Jaggies begone!(fps hit).
#define LUMA_SHARPEN				 1			//#HQ Luma-Based Sharpen, looks similar to a negative mip LOD Bias, enhances texture fidelity.
#define BLOOM_PASS					 1			//#Bloom high pass of the HDR [For best results: use bloom, gamma & color correction together](lower-end gpu fps hit).
#define GAMMA_CORRECTION			 1			//#Gamma, Defog & Range Pass of the HDR [For best results: use bloom, gamma & color correction together](lower-end gpu fps hit).
#define COLOR_CORRECTION			 1			//#Scene Color Correction & Intelligent Tonemapping pass of the HDR [For best results: use bloom, gamma & color correction together].
#define INTELLI_VIBRANCE			 1			//#Dynamic per pixel vibrance. Intelligently adjusts colors depending on their original saturation.
#define S_CURVE_CONTRAST			 1			//#S-Curve Scene Contrast Enhancement. 
#define PERPIXEL_LIGHTING			 1			//#Pseudo Per-pixel Lighting: Simulates calculation of light/illum for each pixel on screen(lighting enhancement).
#define SUBPIXEL_DITHERING			 0			//#Dithering to simulate more colors than your monitor can display. Smoothes gradiants, this lessens color banding(lower-end gpu fps hit).
#define CRT_EMULATION				 0			//#Simulates CRT TV display. Note: Interferes with antialiasing & other effects.
#define VIGNETTE					 0			//#Darkens the edges of the image to make it look more like it was shot with a camera lens.

/*------------------------------------------------------------------------------
					[SHADER FX CONFIG OPTIONS & LOCAL VARS]
------------------------------------------------------------------------------*/
//-[FXAA OPTIONS]
#if (FXAA_PASS == 1)
	#define FXAA_Quality 4			//[1|2|3|4] Overall FXAA quality preset.(faster/LrQ) 1 = Low, 2 = Medium, 3 = High, 4 = Ultra (slower/HrQ).
	#define FXAA_Subpix (0.5)		//[0.00-1.00] Amount of sub-pixel aliasing removal. 0.00 = off. Higher values = more sub pixel filtering(softer). Lower values = less subpixel filtering(crisper)
#endif

//-[BLOOM OPTIONS]
#if (BLOOM_PASS == 1)
	#define BloomType BlendScreen	//The type of blend for the bloom -[BlendScreen, BlendOverlay, BlendSoftLight] (Default: BlendScreen)
	#define BloomPower 0.300f     	//[0.100 to 0.900] Strength of the bloom. blooms naturally, per environment. You will need to adjust for each bloom type.
	#define BlurSpread 2.000f    	//[0.000 to 4.000] Width of the bloom's 'glow' filtering. 0.000 = off.
#endif

//-[GAMMA OPTIONS]
#if (GAMMA_CORRECTION == 1)
	#define Gamma 2.2f  			//Lower Values = more Gamma toning(darker), higher Values = brighter (2.2 correction is generally recommended)
#endif

//-[COLOR OPTIONS]
#if (COLOR_CORRECTION == 1)
	#define TonemappingType 0		//The type of tonemapping used. 0 = Scene tonemapping, most compatible (Default). 1 = local tonemapping, can be more accurate, but it can look odd, in games with low resolution textures.
	#define Luma 100.00f			//Luma Percent Avg Correction(luma correction) Higher values = more luma, lower = less luma. Adjust by small amounts, eg: increments of 1
	#define Exposure 100.00f		//White Percent Avg Correction (brightness correction) Higher values = more exposure, lower = less exposure. Adjust by small amounts, eg: increments of 1
	#define WhitePoint 1.00f		//Whitepoint Avg (fog correction) Adjust by small amounts, eg: increments of 0.01
	#define BlackLevel 0.038f		//black levels for (Shadow correction) Adjust by small amounts, eg: increments of 0.01
#endif

//-[SHARPEN OPTIONS]
#if (LUMA_SHARPEN == 1)
	#define SharpenStrength 0.40f   //[0.10 to 1.00] Strength of the sharpening
	#define SharpenClamp 0.015f  	//[0.000 to 1.000] Limits maximum amount of sharpening a pixel recieves - Default is 0.035
	#define Pattern 9        		//[1|2|3|4|8|9] Choose a sample Pattern. 1 = Fast, 2 = Normal, 3 = Wider, 4 = Pyramid shaped.
	#define OffsetBias 6.0  		//[1.0 to 6.0] Offset bias adjusts the radius of the sampling Pattern. Lower values (eg: 1.0) - cleaner crisp sharpen, higher (eg: 6.0) - deeper textured sharpen.
	#define ShowSharpen 0   		//[0 or 1] (DEBUG) Visualize the strength of the sharpen (multiplied by 4 to see it better)
#endif

//-[VIBRANCE OPTIONS]
#if (INTELLI_VIBRANCE == 1)
	#define Vibrance 0.10f 			//[-1.00 to 1.00] Intelligently adjusts vibrance, (Example: plus values are generally more suited to anime-style games, minus to realistic-style).
#endif

//-[CONTRAST OPTIONS]
#if (S_CURVE_CONTRAST == 1)
	#define CurveType 0				//[0|1|2] Choose what to apply contrast to. 0 = Luma, 1 = Chroma, 2 = both Luma and Chroma. Default is 0 (Luma)
	#define CurvesContrast 0.60f	//[-1.00 to 1.00] The amount of contrast you want. You will need to adjust this differently for each curve formula.
	#define CurvesFormula 12		//[1|2|3|4|5|6|7|8|9|10|11|12] The contrast s-curve you want to use. See line: #1298+ in shader.fx for info on each curve
#endif

//-[DITHER OPTIONS]
#if (SUBPIXEL_DITHERING == 1)
	#define DitherMethod 2  		//[1 or 2] 1 = Ordering dithering (good and very fast), 2 = Random dithering (even better dithering but not as fast)
#endif

//-[CRT OPTIONS]
#if (CRT_EMULATION == 1)
	#define Strength 1.00			//[0.50-2.00]Strength of the CRT Effect.
	#define DimmingStrength 0.75	//[-1.00-1.00]Brightness of the screen. 1.00 being default.
	#define FilterStrength 0.25		//[0.00-1.00] Strength of the CRT blur filtering.
#endif

//-[VIGNETTE OPTIONS]
#if (VIGNETTE == 1)
	#define VignetteType       1  //[1|2|3] 1 = Original, 2 = New, 3 = TV style
	#define VignetteRatio   1.00  //[0.15 to 6.00]  Sets a width to height ratio. 1.00 (1/1) is perfectly round, while 1.60 (16/10) is 60 % wider than it's high.
	#define VignetteRadius  1.00  //[-1.00 to 3.00] lower values = stronger radial effect from center
	#define VignetteAmount -2.50  //[-4.00 to 1.00] Strength of black. -2.00 = Max Black, 1.00 = Max White.
	#define VignetteSlope      8  //[2 to 16] How far away from the center the change should start to really grow strong (odd numbers cause a larger fps drop than even numbers)
#endif
//-END OF USER OPTIONS.