I’m currently having issues implementing the PostProcessingStack in our game, particularly with instances of particle systems on moving objects. Almost all of the particles in our game are opaque meshes (ie. not alpha billboards) using Shuriken.
Most particles work fine, but several particle effects that we have parented to other Transforms are displaying incorrectly.
What the particles look like with no Motion Blur, with Blur and with the Motion Vector arrows:
The motion vector debug view is particularly interesting, the arrows are wildly different and all seem to be pointing towards the world origin (The giant orange drill sits roughly at 0,0,0).
I’d usually just turn off the motion vectors if this was a regular mesh, but since it’s a Shuriken particle system I can’t see a way to actually access the Mesh Renderer.
This is with the latest build (Beta 4), and in Unity 5.5.1p3 in Editor and builds on Windows (untested on OSX/Linux). We’re also seeing the problem on console platforms. I’m using Deferred rendering with FXAA, Bloom, Grain and Vignette, although changing the other settings don’t seem to have any impact on this issue.
We have not added the motion vector selection drop-down to the Particle System Renderer Inspector. I will fix that, but of course this doesn’t help you right now.
We don’t support per-particle motion vectors. What I think you are seeing, is per-object (i.e. camera + transform).
If you are able to write your own shaders, you can try to implement this yourself. In Unity 5.5, you are able to send custom particle data to the shader (See Custom Vertex Streams in the Renderer Module). If you send the particle velocities, you could use them in a motion generation pass.
Note, that for perfect motion vectors, you would also have to use the rotational speed (which I think we only exposed to shaders in 5.6) and also changing particle size (which we currently have no way of tracking). So you would still expect to see some issues (eg ghosting) if trying to write motion vectors for particles with changing size/rotational speed.
Awesome, that’s a huge help. I ended up just using that script snippet on the affected particle systems, we can probably live without the per-particle motion blur in our case.
I had the same problem when I tried to make a muzzle flash. I’m not sure if this is a solution, but setting the motion vector to force no motion fixed it for me.