Collide GPU particles off screen

Is there a way to force GPU particles to collide with something that isn’t currently being rendered?

Basically when it is raining i want my character to be able to walk under cover (into a cave) and not have the rain appear in the cave but they should be able to look out from that cover and see the rain outside.

The problem is I’m using GPU particles for the rain and unless I’m looking straight up at the ceiling the particles pass straight thought and render as normal. I understand why this happens i was just wondering if there was a work around.

Would swapping to CPU particles fix this issue? Would rather not as i will have to drastically reduce the number of rain drops but if its the only option…

Appreciate any help.

By default the collision from GPU particles is based on screen depth, this 1 of the reason why GPU are faster that CPU, and because of that you cannot make it collide outside the screen,
But here is an idea, you can use both, use your GPU particles to fill your scene, and then program some behavior for your CPU particles only under demand, because in any case is rain effect, probably is not hard mix both visually speaking!

Hope this helps!

I suspected as much tbh,

Your suggestion, do you mean have 2 particle systems and (for example) when under cover deactivate the GPU particle system and activate the CPU system? Not entirely sure how i would implement this without having a permanent line trace active from my character checking for a roof.

Did you have a system in mind?

SOLVED IT!!! You CAN make GPU particles collide off screen, you just have to use “Distance field” instead of Scene depth in the collision > Collision Mode (bottom of the first panel) and have to activate distance field in the project settings.
I’m told it is expensive but worth it for my project.

so if anyone else is having this same issue just look up “Distance fields” on youtube.