Have an option to pre-render particles when emitter is enabled

I’m fairly sure I posted about this a year or so back but it never got much of a response.

I’m trying to make snow for a project and due to particle amount limitations, I’ll need to spawn emitters in and out based on the player’s camera position. This isn’t working very well because each time I spawn a new emitter in, it takes ~7 seconds for the snow to fall all the way to the ground. I need to be able to pre render particles so that when a new emitter spawns in, the snow is already a complete flow from the emitter to the end point.

I know I can adjust the transparency of the particles and have them running in the background, but wouldn’t it still affect the particle limit? Plus that just seems inefficient.

12 Likes

Sounds like you need a Prewarm option.

In Unity, emitters have an option called Prewarm that makes them start one cycle in (basically it skips to the death of the first particle). Very useful for this kind of stuff where you want it to look like it was always there instead of “warming up” to that idle state.

…and for the record, yes transparent particles would still affect the limit (and performance for that matter). Particles are rendering completely transparent != particles are not rendering and do not exist.

3 Likes

Yeah that’s what I figured. Someone previously told me to do it that way kind of ignoring the real issue.

For this case where youre spawning and despawning, can’t you just move the despawned ones to where the spawned ones would be and use the property that keeps the particles with the part?

I wouldn’t prewarm snow if i were you

:grin:

If I understand you right, such option would need ‘locked to part’ enabled, as without it, the particles would still need to drop down on new position. I don’t think he want particles to be moving with the character too, as it would look a bit unnatural.

That was the property I was referring to, if you didn’t have that, you would still have the warm up issue

if you’re looking for an option that’ll work for now. there’s two things you could try

1: have the part that’s emitting the particles lead slightly in front of the character, based on how fast they’re moving.
2: play with the scale and transparency so that they’re only being spawned 10-15 studs above.

Yes, but I also mentioned that particles following you would look just odd :stuck_out_tongue:
Like if you’d be moving but you’d be standing still relatively to particles.

That’s actually the most efficient way possible, but it may be not efficient enough. Considering that drop time is ~7s seconds, it may take too much area of particleas.

@doneyes Do you remember that even if limit is reached on whole server, the closest particles will be shown without any issues? It may be helpful but yet not be enough to properly work at big grouping of particles.

No I didn’t know that. I might do some tests to see if I can achieve the effect I need.

Doneyes mentioned that they spawn and despawn the emitters, I’m only suggesting that they are moved to the spawned area when they should have been despawned, not that you start attaching them to the camera. That way the particles for what would have been a newly spawned emitter would already be there and the effect of the “warming up” would be achieved

Oh, I think I understand now. So you mean to have some “grid” to which the bricks (with ParticleEmmiters) would be placed?

If so, your solution is to constantly place bricks above the player (let’s say in circular shape) in relation to that “grid”. But to avoid little “spiking” in particle current positions, you should move only the ones that are getting on the edge of of the brick circle.

That would actually be currently the best way to do this without prewarm property. Nicely done paul :slight_smile:

I hope I made myself clear enough, hard to explain it with words tho.

Yes, that is basically what I was saying and I assume that is the system in place from doneyes, otherwise why would there be a need for spawning and despawning the emitters?
I suppose that assumption is a little dangerous to make. @doneyes Can you clarify if the system we think you’re using is the case?

Well, from what he told, he want to spawn new ones all the time. Solution would be to just move the current ones with ‘Locked to part’ enabled

Gonna necrobump this old thread.
This would be very useful for environment particles where you are dynamically adding/removing them from the scene. Currently I’m trying to work on weather effects by making particles spawn near the camera. But if the camera ever moves too quickly, you will start to see the cracks as the particles take some time before they create a full loop.

1 Like