From cf0c7a2d1124cddc488fcfc5c70ebeb3f6d42391 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Sat, 19 Jun 2021 15:15:12 -0500 Subject: [PATCH] particle emitter bounds box fix take the distance particles can move over thier lifetime into account for emitter bounds. in addition, don't zero out the y axis --- Engine/source/T3D/fx/particleEmitter.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Engine/source/T3D/fx/particleEmitter.cpp b/Engine/source/T3D/fx/particleEmitter.cpp index b7f8a58e1..3af8df7c1 100644 --- a/Engine/source/T3D/fx/particleEmitter.cpp +++ b/Engine/source/T3D/fx/particleEmitter.cpp @@ -1551,9 +1551,13 @@ void ParticleEmitter::updateBBox() for (Particle* part = part_list_head.next; part != NULL; part = part->next) { - Point3F particleSize(part->size * 0.5f, 0.0f, part->size * 0.5f); - minPt.setMin( part->pos - particleSize ); - maxPt.setMax( part->pos + particleSize ); + for (Particle* part = part_list_head.next; part != NULL; part = part->next) + { + Point3F particleSize(part->size * 0.5f); + F32 motion = getMax((part->vel.len() * part->totalLifetime / 1000.0f), 1.0f); + minPt.setMin(part->pos - particleSize - Point3F(motion)); + maxPt.setMax(part->pos + particleSize + Point3F(motion)); + } } mObjBox = Box3F(minPt, maxPt);