瀏覽代碼

Merge pull request #497 from Azaezel/alpha40/particleBounds

particle emitter bounds box fix
Lukas Joergensen 4 年之前
父節點
當前提交
91c985e518
共有 1 個文件被更改,包括 7 次插入3 次删除
  1. 7 3
      Engine/source/T3D/fx/particleEmitter.cpp

+ 7 - 3
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);