From 24765f10f93c680773b1ce7b94a04926662482c4 Mon Sep 17 00:00:00 2001 From: TheJackiMonster <thejackimonster@gmail.com> Date: Tue, 26 Jul 2022 17:10:49 +0200 Subject: [PATCH] Normalized event colors and adjusted blending function Signed-off-by: TheJackiMonster <thejackimonster@gmail.com> --- projects/fire_works/shaders/generation.comp | 2 +- projects/fire_works/shaders/smoke.inc | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/projects/fire_works/shaders/generation.comp b/projects/fire_works/shaders/generation.comp index 4b7ba4f5..3b4d2b94 100644 --- a/projects/fire_works/shaders/generation.comp +++ b/projects/fire_works/shaders/generation.comp @@ -122,7 +122,7 @@ void main() { direction = events[event_id].direction; } - vec3 color = events[event_id].color; + vec3 color = normalize(events[event_id].color); const float v = events[event_id].velocity; vec3 velocity = vec3(0.0f); diff --git a/projects/fire_works/shaders/smoke.inc b/projects/fire_works/shaders/smoke.inc index 87eaa36b..8886a788 100644 --- a/projects/fire_works/shaders/smoke.inc +++ b/projects/fire_works/shaders/smoke.inc @@ -19,9 +19,12 @@ float smokeDensity(float size) { } vec4 smokeBlend(vec4 dst, vec4 src) { + const float f = max(1.0f - dst.a, 0.0f); + const float a = clamp(0.0f, 1.0f, src.a); + return vec4( - dst.rgb + src.rgb * src.a * (1.0f - dst.a), - dst.a + src.a * (1.0f - dst.a) + dst.rgb + src.rgb * a * f, + dst.a + a * f ); } -- GitLab