Currently, all state calculations and updates to the rain/snow particles are governed by CPU-based code (see atmos.h/cpp). This is very inefficient and is known to cause noticeable drops in FPS when the atmos system switches to the enabled state.
Moving simulation of atmospheric particles to compute shaders will solve two problems at once:
- Remove performance bottlenecks associated with atmos system
- Allow for more flexibility when dealing with atmospherics
Ideally, this should be addressed in a generic fashion by implementing a micro-framework that allows to setup arbitrarily complex particle systems, while calculations should be based on compute shaders.
Currently, all state calculations and updates to the rain/snow particles are governed by CPU-based code (see
atmos.h/cpp). This is very inefficient and is known to cause noticeable drops in FPS when the atmos system switches to the enabled state.Moving simulation of atmospheric particles to compute shaders will solve two problems at once:
Ideally, this should be addressed in a generic fashion by implementing a micro-framework that allows to setup arbitrarily complex particle systems, while calculations should be based on compute shaders.