A procedural sky plugin for the Bevy game engine.
```rust use bevy::prelude::; use bevy_atmosphere::prelude::;
fn main() { App::new() .addplugins(DefaultPlugins) .addplugin(AtmospherePlugin) .addstartupsystem(setup) .run(); }
fn setup(mut commands: Commands) { commands.spawn((Camera3dBundle::default(), AtmosphereCamera::default())); } ```
To learn more, read the docs or check out the examples.
Versions 0.4 and higher break compatibility with WebGL by using a compute shader for efficiency. WebGPU should resolve this when shipped.
If you need to test a web build, you can try enabling your browser's respective experiment flag for WebGPU.
bevy_atmosphere is dual-licensed under MIT and Apache-2.0! That means you can choose to use bevy_atmosphere
under either for your project.
Atmosphere
resource in favor of the Nishita
model.AtmosphereModel
resource, which holds an Atmospheric
model.Atmospheric
trait and derive macro, which is used to define a model for the pipeline to render.Nishita
model, which provides Rayleigh and Mie scattering.Gradient
model, which provides a simple linear gradient of three colors.Atmosphere
and AtmosphereMut
system params, for working with a specific model.AtmosphereSettings.dithering
, which allows for enabling/disabling dithering at runtime.bevy_atmosphere::prelude
to include new common types.AtmosphereModelMetadata
, which is used to store type data about a model.AddAtmosphereModel
, which is used to easily register new models from an App
.RegisterAtmosphereModel
, which is used to register the model it's implemented for.AtmosphereImageBindGroupLayout
, which is used to store a common bind group layout for all models.SkyBoxMaterialKey
, which is used to pass the dithering state to the pipeline.