28 lines
730 B
Forth
28 lines
730 B
Forth
|
// https://www.shadertoy.com/view/lslGzl
|
||
|
|
||
|
vec3 uncharted2Tonemap(const vec3 x) {
|
||
|
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 ((x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F)) - E / F;
|
||
|
}
|
||
|
|
||
|
vec3 tonemapUncharted2(const vec3 color) {
|
||
|
const float W = 11.2;
|
||
|
const float exposureBias = 2.0;
|
||
|
vec3 curr = uncharted2Tonemap(exposureBias * color);
|
||
|
vec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W));
|
||
|
return curr * whiteScale;
|
||
|
}
|
||
|
|
||
|
out vec4 color;
|
||
|
|
||
|
void main(void) {
|
||
|
vec2 uv = TEXCOORD.st;
|
||
|
vec4 src = texture2D(iChannel0, uv);
|
||
|
color = vec4( tonemapUncharted2(src.xyz), src.a);
|
||
|
}
|