// mcpro24fps mSLog Extreme to Gamma 2.2 // ver. 2020-04-13 __CONSTANT__ float A = 0.616596; __CONSTANT__ float B = 0.03; __CONSTANT__ float C = 0.31; __CONSTANT__ float D = 0.01026; __CONSTANT__ float E = 1.08; __CONSTANT__ float LEVEL = 18.0; __DEVICE__ float3 transform(int p_Width, int p_Height, int p_X, int p_Y, float p_R, float p_G, float p_B) { float3 rgb; rgb.x = p_R; rgb.y = p_G; rgb.z = p_B; rgb.x = (_powf(10.0, ((E*rgb.x - A - B) / C)) - D)/LEVEL; rgb.y = (_powf(10.0, ((E*rgb.y - A - B) / C)) - D)/LEVEL; rgb.z = (_powf(10.0, ((E*rgb.z - A - B) / C)) - D)/LEVEL; //Gamma 2.2 rgb.x = rgb.x < 0 ? 0 : _powf(rgb.x, 1.0f/2.2f); rgb.y = rgb.y < 0 ? 0 : _powf(rgb.y, 1.0f/2.2f); rgb.z = rgb.z < 0 ? 0 : _powf(rgb.z, 1.0f/2.2f); return rgb; }