Fix for overbrigtened alpha blended objects in deferred. Linearize diffuse surface color in the vertex shader before passing it to the fragment shader.

meow-7.2.2
Geenz 2013-04-24 05:16:02 -04:00
parent 95672cabb9
commit fbbbb80752
1 changed files with 5 additions and 3 deletions

View File

@ -172,17 +172,19 @@ void main()
//vec4 color = calcLighting(pos.xyz, norm, diffuse_color, vec4(0.));
vec4 col = vec4(0.0, 0.0, 0.0, diffuse_color.a);
vary_pointlight_col = diffuse_color.rgb;
vec3 diff = pow(diffuse_color.rgb, vec3(2.2));
vary_pointlight_col = diff;
col.rgb = vec3(0,0,0);
// Add windlight lights
col.rgb = atmosAmbient(vec3(0.));
vary_ambient = col.rgb*diffuse_color.rgb;
vary_ambient = col.rgb*diff;
vary_directional.rgb = atmosAffectDirectionalLight(1);
col.rgb = col.rgb*diffuse_color.rgb;
col.rgb = col.rgb*diff;
#if INDEX_MODE != NON_INDEXED_NO_COLOR
vertex_color = col;
#endif