Game Development Community

Are there any known problems with large amounts of particles?

by Stefan Lundmark · in Torque Game Engine Advanced · 07/27/2006 (11:31 am) · 9 replies

I'll be short.

Are there any known cases of crashes or texture-trashing when using large amounts of particles, or concentrated volumes of particles?

#1
07/31/2006 (12:36 pm)
Nope, but there could be if you find them ;)
#2
07/31/2006 (12:54 pm)
I would say there'd be some performance issues with a large enough quantity of particles.
#3
08/05/2006 (8:04 am)
Quote:
Nope, but there could be if you find them ;)

Our projectile has a trail emitter much like the crossbow.
We lowered ejectionPeriodMS from 3 to 2 and went ingame to test it. Upon shooting the projectile, this is what happens:

Release build

* Three of our test platforms crash.
* My development laptop gets severe texture trashing on the terrain and the framerate drops below 10. However, it does not crash and stays ingame.

Debug build

* No texture trashing, but an assert:

Quote:
Fatal: (\source\tse\engine\gfx\D3d\gfxD3DDevice.cpp @ 1345

Cannot allocate that many verts in a violatile vertex buffer, increase MAX_DYNAMIC_VERTS! -- BJG
#5
08/07/2006 (11:11 am)
Stefan, I have weapons too with an ejection period of 2 and no remarkable framerate drop or alike. Hmm, wasn't able to see the image you posted, maybe your server is still down?
#6
08/07/2006 (11:40 am)
@Stefan - You are creating more particles than can be held in the dynamic vertex buffer. You just need to increase the pool size in gfxD3DDevice.h, crank up the MAX_DYNAMIC_VERTS. This pool is a fixed size, so you need to scale it to the needs of your game.

@Chris - I don't see any particles in that video ;)
#7
08/07/2006 (2:06 pm)
Waterfall, in the video. Precipitation causes it as well. Fully reproduceable, as outlined in that thread.
#8
08/07/2006 (2:28 pm)
@Brian: Any known issues with cranking up that value? It's gotta be there for a reason, right?

Edit: Hey, nevermind. I'll test it out and ask questions if need be, after that. :)
#9
08/12/2006 (1:24 am)
Sure - we set it to an arbitrary value that seemed to work for all the situations we tried it in. If you set it very high there'll probably be wasted space unless you end up needing that much geometry all the time... I think Brian may also have changed around how volatile buffers work since MS2 but I could be wrong.