I’m trying to learn Niagara, and I have a fundamental question:
If you have a gun blueprint that takes care of firing bullets, do you spawn a whole particle system per bullet impact, or just place a particle system somewhere on the gun and then spawn a particle per impact?
It sounds a bit wasteful to spawn an “entire” particle system per impact, especially if it’s for a fast firing machine gun, but perhaps particle systems are set up in such a way that it’s actually more expensive to feed them a unique transform per particle? Does anyone know?
(PS. Is there no dedicated Niagara forum, since it’s still in development?)
The standard approach is to create a new particle system (component and actor etc.) for each impact. Even UT4 does this, and it’s target framerate is 120hz.
If you’re worried about performance, you can ‘pool’ a bunch of them at the start of the game and reuse them (I believe UT does that also). The biggest cost to be honest, is probably the cost of spawning the actor which contains the particle system. If you can aleviate that, you’ll be fine. Creating a pre-allocated pool of them and reusing them is probably best in terms of maintaining flexibility and performance.
Also, in regards to spawning multiple effects in one system - the problem then is that the bounds of the system grow exponentially - so you start paying some rendering cost for things which aren’t even on-screen.
We didn’t have a dedicated forum for Cascade so I wouldn’t imagine we’ll get one for Niagara - but you never know!
There are however dedicated niagara channels on the “realtimevfx.com” discord, and the “unreal slackers” discord channel.
they should be easy to find with a search engine.