| 1234567891011121314151617181920212223242526272829 |
- varying vec2 v_vTexcoord;
- varying vec4 v_vColour;
- uniform float u_fExposure;
- uniform sampler2D u_sLightMap;
- const float gamma = 2.2;
- vec3 Uncharted2(vec3 color)
- {
- float A = 0.15;
- float B = 0.50;
- float C = 0.10;
- float D = 0.20;
- float E = 0.02;
- float F = 0.30;
-
- return ((color*(A*color+C*B)+D*E)/(color*(A*color+B)+D*F))-E/F;
- }
- void main()
- {
- gl_FragColor = v_vColour*texture2D(gm_BaseTexture, v_vTexcoord);
- gl_FragColor.rgb = pow(gl_FragColor.rgb, vec3(gamma));
-
- vec4 light = texture2D(u_sLightMap, v_vTexcoord);
-
- gl_FragColor.rgb = pow(Uncharted2(u_fExposure*4.0*gl_FragColor.rgb*light.rgb), vec3(1.0/gamma));
- }
|