diff --git a/projects/fire_works/shaders/add.comp b/projects/fire_works/shaders/add.comp index 70a15c4e93e07728c081c54d4fe49469277dab8f..1846085e68090574614eb4562f816c8dfec3fc28 100644 --- a/projects/fire_works/shaders/add.comp +++ b/projects/fire_works/shaders/add.comp @@ -20,9 +20,9 @@ void main() { // Reverse alpha values: // -> Because clear value is always vec4(0, 0, 0, 1) which is now vec4(0, 0, 0, 0)! - outParticles.a = 1.0f - outParticles.a; - outSmoke.a = 1.0f - outSmoke.a; - outTrails.a = 1.0f - outTrails.a; + outParticles.a = 1.0f - clamp(outParticles.a, 0, 1); + outSmoke.a = 1.0f - clamp(outSmoke.a, 0, 1); + outTrails.a = 1.0f - clamp(outTrails.a, 0, 1); // TODO: add noise to the smoke here! @@ -34,5 +34,10 @@ void main() { outParticles.a + outSmoke.a + outTrails.a ); + result.r = clamp(result.r, 0, 1); + result.g = clamp(result.g, 0, 1); + result.b = clamp(result.b, 0, 1); + result.a = clamp(result.a, 0, 1); + imageStore(outImage, uv, result); } \ No newline at end of file diff --git a/projects/fire_works/shaders/particle.frag b/projects/fire_works/shaders/particle.frag index e1fa6de0a0280c4be1e09cc8e29346b3e11b19cc..97221ef2fd9fcbf204bfb834719b309aaf72a3cc 100644 --- a/projects/fire_works/shaders/particle.frag +++ b/projects/fire_works/shaders/particle.frag @@ -14,7 +14,7 @@ void main() { const float value = length(passPos); if (value < 0.5f) { - outColor = vec4(passColor, value * 2.0f); // Use inverse alpha value + outColor = vec4(passColor, max(value * 2.0f, 0.0f)); // Use inverse alpha value } else { discard; } diff --git a/projects/fire_works/shaders/smoke.frag b/projects/fire_works/shaders/smoke.frag index 30fb3667ef1f54d68540fd760c846c8dca6d0aa4..ad4ae33d570cc5b5370faaea7872eab99e43e6b6 100644 --- a/projects/fire_works/shaders/smoke.frag +++ b/projects/fire_works/shaders/smoke.frag @@ -53,8 +53,12 @@ void main() { ); } + result.r = clamp(result.r, 0, 1); + result.g = clamp(result.g, 0, 1); + result.b = clamp(result.b, 0, 1); + // Inverse alpha value - result.a = 1.0f - result.a; + result.a = 1.0f - clamp(result.a, 0, 1);; if (result.a < 1.0f) { outColor = result;