Jelajahi Sumber

Reverse saturation fix also for GLSL.

Lasse Öörni 9 tahun lalu
induk
melakukan
5804347ab2

+ 1 - 1
bin/CoreData/Shaders/GLSL/LitParticle.glsl

@@ -112,7 +112,7 @@ void PS()
         #endif
         float diffZ = abs(depth - particleDepth) * (cFarClipPS - cNearClipPS);
         float fade = clamp(1.0 - diffZ * cSoftParticleFadeScale, 0.0, 1.0);
-        diffColor.a -= fade;
+        diffColor.a = max(diffColor.a - fade, 0.0);
     #endif
 
     #ifdef PERPIXEL

+ 2 - 2
bin/CoreData/Shaders/GLSL/UnlitParticle.glsl

@@ -67,9 +67,9 @@ void PS()
         float diffZ = abs(depth - particleDepth) * (cFarClipPS - cNearClipPS);
         float fade = clamp(1.0 - diffZ * cSoftParticleFadeScale, 0.0, 1.0);
         #ifndef ADDITIVE
-            diffColor.a -= fade;
+            diffColor.a = max(diffColor.a - fade, 0.0);
         #else
-            diffColor.rgb -= fade;
+            diffColor.rgb = max(diffColor.rgb - fade, vec3(0.0, 0.0, 0.0));
         #endif
     #endif