RuntimeData/shader/ToneMap/Uncharted2.glsl

21 lines
574 B
Plaintext
Raw Normal View History

2020-05-22 19:59:34 +08:00
// Uncharted 2 tone map
// see: http://filmicworlds.com/blog/filmic-tonemapping-operators/
vec3 toneMapUncharted2Impl(vec3 color)
{
const float A = 0.15;
const float B = 0.50;
const float C = 0.10;
const float D = 0.20;
const float E = 0.02;
const float F = 0.30;
return ((color*(A*color+C*B)+D*E)/(color*(A*color+B)+D*F))-E/F;
}
vec3 ToneMapping(vec3 color)
{
const float W = 11.2;
color = toneMapUncharted2Impl(color * 2.0);
vec3 whiteScale = 1.0 / toneMapUncharted2Impl(vec3(W));
return linearTosRGB(color * whiteScale);
}