We’re rendering a cubemap of our scene dynamically and we noticed recently that some of our particle system don’t seem to simulate properly when rendered into the cubemap.
- If I render those particle systems in regular 2D, then everything works
- If we render particles in stereo, everything seems to work
- If I render the particle systems in only one face of the cubemap, it all works as expected
- If I render the particle systems in more than one face of the cubemap, then the particles systems don’t simulate as expected.
To render the cubemap, I just create a different ViewFamily with only one View per face (as each face has a different render target) so it seems to me that something’s going wrong with Simulation and multiple ViewFamily (since Stereo has 2 views for one ViewFamily and it works as expected). Then for each ViewFamily, I create an instance of the FDeferredShadingSceneRenderer and call the Render() function. I would expect this to work like a charm.
I’ve been trying to debug the code to see if I can implement a fix for this. Any thoughts on what to look for?
I’m not sure how this could affect the actual simulation of the particles but possibly some part for the rendering.
Could you provide more details on exactly how/what is broken?
Can you isolate the issue to certain modules in cascade? Certain material properties? Or is it all particle systems, even the default with a default material?
Sorry for the delayed reply. We noticed that issue first when looking at the alpha animation over the life of the particle. The animation wouldn’t happen. I guess you may be correct that the simulation is happening as the particles would die once their alpha would reach 0 (and they would disappear). We wouldn’t see the alpha change on the particle over time though.
So my artists made me a separate test, and I noticed that particles wouldn’t move either. They are just frozen in time. This made me think that it was a simulation issue. We tried for both a GPU particle and CPU and issue remains on both.
The particle system I have for testing has the following attributes:
- Initial SIze
- Initial Velocity
- Size By Life
- Vector Field (although that was added to see if it would make any difference, not having it still causes the particles to look frozen)
LODMethod is set to automatic.
So maybe its a problem that the vertexbuffer for the particle system doesn’t get refreshed when using multiple ViewFamily, like a buffer swapping mechanism is not working as expected or something. Maybe I need to set something up in the ViewFamily to resolve this issue?