/*==============================================================================*\
| EFFECT PARAMETERS - DEPTH BASED EFFECTS |
\*==============================================================================*/
/*==============================================================================*/
//AMBIENT OCCLUSION - GLOBAL PARAMETERS
#define AO_METHOD 3 //[1 to 2] 1: SSAO | 2: Raymarch AO | 3: HBAO | 4: SSGI
#define AO_SHARPNESS 0.5 //[0.05 to 2.0] 1: AO sharpness, higher means more sharp geometry edges but noisier AO, less means smoother AO but blurry in the distance.
#define AO_DEBUG 0 //[0 to 2] Enables raw debug output. 1: occlusion | 2: color bouncing (SSGI only!)
#define AO_LUMINANCE_CONSIDERATION 1 //[0 or 1] Enables dampening of AO intensity on bright pixels, to preserve bright light sprites or beter lit areas. Not for GI!
#define AO_LUMINANCE_LOWER 0.2 //[0.0 to 1.0] Lower brightness threshold where AO starts to fade out. Below this threshold AO has full power.
#define AO_LUMINANCE_UPPER 0.7 //[0.0 to 1.0] Upper brightness threshold where AO starts to fade out. Above this threshold AO is 0.
//AMBIENT OCCLUSION - SSAO
#define iSSAOSamples 128 //[32 to 128] Amount of samples. Don't set too high or shader compilation time goes through the roof.
#define fSSAOSamplingRange 50.0 //[10.0 to 50.0] SSAO sampling range. High range values might need more samples so raise both.
#define fSSAODarkeningAmount 0.2 //[0.0 to 5.0] Amount of SSAO corner darkening
#define fSSAOBrighteningAmount 0.2 //[0.0 to 5.0] Amount of SSAO edge brightening
//AMBIENT OCCLUSION - RAYMARCH AO
#define iRayAOSamples 78 //[10 to 78] Amount of sample "rays" Higher means more accurate AO but also less performance.
#define fRayAOSamplingRange 0.0005 //[0.0001 to 0.02] Range of AO sampling. Higher values ignore small geometry details and shadow more globally.
#define fRayAOMaxDepth 0.02 //[0.01 to 0.2] Range clip factor to avoid far objects to occlude close objects just because they are besides each other on screen.
#define fRayAOMinDepth 0.00003 //[0.000 to 0.001] Minimum depth difference cutoff to prevent (almost) flat surfaces to occlude themselves.
#define fRayAOPower 2.0 //[0.2 to 5.0] Amount of darkening.
//AMBIENT OCCLUSION - HBAO
#define iHBAOSamples 7 //[7 to 36] Amount of samples. Higher means more accurate AO but also less performance.
#define fHBAOSamplingRange 1.6 //[0.5 to 5.0] Range of HBAO sampling. Higher values ignore small geometry details and shadow more globally.
#define fHBAOAmount 1 //[1.0 to 10.0] Amount of HBAO shadowing.
#define fHBAOClamp 0 //[0.0 to 1.0] Clamps HBAO power. 0.0 means full power, 1.0 means no HBAO.
#define fHBAOAttenuation 0.2 //[0.001 to 0.2] Affects the HBAO range, prevents shadowing of very far objects which are close in screen space.
//AMBIENT OCCLUSION - SSGI
#define iSSGISamples 24 //[5 to 24] Amount of SSGI sampling iterations, higher means better GI but less performance.
#define fSSGISamplingRange 0.5 //[5.0 to 80.0] Radius of SSGI sampling.
#define fSSGIIlluminationMult 4.5 //[1.0 to 8.0] Multiplier of SSGI illumination (color bouncing/reflection).
#define fSSGIOcclusionMult 0.8 //[1.0 to 10.0] Multiplier of SSGI occlusion.
#define fSSGIModelThickness 5.0 //[0.5 to 100.0] Amount of unit spaces the algorithm assumes the model's thickness. Lower if scene only contains small objects.
#define fSSGISaturation 1.8 //[0.2 to 2.0] Saturation of bounced/reflected colors.