Personally, I would create volumes, these anti-effect volumes would turn your rain material’s translucency to 0 (or 100, whatever way you see it, point being, it needs to be totally invisible) for the spaces underneath roofing. I believe, however, that if you create a rain particle that has collision, and maybe this particle lives within a 30-40 radius of the player (play with it to see what you need). Past that, you have the old school flat rain approach, where a moving alpha-blended texture simulates distant rain. So you have a physics-based particle system in the player’s vicinity (where you can tell the difference, and so close objects have their roofs stop the rain) and a performance-friendly old school effect in the distance. Off the top of my head, that’s what I’d do. I think it’d be a good balance, if the transition between the two is smooth.