Limit visible distance for particles

Is it possible to somehow limit the visibility of particles in distance? For example if I would like to create map-wide weather and I wouldn’t like to assign it to player because it looks kinda better if it’s not generating around the player, because if particles are slower, if character moves, it can create spots witch much lower density of particles. So I would like to make this effect map-wide and make player only see particles around him, not far in distance.

Well, a possible solution would be to create a ring-like mesh and attach that to the particles emitter shape, that way you could position the ring above the player with him in the middle. Note that this is just an idea, so it may not suit your needs.

The best (and optimized) way of doing it is as this :
Create 2 versions of a similar particles systems. Both should follow the player around while keeping its distance over him/her. Ideally, you should NOT make those particles systems emitters the children or something like that to the player but instead update their position at a fixed rate remotely so that the particle systems emitters doesn’t rotate with the player rotation.

Version A generate 75% of the snow particles for around X meters around the player. This one generates particles in world space. If you wish for some custom movement, this one have it (like zig-zag-ing from snowflakes)

Version B generate the remaining 25% of the snow particles further from the player in a ring shape around the player position. This one generate particles in local space. Also this one should have only the bigger types of particles which should be a tiny bit faster (which means less lifetime and higher rebirth rate). If Version A had some kind of custom force (like zig-zag-ing of snowflakes), Version B should be much more of a forward type (only apply forces that might simulate wind or something). Since this one is in local, this explain why you should not apply the player’s rotation to the emitters.

X meters being the distance represented by how far the player can reach between the time the first particle appear and reach the ground and add between 1 and 3 meters (depending on the amount of particles that are generated) to that amount.

Y meters being the equivalent of X, but toward the outside. For example, the ring could cover the equivalent of X to X+3 meters.

As for the amount of particles, it depends on the hardware from which the game will be played.
This trick allow you to generate a constant flow of particles(even if they are slow) regardless of the player’s position. Version A allows the particles to seems “in place” and to have their own physic (due to the world space) and the Version B allow the illusion that a lot more particles are falling.

It’s the same with rain, but remove any custom effects.