#ifndef __EYE_ADAPTATION__ #define __EYE_ADAPTATION__ // Optimal values for PS4/GCN // Using a group size of 32x32 seems to be a bit faster on Kepler/Maxwell // Don't forget to update 'EyeAdaptationController.cs' if you change these values ! #define HISTOGRAM_BINS 64 #define HISTOGRAM_TEXELS HISTOGRAM_BINS / 4 #define HISTOGRAM_THREAD_X 16 #define HISTOGRAM_THREAD_Y 16 float GetHistogramBinFromLuminance(float value, float2 scaleOffset) { return saturate(log2(value) * scaleOffset.x + scaleOffset.y); } float GetLuminanceFromHistogramBin(float bin, float2 scaleOffset) { return exp2((bin - scaleOffset.y) / scaleOffset.x); } #endif // __EYE_ADAPTATION__