Advertisement
Guest User

Untitled

a guest
Feb 3rd, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. uniform sampler2D Render;
  2. uniform sampler2D Tex0;
  3.  
  4. const float A = 0.22;
  5. const float B = 0.30;
  6. const float C = 0.10;
  7. const float D = 0.20;
  8. const float E = 0.01;
  9. const float F = 0.30;
  10. const float W = 11.2;
  11.  
  12. vec3 lerp(vec3 a, vec3 b, float w)
  13. {
  14. return a + w *(b - a);
  15. }
  16.  
  17. vec3 uncharted2Tonemap(vec3 x)
  18. {
  19. return ((x * (A * x + C * B) + D * E) / (x * (A * x + B) + D * F)) - E / F;
  20. }
  21.  
  22. vec4 applyToneMapping(vec4 color, vec2 uv)
  23. {
  24. color = vec4(pow(color.rgb, vec3(2.2)), color.a);
  25. vec4 bloom = texture2D(Render, uv);
  26. color.rgb += 0.5 * bloom.rgb;
  27. const float gamma = 1.8;
  28. float exposureBias = 4.0;
  29. color.rgb = uncharted2Tonemap(exposureBias * color.rgb);
  30. vec3 whiteScale = 1.0 / uncharted2Tonemap(vec3(W, W, W));
  31. color.rgb *= whiteScale;
  32. return vec4(pow(color.rgb, vec3(1.0 / gamma)), color.a);
  33. }
  34.  
  35. void main()
  36. {
  37. vec2 uv = gl_TexCoord[0].st;
  38. vec4 color = texture2D(Tex0, uv);
  39. gl_FragColor = applyToneMapping(color, uv);
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement