Search Unity

Bug [ URP ] Particle Systems don't have GPU Instancing option

Discussion in 'General Graphics' started by KarlKarl2000, Jan 23, 2022.

  1. KarlKarl2000

    KarlKarl2000

    Joined:
    Jan 25, 2016
    Posts:
    606
  2. bgolus

    bgolus

    Joined:
    Dec 7, 2012
    Posts:
    12,343
    You can use the default quad mesh to get most of the same functionality, plus instancing.
     
  3. KarlKarl2000

    KarlKarl2000

    Joined:
    Jan 25, 2016
    Posts:
    606
    Thanks for the response @bgolus, I just gotta wonder if there are performance hits if quad meshes are used for particles? I've got a lot of particle systems... Guess the only way is to test it out .. but seems odd that Unity doesn't have GPU instance option for their URP particle materials..
     
  4. bgolus

    bgolus

    Joined:
    Dec 7, 2012
    Posts:
    12,343
    Instancing is great on certain platforms / GPUs when you want to render a huge number of particles. Like tens of thousands of them. Under that it usually won't be a performance improvement, and can be worse for performance. Not a lot worse, but worse.

    The SRPs have both generally been avoiding instancing in favor of the SRP Batcher, but that doesn't help with the default particle system. Though the VFX graph is 100% GPU instancing at all times.
     
  5. richardkettlewell

    richardkettlewell

    Unity Technologies

    Joined:
    Sep 9, 2015
    Posts:
    2,285
    We still have to prepare per-instance data on the CPU even when using billboards. We found that billboards have so few verts that there wasn’t really any perf benefit (at least not enough to justify investing the effort in it) as bgolus says, you can use a quad mesh to do the exact same thing too. You could profile this and see if it’s a big win for you or not.
     
    bgolus likes this.