UE4 - GPU particles slip through collision plane

Hi, I am trying to get my glass to land on the floor and stay there. Instead they collide with floor, then they slip through floor. Anyone know how I can get them to stay on the ground plane after they collide?

Here is a link to he UE file. Its just a plane and the particles.
https://drive.google.com/open?id=0B49c5Zdrij6nd0lXMGN3Zm1HSWM

What happens when you set your Radius to 1 instead of 0?

i wish i had the experience with UE as in unity . but maybe check the friction and collision settings of the floor as well?

The nice thing about the (GPU Collision) module is that you do not have to worry about any collision surfaces for meshes in the scene. Since the module uses the Z-Depth buffer from the GPU, you automatically collide with any visible geometry.

1 Like

Increasing the Radius and Radius Bias to 1 did have a small effect. But ultimately they all still fall through ground :frowning: I even took the values way beyond 1 and still not much better results.

i get the same result with my quick test - presumably there’s a precision error in the depth buffer and once the particle has come to rest it ‘pops’ through the ground and then falls away again - none of the physics settings seem to help but if you enable mesh distance fields and change to use that instead of Scene Depth it seems to work correctly.

Alternatively you could always use CPU particles or Meshes of course - if it’s shards of glass from a window breaking or something similar i’d probably go for mix of flipbook and mesh tbh - the advantages of GPU particles aren’t really there for glass shards imo…

Ok, so i did some testing with your scene. It seems the GPU collision is totally dependent on your viewing angle (who would have thought, it uses the z-depth :smile:). Every particle not visible will not collide with anything, as well as every object not visible at the time of collision will obviously also not collide with the particles.
Furthermore, if you look from higher up at the particle system + floor, none of the particles fall through the ground. The steeper the angle the more particles fall through.

This illustrates what i mean (orange cross is the camera, black the floor, red = no particle collision):

3 Likes

I have made two steps forward with this problem and one step back.

I have been able to get the CPU particles to settle and stay on the floor. Though it is not consistent. If I autoactivate it in level they look fine, if I play them in engine they sometimes appear. or dont show up at all, sometimes they show up in limited numbers.

I looked into @TobiasTobasco response above, and looked at my particles from all kinds of angles, and the results where the same, in other words I didn’t see more particles from a higher angle.

As @tharlevfx suggested I have enabled mesh distance fields and this didn’t produce much better results.

Also in regards to GPU particles, I never was able to get them to settle on the ground.

I would like to share my scene with you. I have zipped it down to 330mb. I hope someone can help me solve this because it is beyond me at this point. Google Drive: Sign-in

Here is a video I made of the problem. red are the CPU particles and blue are the GPU particles.

In summary: When played in Engine the red CPU particles dont appear in the same quantities as I see when autoactivated on the level.
The Blue GPU particles still slip through the floor.

so first thing i noticed is that your cpu particles are using a max draw count of 500 but spawning 700 in the burst which might cause some issues with things not appearing properly.

i’m not seeing the cpu particles not being there like you show in the video - it could be a performance issue i’d guess? i know unreal has some settings for things autoculling if the engine starts to struggle and you are using a LOT of particles so might be somethign like that - i can’t repro it though.

As for the mesh distance fields - you need to make a proper floor for it to work correctly - mesh distance fields dont like non uniformly scaled objects and your floor is currently a 40x40x1 scaled cube. i tested it with a 40x40x40 one and it still doesnt like it either so maybe it doesnt like large scale factors (probably there’s a mesh setting you need to adjust to do with the scaling) but with lots of smaller cubes it’s works fine

1 Like

Thanks for pointing out the Max Draw count. I am learning this stuff at home by myself so I doubt I would have got that with out you pointing it out.

I imported a floor from Maya, it was just a 10x10 plane and I froze the scales so it was uniform. It has no thickness though. I gave it some collision, and enabled/toggled mesh distance again.

Now its all there GPU’s land and stay on the ground. CPU particles turn out in large numbers too. Whooo! 4 stupid days I have spent trying to figure this out. Though I am skeptical, I bet tomorrow when I dive into this again, something else will be broken.

Thank you so much for opening up my scene. I wish I could buy you a Coffee.

happy to help man, i haven’t used mesh distance fields myself much yet either so i learned a thing or two too! :slight_smile: