Has anybody experienced a glitch similar to this :
Here i have a GPU emitter setup as a fountain with multiple mesh renderer and when i spawn a few of them at the same place, some particle spawn with their mesh all messed up.
I did some debugging with RenderDoc and it seems the vertices on some instances of the mesh particles are incorrect in the output of the vertex shader for some reason.
To Reproduce
I couldn’t find a way to reproduce the bug in a consistent manner but here is the simplest setup i had where it did occur:
1. Set a Project in DirectX12
2. Create a new default map
3. Setup a Niagara system with the fountain emitter template. Change for a GPU Emitter and add multiple mesh renderer, each with different RendererVisibility. Set each particle to a random VisibilityTag.
4. Spawn many system at location (0,0,0) either by blueprint in PIE or by copy paste in editor
With enough system overlapping the bug should appear.
Additional info
Although this setup is sufficient to trigger the bug, I found that adding these to the scene make it way more likely to occur
- Set CastShadow on the niagara systems
spawned in the world and have one or
more movable light casting shadow - Add one or more SceneCapture
component (with a render target and
set to tick every frame)
If you do that, the engine might crash unless you set the Niagara.GPUDrawIndirectArgsBufferSlack to something higher than the default value of 2.
- Setting Niagara.GPUDrawIndirectArgsBufferSlack=16
seems enough
System:
- UE4.26 and 4.27
- Windows 10
- Intel Core i9-10900
- Tested on RTX3080, RTX2070 and QUADRO
RTX8000