How can I optimize a particle emitter in the vicinity that gives the light volume?

Hello everyone! I am working on a location on the street, and the light from the street lamps should create a kind of volumetric light. In principle, it looks good, but I noticed a very big problem with it (compared to other Emitters) when the camera is close to or directly in the Emitter’s radiation area, the fps on almost any device starts to drop by an average of ~40%

Screenshots from the game:

I ran the test on two devices that I had access to:

  • iPhone 15 - fps dropped to an average of ~44 (sometimes even down to 39)
  • MacBook Pro 16 2023 M3 Pro 36 - fps dropped to an average of ~54
  • MacBook Air M1 - fps dropped to an average of ~48/43
  • I also tested it on some Windows computers (more precisely, laptops). I can’t say exactly what the specifications were, but they were gaming computers - fps dropped to an average of ~ weaker 30 fps / more powerful 51 fps

In any case, I wouldn’t want the frame rate to drop so much because of just ONE emitter. I understand that it can drop, but not that much. With other emitters (other textures, etc.), the frame rate dropped by a maximum of 2-3 fps. I won’t even mention if the player has an old phone or laptop.

I searched the entire internet but couldn’t find an answer. I simplified the emitter as much as possible, but nothing helped; the fps still drops.

I also decided to take a look at MicroProfile and saw that rendering transparent particles takes a lot of time (I don’t know MicroProfile very well, so this is just a guess):

ParticleEmitter model:
:package: DustFile.rbxm (5.0 KB)

Texture (Flipbook is not used in this ParticleEmitter):


Size: 256x256

Please let me know if you know how to improve performance and fix this issue in the particle emitter. Thank you!

4 Likes