ReinhardTonemapping.glsl 562 B

1234567891011121314151617181920212223
  1. uniform sampler2D colorTexture;
  2. varying vec2 v_textureCoordinates;
  3. #ifdef AUTO_EXPOSURE
  4. uniform sampler2D autoExposure;
  5. #endif
  6. // See equation 3:
  7. // http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf
  8. void main()
  9. {
  10. vec4 fragmentColor = texture2D(colorTexture, v_textureCoordinates);
  11. vec3 color = fragmentColor.rgb;
  12. #ifdef AUTO_EXPOSURE
  13. float exposure = texture2D(autoExposure, vec2(0.5)).r;
  14. color /= exposure;
  15. #endif
  16. color = color / (1.0 + color);
  17. color = czm_inverseGamma(color);
  18. gl_FragColor = vec4(color, fragmentColor.a);
  19. }