Hi again!
I went back and tested again, and it seems you’re right. I swear I got it working back in 4.13 or so when testing solution, but no luck now. Initialcolor sets all gpu particles to same color, but works for cpu particles like you said. Found some other threads about the same issue, and some official answer:
[Particle initial color param for GPU particles not working - FX - Epic Developer Community Forums][1]
So it seems we can’t use particle color anymore for gpu subuvs.
Looking for another solution, I found this helpful page about what parameters are supported for gpu particles:
[Creating Visual Effects in Niagara for Unreal Engine | Unreal Engine 5.1 Documentation][2]
So… we need ideally two parameters, x and y. They need to be per-particle, and not changing over life.
I made a test using particle size. In my snow system I randomize particle size between 1-2 for each particle. If you set “camera alignment” to “rectangle” you get them to be not-the-same. So great, we have a random parameter between 1 and 2 that are different for each particle (sadly they also affect size, but let’s try anyway!).
Here is the setup:
Ideas for improvement would be welcome. I don’t know how effecient it is, but I don’t think the calculations are very expensive.
Right now an annoying thing is that large snowflakes will have the same subuv, and small ones the same. Could probably be fixed with some math.