1
0

__shdBulbTonemapUncharted2.fsh 674 B

1234567891011121314151617181920212223242526272829
  1. varying vec2 v_vTexcoord;
  2. varying vec4 v_vColour;
  3. uniform float u_fExposure;
  4. uniform sampler2D u_sLightMap;
  5. const float gamma = 2.2;
  6. vec3 Uncharted2(vec3 color)
  7. {
  8. float A = 0.15;
  9. float B = 0.50;
  10. float C = 0.10;
  11. float D = 0.20;
  12. float E = 0.02;
  13. float F = 0.30;
  14. return ((color*(A*color+C*B)+D*E)/(color*(A*color+B)+D*F))-E/F;
  15. }
  16. void main()
  17. {
  18. gl_FragColor = v_vColour*texture2D(gm_BaseTexture, v_vTexcoord);
  19. gl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(gamma));
  20. vec4 light = texture2D(u_sLightMap, v_vTexcoord);
  21. gl_FragColor.rgb = pow(Uncharted2(u_fExposure*4.0*gl_FragColor.rgb*light.rgb), vec3(1.0/gamma));
  22. }