Bläddra i källkod

fixed alpha channel being removed by lighting, lighting formula is now correct

Kajetan Johannes Hammerle 5 år sedan
förälder
incheckning
787ac5d5ce
1 ändrade filer med 3 tillägg och 3 borttagningar
  1. 3 3
      src/me/hammerle/snuviengine/shader/fragment.fs

+ 3 - 3
src/me/hammerle/snuviengine/shader/fragment.fs

@@ -26,14 +26,14 @@ in vec2 loc;
 in vec4 vColor;
 out vec4 color;
 
-vec4 getLight()
+vec3 getLight()
 {
     vec3 light = vec3(0, 0, 0);
     for(int i = 0; i < 32; i++)
     {
         light += lights[i].color * max(1 - lights[i].strength * length(loc - lights[i].pos), 0);
     }
-    return vec4(min(light, vec3(1, 1, 1)), 1);
+    return light;
 }
 
 void main(void)
@@ -64,6 +64,6 @@ void main(void)
 
     if(useLight)
     {
-        color = pow(pow(color, vec4(1 / 2.2)) * vec4(ambientLight, 1.0) + getLight(), vec4(2.2));
+        color = vec4(pow(pow(color.xyz, vec3(1 / 2.2)) * (ambientLight + getLight()), vec3(2.2)), color.w);
     }
 }