This is a plugin for Bevy that renders volumetric clouds using the method of Horizon Zero Dawn by Guerilla Games (see credits).
Run cargo add bevy-volumetric-clouds and simply add CloudsPlugin to your Bevy App like this:
use bevy_volumetric_clouds::CloudsPlugin;
app.add_plugins(CloudsPlugin);Look at the minimal example for a working example.
The the demo example features a usable demo where you can move the camera around
and use a UI to change the configuration of the cloud rendering
(if you run it with the fly_camera and debug features):
cargo run --example demo --features fly_camera,debugThe configuration of the clouds rendering can be changed using the CloudsConfig resource.
See its docs for more information.
A few limitations apply for now and hopefully get fixed in the future:
- There is no integration with Bevy's internal atmosphere rendering yet, this plugin uses a simple sky rendering function.
- The clouds are drawn on a skybox that does not take the depth buffer into account yet. Therefore, it's not yet possible to "fly" into the clouds, the clouds are only visible from ground-level.
- For now the clouds render resolution is set to 1920x1080 and can't be changed. Usually clouds are rendered at a lower resolution than screen resolution so you likely won't need a higher resolution anyway but changing the resolution should be possible in the future.
There are a few features:
debug: enables aneguiUI that allows you to tweak shader uniforms (parameters) in-game.fly_camera: adds afly_cameramodule that controls the camera using keyboard and mouse.
| bevy | bevy-volumetric-clouds |
|---|---|
| 0.17 | 0.1.* |
