![]() # Objective Add web support to atmosphere by gating dual source blending and using a macro to determine the target platform. The main objective of this PR is to ensure that users of Bevy's atmosphere feature can also run it in a web-based context where WebGPU support is enabled. ## Solution - Make use of the `#[cfg(not(target_arch = "wasm32"))]` macro to gate the dual source blending, as this is not (yet) supported in web browsers. - Rename the function `sample_sun_illuminance` to `sample_sun_radiance` and move calls out of conditionals to ensure the shader compiles and runs in both native and web-based contexts. - Moved the multiplication of the transmittance out when calculating the sun color, because calling the `sample_sun_illuminance` function was causing issues in web. Overall this results in cleaner code and more readable. ## Testing - Tested by building a wasm target and loading it in a web page with Vite dev server using `mate-h/bevy-webgpu` repo template. - Tested the native build with `cargo run --example atmosphere` to ensure it still works with dual source blending. --- ## Showcase Screenshots show the atmosphere example running in two different contexts: <img width="1281" alt="atmosphere-web-showcase" src="https://github.com/user-attachments/assets/40b1ee91-89ae-41a6-8189-89630d1ca1a6" /> --------- Co-authored-by: JMS55 <47158642+JMS55@users.noreply.github.com> |
||
---|---|---|
.. | ||
src | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md |