From 1a96d820fdfd0bb303b2555169cd45a6a194195e Mon Sep 17 00:00:00 2001 From: Marco Buono Date: Sun, 29 Jan 2023 15:28:56 +0000 Subject: [PATCH] Add Distance and Atmospheric Fog support (#6412) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit image image # Objective - Add support for the “classic” distance fog effect, as well as a more advanced atmospheric fog effect. ## Solution This PR: - Introduces a new `FogSettings` component that controls distance fog per-camera. - Adds support for three widely used “traditional” fog falloff modes: `Linear`, `Exponential` and `ExponentialSquared`, as well as a more advanced `Atmospheric` fog; - Adds support for directional light influence over fog color; - Extracts fog via `ExtractComponent`, then uses a prepare system that sets up a new dynamic uniform struct (`Fog`), similar to other mesh view types; - Renders fog in PBR material shader, as a final adjustment to the `output_color`, after PBR is computed (but before tone mapping); - Adds a new `StandardMaterial` flag to enable fog; (`fog_enabled`) - Adds convenience methods for easier artistic control when creating non-linear fog types; - Adds documentation around fog. --- ## Changelog ### Added - Added support for distance-based fog effects for PBR materials, controllable per-camera via the new `FogSettings` component; - Added `FogFalloff` enum for selecting between three widely used “traditional” fog falloff modes: `Linear`, `Exponential` and `ExponentialSquared`, as well as a more advanced `Atmospheric` fog; --- Cargo.toml | 20 + assets/models/terrain/Mountains.bin | Bin 0 -> 286752 bytes assets/models/terrain/Mountains.gltf | 143 ++++++ crates/bevy_pbr/src/fog.rs | 486 ++++++++++++++++++ crates/bevy_pbr/src/lib.rs | 4 + crates/bevy_pbr/src/pbr_material.rs | 8 + crates/bevy_pbr/src/render/fog.rs | 147 ++++++ crates/bevy_pbr/src/render/fog.wgsl | 69 +++ crates/bevy_pbr/src/render/mesh.rs | 48 +- .../src/render/mesh_view_bindings.wgsl | 12 +- .../bevy_pbr/src/render/mesh_view_types.wgsl | 25 + crates/bevy_pbr/src/render/mod.rs | 2 + crates/bevy_pbr/src/render/pbr.wgsl | 6 + crates/bevy_pbr/src/render/pbr_functions.wgsl | 40 ++ crates/bevy_pbr/src/render/pbr_types.wgsl | 1 + examples/3d/atmospheric_fog.rs | 124 +++++ examples/3d/fog.rs | 317 ++++++++++++ examples/README.md | 2 + 18 files changed, 1439 insertions(+), 15 deletions(-) create mode 100644 assets/models/terrain/Mountains.bin create mode 100644 assets/models/terrain/Mountains.gltf create mode 100644 crates/bevy_pbr/src/fog.rs create mode 100644 crates/bevy_pbr/src/render/fog.rs create mode 100644 crates/bevy_pbr/src/render/fog.wgsl create mode 100644 examples/3d/atmospheric_fog.rs create mode 100644 examples/3d/fog.rs diff --git a/Cargo.toml b/Cargo.toml index 2b2d981196..40cab1e3c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -297,6 +297,26 @@ description = "A scene showcasing the built-in 3D shapes" category = "3D Rendering" wasm = true +[[example]] +name = "atmospheric_fog" +path = "examples/3d/atmospheric_fog.rs" + +[package.metadata.example.atmospheric_fog] +name = "Atmospheric Fog" +description = "A scene showcasing the atmospheric fog effect" +category = "3D Rendering" +wasm = true + +[[example]] +name = "fog" +path = "examples/3d/fog.rs" + +[package.metadata.example.fog] +name = "Fog" +description = "A scene showcasing the distance fog effect" +category = "3D Rendering" +wasm = true + [[example]] name = "blend_modes" path = "examples/3d/blend_modes.rs" diff --git a/assets/models/terrain/Mountains.bin b/assets/models/terrain/Mountains.bin new file mode 100644 index 0000000000000000000000000000000000000000..399b8de8203207f878fdfe29b04583a7da7b5bbc GIT binary patch literal 286752 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

M4RrZ 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%0DZZ$j;NJ-Xw^J5y7fgx~(VD3~+f_}EOi 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 Pp%`yzk#!h~(Kqxz7EjSY literal 0 HcmV?d00001 diff --git a/assets/models/terrain/Mountains.gltf b/assets/models/terrain/Mountains.gltf new file mode 100644 index 0000000000..e9a10389b8 --- /dev/null +++ b/assets/models/terrain/Mountains.gltf @@ -0,0 +1,143 @@ +{ + "asset" : { + "generator" : "Khronos glTF Blender I/O v3.3.17", + "version" : "2.0" + }, + "extensionsUsed" : [ + "KHR_materials_specular", + "KHR_materials_ior" + ], + "scene" : 0, + "scenes" : [ + { + "name" : "Scene", + "nodes" : [ + 0, + 1 + ] + } + ], + "nodes" : [ + { + "mesh" : 0, + "name" : "Grid" + }, + { + "mesh" : 0, + "name" : "Grid.001", + "translation" : [ + 0.0018983177142217755, + -2.7217100068810396e-05, + 0.0012765892315655947 + ] + } + ], + "materials" : [ + { + "doubleSided" : true, + "extensions" : { + "KHR_materials_specular" : { + "specularColorFactor" : [ + 0, + 0, + 0 + ] + }, + "KHR_materials_ior" : { + "ior" : 1.4500000476837158 + } + }, + "name" : "Material.001", + "pbrMetallicRoughness" : { + "baseColorFactor" : [ + 0.12338346652686596, + 0.35653680562973022, + 0.065849664583802223, + 1 + ], + "metallicFactor" : 0, + "roughnessFactor" : 0.9980237483978271 + } + } + ], + "meshes" : [ + { + "name" : "Grid", + "primitives" : [ + { + "attributes" : { + "POSITION" : 0, + "NORMAL" : 1, + "TEXCOORD_0" : 2 + }, + "indices" : 3, + "material" : 0 + } + ] + } + ], + "accessors" : [ + { + "bufferView" : 0, + "componentType" : 5126, + "count" : 6561, + "max" : [ + 1.0000003576278687, + 0.2493455857038498, + 1.0051095485687256 + ], + "min" : [ + -1.0000003576278687, + -0.08555418252944946, + -1.0000003576278687 + ], + "type" : "VEC3" + }, + { + "bufferView" : 1, + "componentType" : 5126, + "count" : 6561, + "type" : "VEC3" + }, + { + "bufferView" : 2, + "componentType" : 5126, + "count" : 6561, + "type" : "VEC2" + }, + { + "bufferView" : 3, + "componentType" : 5123, + "count" : 38400, + "type" : "SCALAR" + } + ], + "bufferViews" : [ + { + "buffer" : 0, + "byteLength" : 78732, + "byteOffset" : 0 + }, + { + "buffer" : 0, + "byteLength" : 78732, + "byteOffset" : 78732 + }, + { + "buffer" : 0, + "byteLength" : 52488, + "byteOffset" : 157464 + }, + { + "buffer" : 0, + "byteLength" : 76800, + "byteOffset" : 209952 + } + ], + "buffers" : [ + { + "byteLength" : 286752, + "uri" : "Mountains.bin" + } + ] +} diff --git a/crates/bevy_pbr/src/fog.rs b/crates/bevy_pbr/src/fog.rs new file mode 100644 index 0000000000..c5ad092f54 --- /dev/null +++ b/crates/bevy_pbr/src/fog.rs @@ -0,0 +1,486 @@ +use crate::ReflectComponent; +use bevy_ecs::{prelude::*, query::QueryItem}; +use bevy_math::Vec3; +use bevy_reflect::Reflect; +use bevy_render::{color::Color, extract_component::ExtractComponent, prelude::Camera}; + +/// Configures the “classic” computer graphics [distance fog](https://en.wikipedia.org/wiki/Distance_fog) effect, +/// in which objects appear progressively more covered in atmospheric haze the further away they are from the camera. +/// Affects meshes rendered via the PBR [`StandardMaterial`](crate::StandardMaterial). +/// +/// ## Falloff +/// +/// The rate at which fog intensity increases with distance is controlled by the falloff mode. +/// Currently, the following fog falloff modes are supported: +/// +/// - [`FogFalloff::Linear`] +/// - [`FogFalloff::Exponential`] +/// - [`FogFalloff::ExponentialSquared`] +/// - [`FogFalloff::Atmospheric`] +/// +/// ## Example +/// +/// ``` +/// # use bevy_ecs::prelude::*; +/// # use bevy_render::prelude::*; +/// # use bevy_core_pipeline::prelude::*; +/// # use bevy_pbr::prelude::*; +/// # fn system(mut commands: Commands) { +/// commands.spawn(( +/// // Setup your camera as usual +/// Camera3dBundle { +/// // ... camera options +/// # ..Default::default() +/// }, +/// // Add fog to the same entity +/// FogSettings { +/// color: Color::WHITE, +/// falloff: FogFalloff::Exponential { density: 1e-3 }, +/// ..Default::default() +/// }, +/// )); +/// # } +/// # bevy_ecs::system::assert_is_system(system); +/// ``` +/// +/// ## Material Override +/// +/// Once enabled for a specific camera, the fog effect can also be disabled for individual +/// [`StandardMaterial`](crate::StandardMaterial) instances via the `fog_enabled` flag. +#[derive(Debug, Clone, Component, Reflect)] +#[reflect(Component)] +pub struct FogSettings { + /// The color of the fog effect. + /// + /// **Tip:** The alpha channel of the color can be used to “modulate” the fog effect without + /// changing the fog falloff mode or parameters. + pub color: Color, + + /// Color used to modulate the influence of directional light colors on the + /// fog, where the view direction aligns with each directional light direction, + /// producing a “glow” or light dispersion effect. (e.g. around the sun) + /// + /// Use [`Color::NONE`] to disable the effect. + pub directional_light_color: Color, + + /// The exponent applied to the directional light alignment calculation. + /// A higher value means a more concentrated “glow”. + pub directional_light_exponent: f32, + + /// Determines which falloff mode to use, and its parameters. + pub falloff: FogFalloff, +} + +/// Allows switching between different fog falloff modes, and configuring their parameters. +/// +/// ## Convenience Methods +/// +/// When using non-linear fog modes it can be hard to determine the right parameter values +/// for a given scene. +/// +/// For easier artistic control, instead of creating the enum variants directly, you can use the +/// visibility-based convenience methods: +/// +/// - For `FogFalloff::Exponential`: +/// - [`FogFalloff::from_visibility()`] +/// - [`FogFalloff::from_visibility_contrast()`] +/// +/// - For `FogFalloff::ExponentialSquared`: +/// - [`FogFalloff::from_visibility_squared()`] +/// - [`FogFalloff::from_visibility_contrast_squared()`] +/// +/// - For `FogFalloff::Atmospheric`: +/// - [`FogFalloff::from_visibility_color()`] +/// - [`FogFalloff::from_visibility_colors()`] +/// - [`FogFalloff::from_visibility_contrast_color()`] +/// - [`FogFalloff::from_visibility_contrast_colors()`] +#[derive(Debug, Clone, Reflect)] +pub enum FogFalloff { + /// A linear fog falloff that grows in intensity between `start` and `end` distances. + /// + /// This falloff mode is simpler to control than other modes, however it can produce results that look “artificial”, depending on the scene. + /// + /// ## Formula + /// + /// The fog intensity for a given point in the scene is determined by the following formula: + /// + /// ```text + /// let fog_intensity = 1.0 - ((end - distance) / (end - start)).clamp(0.0, 1.0); + /// ``` + /// + /// + /// Plot showing how linear fog falloff behaves for start and end values of 0.8 and 2.2, respectively. + /// + /// 1 + /// 1 + /// 0 + /// 2 + /// 3 + /// distance + /// fog intensity + /// + /// + /// + /// start + /// end + /// + Linear { + /// Distance from the camera where fog is completely transparent, in world units. + start: f32, + + /// Distance from the camera where fog is completely opaque, in world units. + end: f32, + }, + + /// An exponential fog falloff with a given `density`. + /// + /// Initially gains intensity quickly with distance, then more slowly. Typically produces more natural results than [`FogFalloff::Linear`], + /// but is a bit harder to control. + /// + /// To move the fog “further away”, use lower density values. To move it “closer” use higher density values. + /// + /// ## Tips + /// + /// - Use the [`FogFalloff::from_visibility()`] convenience method to create an exponential falloff with the proper + /// density for a desired visibility distance in world units; + /// - It's not _unusual_ to have very large or very small values for the density, depending on the scene + /// scale. Typically, for scenes with objects in the scale of thousands of units, you might want density values + /// in the ballpark of `0.001`. Conversely, for really small scale scenes you might want really high values of + /// density; + /// - Combine the `density` parameter with the [`FogSettings`] `color`'s alpha channel for easier artistic control. + /// + /// ## Formula + /// + /// The fog intensity for a given point in the scene is determined by the following formula: + /// + /// ```text + /// let fog_intensity = 1.0 - 1.0 / (distance * density).exp(); + /// ``` + /// + /// + /// Plot showing how exponential fog falloff behaves for different density values + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// 1 + /// 1 + /// 0 + /// 2 + /// 3 + /// density = 2 + /// density = 1 + /// density = 0.5 + /// distance + /// fog intensity + /// + Exponential { + /// Multiplier applied to the world distance (within the exponential fog falloff calculation). + density: f32, + }, + + /// A squared exponential fog falloff with a given `density`. + /// + /// Similar to [`FogFalloff::Exponential`], but grows more slowly in intensity for closer distances + /// before “catching up”. + /// + /// To move the fog “further away”, use lower density values. To move it “closer” use higher density values. + /// + /// ## Tips + /// + /// - Use the [`FogFalloff::from_visibility_squared()`] convenience method to create an exponential squared falloff + /// with the proper density for a desired visibility distance in world units; + /// - Combine the `density` parameter with the [`FogSettings`] `color`'s alpha channel for easier artistic control. + /// + /// ## Formula + /// + /// The fog intensity for a given point in the scene is determined by the following formula: + /// + /// ```text + /// let fog_intensity = 1.0 - 1.0 / (distance * density).powi(2).exp(); + /// ``` + /// + /// + /// Plot showing how exponential squared fog falloff behaves for different density values + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// 1 + /// 1 + /// 0 + /// 2 + /// 3 + /// density = 2 + /// density = 1 + /// density = 0.5 + /// distance + /// fog intensity + /// + ExponentialSquared { + /// Multiplier applied to the world distance (within the exponential squared fog falloff calculation). + density: f32, + }, + + /// A more general form of the [`FogFalloff::Exponential`] mode. The falloff formula is separated into + /// two terms, `extinction` and `inscattering`, for a somewhat simplified atmospheric scattering model. + /// Additionally, individual color channels can have their own density values, resulting in a total of + /// six different configuration parameters. + /// + /// ## Tips + /// + /// - Use the [`FogFalloff::from_visibility_colors()`] or [`FogFalloff::from_visibility_color()`] convenience methods + /// to create an atmospheric falloff with the proper densities for a desired visibility distance in world units and + /// extinction and inscattering colors; + /// - Combine the atmospheric fog parameters with the [`FogSettings`] `color`'s alpha channel for easier artistic control. + /// + /// ## Formula + /// + /// Unlike other modes, atmospheric falloff doesn't use a simple intensity-based blend of fog color with + /// object color. Instead, it calculates per-channel extinction and inscattering factors, which are + /// then used to calculate the final color. + /// + /// ```text + /// let extinction_factor = 1.0 - 1.0 / (distance * extinction).exp(); + /// let inscattering_factor = 1.0 - 1.0 / (distance * inscattering).exp(); + /// let result = input_color * (1.0 - extinction_factor) + fog_color * inscattering_factor; + /// ``` + /// + /// ## Equivalence to [`FogFalloff::Exponential`] + /// + /// For a density value of `D`, the following two falloff modes will produce identical visual results: + /// + /// ``` + /// # use bevy_pbr::prelude::*; + /// # use bevy_math::prelude::*; + /// # const D: f32 = 0.5; + /// # + /// let exponential = FogFalloff::Exponential { + /// density: D, + /// }; + /// + /// let atmospheric = FogFalloff::Atmospheric { + /// extinction: Vec3::new(D, D, D), + /// inscattering: Vec3::new(D, D, D), + /// }; + /// ``` + /// + /// **Note:** While the results are identical, [`FogFalloff::Atmospheric`] is computationally more expensive. + Atmospheric { + /// Controls how much light is removed due to atmospheric “extinction”, i.e. loss of light due to + /// photons being absorbed by atmospheric particles. + /// + /// Each component can be thought of as an independent per `R`/`G`/`B` channel `density` factor from + /// [`FogFalloff::Exponential`]: Multiplier applied to the world distance (within the fog + /// falloff calculation) for that specific channel. + /// + /// **Note:** + /// This value is not a `Color`, since it affects the channels exponentially in a non-intuitive way. + /// For artistic control, use the [`FogFalloff::from_visibility_colors()`] convenience method. + extinction: Vec3, + + /// Controls how much light is added due to light scattering from the sun through the atmosphere. + /// + /// Each component can be thought of as an independent per `R`/`G`/`B` channel `density` factor from + /// [`FogFalloff::Exponential`]: A multiplier applied to the world distance (within the fog + /// falloff calculation) for that specific channel. + /// + /// **Note:** + /// This value is not a `Color`, since it affects the channels exponentially in a non-intuitive way. + /// For artistic control, use the [`FogFalloff::from_visibility_colors()`] convenience method. + inscattering: Vec3, + }, +} + +impl FogFalloff { + /// Creates a [`FogFalloff::Exponential`] value from the given visibility distance in world units, + /// using the revised Koschmieder contrast threshold, [`FogFalloff::REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD`]. + pub fn from_visibility(visibility: f32) -> FogFalloff { + FogFalloff::from_visibility_contrast( + visibility, + FogFalloff::REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD, + ) + } + + /// Creates a [`FogFalloff::Exponential`] value from the given visibility distance in world units, + /// and a given contrast threshold in the range of `0.0` to `1.0`. + pub fn from_visibility_contrast(visibility: f32, contrast_threshold: f32) -> FogFalloff { + FogFalloff::Exponential { + density: FogFalloff::koschmieder(visibility, contrast_threshold), + } + } + + /// Creates a [`FogFalloff::ExponentialSquared`] value from the given visibility distance in world units, + /// using the revised Koschmieder contrast threshold, [`FogFalloff::REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD`]. + pub fn from_visibility_squared(visibility: f32) -> FogFalloff { + FogFalloff::from_visibility_contrast_squared( + visibility, + FogFalloff::REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD, + ) + } + + /// Creates a [`FogFalloff::ExponentialSquared`] value from the given visibility distance in world units, + /// and a given contrast threshold in the range of `0.0` to `1.0`. + pub fn from_visibility_contrast_squared( + visibility: f32, + contrast_threshold: f32, + ) -> FogFalloff { + FogFalloff::ExponentialSquared { + density: (FogFalloff::koschmieder(visibility, contrast_threshold) / visibility).sqrt(), + } + } + + /// Creates a [`FogFalloff::Atmospheric`] value from the given visibility distance in world units, + /// and a shared color for both extinction and inscattering, using the revised Koschmieder contrast threshold, + /// [`FogFalloff::REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD`]. + pub fn from_visibility_color( + visibility: f32, + extinction_inscattering_color: Color, + ) -> FogFalloff { + FogFalloff::from_visibility_contrast_colors( + visibility, + FogFalloff::REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD, + extinction_inscattering_color, + extinction_inscattering_color, + ) + } + + /// Creates a [`FogFalloff::Atmospheric`] value from the given visibility distance in world units, + /// extinction and inscattering colors, using the revised Koschmieder contrast threshold, + /// [`FogFalloff::REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD`]. + /// + /// ## Tips + /// - Alpha values of the provided colors can modulate the `extinction` and `inscattering` effects; + /// - Using an `extinction_color` of [`Color::WHITE`] or [`Color::NONE`] disables the extinction effect; + /// - Using an `inscattering_color` of [`Color::BLACK`] or [`Color::NONE`] disables the inscattering effect. + pub fn from_visibility_colors( + visibility: f32, + extinction_color: Color, + inscattering_color: Color, + ) -> FogFalloff { + FogFalloff::from_visibility_contrast_colors( + visibility, + FogFalloff::REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD, + extinction_color, + inscattering_color, + ) + } + + /// Creates a [`FogFalloff::Atmospheric`] value from the given visibility distance in world units, + /// a contrast threshold in the range of `0.0` to `1.0`, and a shared color for both extinction and inscattering. + pub fn from_visibility_contrast_color( + visibility: f32, + contrast_threshold: f32, + extinction_inscattering_color: Color, + ) -> FogFalloff { + FogFalloff::from_visibility_contrast_colors( + visibility, + contrast_threshold, + extinction_inscattering_color, + extinction_inscattering_color, + ) + } + + /// Creates a [`FogFalloff::Atmospheric`] value from the given visibility distance in world units, + /// a contrast threshold in the range of `0.0` to `1.0`, extinction and inscattering colors. + /// + /// ## Tips + /// - Alpha values of the provided colors can modulate the `extinction` and `inscattering` effects; + /// - Using an `extinction_color` of [`Color::WHITE`] or [`Color::NONE`] disables the extinction effect; + /// - Using an `inscattering_color` of [`Color::BLACK`] or [`Color::NONE`] disables the inscattering effect. + pub fn from_visibility_contrast_colors( + visibility: f32, + contrast_threshold: f32, + extinction_color: Color, + inscattering_color: Color, + ) -> FogFalloff { + use std::f32::consts::E; + + let [r_e, g_e, b_e, a_e] = extinction_color.as_linear_rgba_f32(); + let [r_i, g_i, b_i, a_i] = inscattering_color.as_linear_rgba_f32(); + + FogFalloff::Atmospheric { + extinction: Vec3::new( + // Values are subtracted from 1.0 here to preserve the intuitive/artistic meaning of + // colors, since they're later subtracted. (e.g. by giving a blue extinction color, you + // get blue and _not_ yellow results) + (1.0 - r_e).powf(E), + (1.0 - g_e).powf(E), + (1.0 - b_e).powf(E), + ) * FogFalloff::koschmieder(visibility, contrast_threshold) + * a_e.powf(E), + + inscattering: Vec3::new(r_i.powf(E), g_i.powf(E), b_i.powf(E)) + * FogFalloff::koschmieder(visibility, contrast_threshold) + * a_i.powf(E), + } + } + + /// A 2% contrast threshold was originally proposed by Koschmieder, being the + /// minimum visual contrast at which a human observer could detect an object. + /// We use a revised 5% contrast threshold, deemed more realistic for typical human observers. + pub const REVISED_KOSCHMIEDER_CONTRAST_THRESHOLD: f32 = 0.05; + + /// Calculates the extinction coefficient β, from V and Cₜ, where: + /// + /// - Cₜ is the contrast threshold, in the range of `0.0` to `1.0` + /// - V is the visibility distance in which a perfectly black object is still identifiable + /// against the horizon sky within the contrast threshold + /// + /// We start with Koschmieder's equation: + /// + /// ```text + /// -ln(Cₜ) + /// V = ───────── + /// β + /// ``` + /// + /// Multiplying both sides by β/V, that gives us: + /// + /// ```text + /// -ln(Cₜ) + /// β = ───────── + /// V + /// ``` + /// + /// See: + /// - + /// - + pub fn koschmieder(v: f32, c_t: f32) -> f32 { + -c_t.ln() / v + } +} + +impl Default for FogSettings { + fn default() -> Self { + FogSettings { + color: Color::rgba(1.0, 1.0, 1.0, 1.0), + falloff: FogFalloff::Linear { + start: 0.0, + end: 100.0, + }, + directional_light_color: Color::NONE, + directional_light_exponent: 8.0, + } + } +} + +impl ExtractComponent for FogSettings { + type Query = &'static Self; + type Filter = With; + type Out = Self; + + fn extract_component(item: QueryItem) -> Option { + Some(item.clone()) + } +} diff --git a/crates/bevy_pbr/src/lib.rs b/crates/bevy_pbr/src/lib.rs index 1ee943b19e..0035a9ed27 100644 --- a/crates/bevy_pbr/src/lib.rs +++ b/crates/bevy_pbr/src/lib.rs @@ -2,6 +2,7 @@ pub mod wireframe; mod alpha; mod bundle; +mod fog; mod light; mod material; mod pbr_material; @@ -11,6 +12,7 @@ mod render; pub use alpha::*; use bevy_utils::default; pub use bundle::*; +pub use fog::*; pub use light::*; pub use material::*; pub use pbr_material::*; @@ -27,6 +29,7 @@ pub mod prelude { DirectionalLightBundle, MaterialMeshBundle, PbrBundle, PointLightBundle, SpotLightBundle, }, + fog::{FogFalloff, FogSettings}, light::{AmbientLight, DirectionalLight, PointLight, SpotLight}, material::{Material, MaterialPlugin}, pbr_material::StandardMaterial, @@ -169,6 +172,7 @@ impl Plugin for PbrPlugin { .init_resource::() .init_resource::() .add_plugin(ExtractResourcePlugin::::default()) + .add_plugin(FogPlugin) .add_system_to_stage( CoreStage::PostUpdate, // NOTE: Clusters need to have been added before update_clusters is run so diff --git a/crates/bevy_pbr/src/pbr_material.rs b/crates/bevy_pbr/src/pbr_material.rs index 9e95a3ffab..998f728c11 100644 --- a/crates/bevy_pbr/src/pbr_material.rs +++ b/crates/bevy_pbr/src/pbr_material.rs @@ -207,6 +207,9 @@ pub struct StandardMaterial { /// shadows, alpha mode and ambient light are ignored if this is set to `true`. pub unlit: bool, + /// Whether to enable fog for this material. + pub fog_enabled: bool, + /// How to apply the alpha channel of the `base_color_texture`. /// /// See [`AlphaMode`] for details. Defaults to [`AlphaMode::Opaque`]. @@ -257,6 +260,7 @@ impl Default for StandardMaterial { double_sided: false, cull_mode: Some(Face::Back), unlit: false, + fog_enabled: true, alpha_mode: AlphaMode::Opaque, depth_bias: 0.0, } @@ -300,6 +304,7 @@ bitflags::bitflags! { const UNLIT = (1 << 5); const TWO_COMPONENT_NORMAL_MAP = (1 << 6); const FLIP_NORMAL_MAP_Y = (1 << 7); + const FOG_ENABLED = (1 << 8); const ALPHA_MODE_RESERVED_BITS = (Self::ALPHA_MODE_MASK_BITS << Self::ALPHA_MODE_SHIFT_BITS); // ← Bitmask reserving bits for the `AlphaMode` const ALPHA_MODE_OPAQUE = (0 << Self::ALPHA_MODE_SHIFT_BITS); // ← Values are just sequential values bitshifted into const ALPHA_MODE_MASK = (1 << Self::ALPHA_MODE_SHIFT_BITS); // the bitmask, and can range from 0 to 7. @@ -362,6 +367,9 @@ impl AsBindGroupShaderType for StandardMaterial { if self.unlit { flags |= StandardMaterialFlags::UNLIT; } + if self.fog_enabled { + flags |= StandardMaterialFlags::FOG_ENABLED; + } let has_normal_map = self.normal_map_texture.is_some(); if has_normal_map { if let Some(texture) = images.get(self.normal_map_texture.as_ref().unwrap()) { diff --git a/crates/bevy_pbr/src/render/fog.rs b/crates/bevy_pbr/src/render/fog.rs new file mode 100644 index 0000000000..f2bb22a732 --- /dev/null +++ b/crates/bevy_pbr/src/render/fog.rs @@ -0,0 +1,147 @@ +use bevy_app::{App, Plugin}; +use bevy_asset::{load_internal_asset, HandleUntyped}; +use bevy_ecs::{prelude::*, schedule::SystemLabel}; +use bevy_math::{Vec3, Vec4}; +use bevy_reflect::TypeUuid; +use bevy_render::{ + extract_component::ExtractComponentPlugin, + render_resource::{DynamicUniformBuffer, Shader, ShaderType}, + renderer::{RenderDevice, RenderQueue}, + view::ExtractedView, + RenderApp, RenderStage, +}; + +use crate::{FogFalloff, FogSettings}; + +/// The GPU-side representation of the fog configuration that's sent as a uniform to the shader +#[derive(Copy, Clone, ShaderType, Default, Debug)] +pub struct GpuFog { + /// Fog color + base_color: Vec4, + /// The color used for the fog where the view direction aligns with directional lights + directional_light_color: Vec4, + /// Allocated differently depending on fog mode. + /// See `mesh_view_types.wgsl` for a detailed explanation + be: Vec3, + /// The exponent applied to the directional light alignment calculation + directional_light_exponent: f32, + /// Allocated differently depending on fog mode. + /// See `mesh_view_types.wgsl` for a detailed explanation + bi: Vec3, + /// Unsigned int representation of the active fog falloff mode + mode: u32, +} + +// Important: These must be kept in sync with `mesh_view_types.wgsl` +const GPU_FOG_MODE_OFF: u32 = 0; +const GPU_FOG_MODE_LINEAR: u32 = 1; +const GPU_FOG_MODE_EXPONENTIAL: u32 = 2; +const GPU_FOG_MODE_EXPONENTIAL_SQUARED: u32 = 3; +const GPU_FOG_MODE_ATMOSPHERIC: u32 = 4; + +/// Metadata for fog +#[derive(Default, Resource)] +pub struct FogMeta { + pub gpu_fogs: DynamicUniformBuffer, +} + +/// Prepares fog metadata and writes the fog-related uniform buffers to the GPU +pub fn prepare_fog( + mut commands: Commands, + render_device: Res, + render_queue: Res, + mut fog_meta: ResMut, + views: Query<(Entity, Option<&FogSettings>), With>, +) { + for (entity, fog) in &views { + let gpu_fog = if let Some(fog) = fog { + match &fog.falloff { + FogFalloff::Linear { start, end } => GpuFog { + mode: GPU_FOG_MODE_LINEAR, + base_color: fog.color.into(), + directional_light_color: fog.directional_light_color.into(), + directional_light_exponent: fog.directional_light_exponent, + be: Vec3::new(*start, *end, 0.0), + ..Default::default() + }, + FogFalloff::Exponential { density } => GpuFog { + mode: GPU_FOG_MODE_EXPONENTIAL, + base_color: fog.color.into(), + directional_light_color: fog.directional_light_color.into(), + directional_light_exponent: fog.directional_light_exponent, + be: Vec3::new(*density, 0.0, 0.0), + ..Default::default() + }, + FogFalloff::ExponentialSquared { density } => GpuFog { + mode: GPU_FOG_MODE_EXPONENTIAL_SQUARED, + base_color: fog.color.into(), + directional_light_color: fog.directional_light_color.into(), + directional_light_exponent: fog.directional_light_exponent, + be: Vec3::new(*density, 0.0, 0.0), + ..Default::default() + }, + FogFalloff::Atmospheric { + extinction, + inscattering, + } => GpuFog { + mode: GPU_FOG_MODE_ATMOSPHERIC, + base_color: fog.color.into(), + directional_light_color: fog.directional_light_color.into(), + directional_light_exponent: fog.directional_light_exponent, + be: *extinction, + bi: *inscattering, + }, + } + } else { + // If no fog is added to a camera, by default it's off + GpuFog { + mode: GPU_FOG_MODE_OFF, + ..Default::default() + } + }; + + // This is later read by `SetMeshViewBindGroup` + commands.entity(entity).insert(ViewFogUniformOffset { + offset: fog_meta.gpu_fogs.push(gpu_fog), + }); + } + + fog_meta + .gpu_fogs + .write_buffer(&render_device, &render_queue); +} + +/// Labels for fog-related systems +#[derive(Debug, Hash, PartialEq, Eq, Clone, SystemLabel)] +pub enum RenderFogSystems { + PrepareFog, +} + +/// Inserted on each `Entity` with an `ExtractedView` to keep track of its offset +/// in the `gpu_fogs` `DynamicUniformBuffer` within `FogMeta` +#[derive(Component)] +pub struct ViewFogUniformOffset { + pub offset: u32, +} + +/// Handle for the fog WGSL Shader internal asset +pub const FOG_SHADER_HANDLE: HandleUntyped = + HandleUntyped::weak_from_u64(Shader::TYPE_UUID, 4913569193382610166); + +/// A plugin that consolidates fog extraction, preparation and related resources/assets +pub struct FogPlugin; + +impl Plugin for FogPlugin { + fn build(&self, app: &mut App) { + load_internal_asset!(app, FOG_SHADER_HANDLE, "fog.wgsl", Shader::from_wgsl); + + app.add_plugin(ExtractComponentPlugin::::default()); + + if let Ok(render_app) = app.get_sub_app_mut(RenderApp) { + render_app.init_resource::().add_system_to_stage( + RenderStage::Prepare, + prepare_fog.label(RenderFogSystems::PrepareFog), + ); + } + } +} diff --git a/crates/bevy_pbr/src/render/fog.wgsl b/crates/bevy_pbr/src/render/fog.wgsl new file mode 100644 index 0000000000..852265eefb --- /dev/null +++ b/crates/bevy_pbr/src/render/fog.wgsl @@ -0,0 +1,69 @@ +#define_import_path bevy_pbr::fog + +// Fog formulas adapted from: +// https://learn.microsoft.com/en-us/windows/win32/direct3d9/fog-formulas +// https://catlikecoding.com/unity/tutorials/rendering/part-14/ +// https://iquilezles.org/articles/fog/ (Atmospheric Fog and Scattering) + +fn scattering_adjusted_fog_color( + scattering: vec3, +) -> vec4 { + if (fog.directional_light_color.a > 0.0) { + return vec4( + fog.base_color.rgb + + scattering * fog.directional_light_color.rgb * fog.directional_light_color.a, + fog.base_color.a, + ); + } else { + return fog.base_color; + } +} + +fn linear_fog( + input_color: vec4, + distance: f32, + scattering: vec3, +) -> vec4 { + var fog_color = scattering_adjusted_fog_color(scattering); + let start = fog.be.x; + let end = fog.be.y; + fog_color.a *= 1.0 - clamp((end - distance) / (end - start), 0.0, 1.0); + return vec4(mix(input_color.rgb, fog_color.rgb, fog_color.a), input_color.a); +} + +fn exponential_fog( + input_color: vec4, + distance: f32, + scattering: vec3, +) -> vec4 { + var fog_color = scattering_adjusted_fog_color(scattering); + let density = fog.be.x; + fog_color.a *= 1.0 - 1.0 / exp(distance * density); + return vec4(mix(input_color.rgb, fog_color.rgb, fog_color.a), input_color.a); +} + +fn exponential_squared_fog( + input_color: vec4, + distance: f32, + scattering: vec3, +) -> vec4 { + var fog_color = scattering_adjusted_fog_color(scattering); + let distance_times_density = distance * fog.be.x; + fog_color.a *= 1.0 - 1.0 / exp(distance_times_density * distance_times_density); + return vec4(mix(input_color.rgb, fog_color.rgb, fog_color.a), input_color.a); +} + +fn atmospheric_fog( + input_color: vec4, + distance: f32, + scattering: vec3, +) -> vec4 { + var fog_color = scattering_adjusted_fog_color(scattering); + let extinction_factor = 1.0 - 1.0 / exp(distance * fog.be); + let inscattering_factor = 1.0 - 1.0 / exp(distance * fog.bi); + return vec4( + input_color.rgb * (1.0 - extinction_factor * fog_color.a) + + fog_color.rgb * inscattering_factor * fog_color.a, + input_color.a + ); +} diff --git a/crates/bevy_pbr/src/render/mesh.rs b/crates/bevy_pbr/src/render/mesh.rs index 1b14b300ad..c29429a031 100644 --- a/crates/bevy_pbr/src/render/mesh.rs +++ b/crates/bevy_pbr/src/render/mesh.rs @@ -1,7 +1,8 @@ use crate::{ - GlobalLightMeta, GpuLights, GpuPointLights, LightMeta, NotShadowCaster, NotShadowReceiver, - ShadowPipeline, ViewClusterBindings, ViewLightsUniformOffset, ViewShadowBindings, - CLUSTERED_FORWARD_STORAGE_BUFFER_COUNT, MAX_CASCADES_PER_LIGHT, MAX_DIRECTIONAL_LIGHTS, + FogMeta, GlobalLightMeta, GpuFog, GpuLights, GpuPointLights, LightMeta, NotShadowCaster, + NotShadowReceiver, ShadowPipeline, ViewClusterBindings, ViewFogUniformOffset, + ViewLightsUniformOffset, ViewShadowBindings, CLUSTERED_FORWARD_STORAGE_BUFFER_COUNT, + MAX_CASCADES_PER_LIGHT, MAX_DIRECTIONAL_LIGHTS, }; use bevy_app::Plugin; use bevy_asset::{load_internal_asset, Assets, Handle, HandleUntyped}; @@ -400,11 +401,22 @@ impl FromWorld for MeshPipeline { }, count: None, }, + // Fog + BindGroupLayoutEntry { + binding: 10, + visibility: ShaderStages::FRAGMENT, + ty: BindingType::Buffer { + ty: BufferBindingType::Uniform, + has_dynamic_offset: true, + min_binding_size: Some(GpuFog::min_size()), + }, + count: None, + }, ]; if cfg!(not(feature = "webgl")) { // Depth texture entries.push(BindGroupLayoutEntry { - binding: 10, + binding: 11, visibility: ShaderStages::FRAGMENT, ty: BindingType::Texture { multisampled, @@ -415,7 +427,7 @@ impl FromWorld for MeshPipeline { }); // Normal texture entries.push(BindGroupLayoutEntry { - binding: 11, + binding: 12, visibility: ShaderStages::FRAGMENT, ty: BindingType::Texture { multisampled, @@ -887,6 +899,7 @@ pub fn queue_mesh_view_bind_groups( shadow_pipeline: Res, light_meta: Res, global_light_meta: Res, + fog_meta: Res, view_uniforms: Res, views: Query<( Entity, @@ -899,11 +912,18 @@ pub fn queue_mesh_view_bind_groups( msaa: Res, globals_buffer: Res, ) { - if let (Some(view_binding), Some(light_binding), Some(point_light_binding), Some(globals)) = ( + if let ( + Some(view_binding), + Some(light_binding), + Some(point_light_binding), + Some(globals), + Some(fog_binding), + ) = ( view_uniforms.uniforms.binding(), light_meta.view_gpu_lights.binding(), global_light_meta.gpu_point_lights.binding(), globals_buffer.buffer.binding(), + fog_meta.gpu_fogs.binding(), ) { for (entity, view_shadow_bindings, view_cluster_bindings, prepass_textures) in &views { let layout = if msaa.samples() > 1 { @@ -957,6 +977,10 @@ pub fn queue_mesh_view_bind_groups( binding: 9, resource: globals.clone(), }, + BindGroupEntry { + binding: 10, + resource: fog_binding.clone(), + }, ]; // When using WebGL with MSAA, we can't create the fallback textures required by the prepass @@ -971,7 +995,7 @@ pub fn queue_mesh_view_bind_groups( } }; entries.push(BindGroupEntry { - binding: 10, + binding: 11, resource: BindingResource::TextureView(depth_view), }); @@ -984,7 +1008,7 @@ pub fn queue_mesh_view_bind_groups( } }; entries.push(BindGroupEntry { - binding: 11, + binding: 12, resource: BindingResource::TextureView(normal_view), }); } @@ -1008,6 +1032,7 @@ impl RenderCommand

for SetMeshViewBindGroup type ViewWorldQuery = ( Read, Read, + Read, Read, ); type ItemWorldQuery = (); @@ -1015,7 +1040,10 @@ impl RenderCommand

for SetMeshViewBindGroup #[inline] fn render<'w>( _item: &P, - (view_uniform, view_lights, mesh_view_bind_group): ROQueryItem<'w, Self::ViewWorldQuery>, + (view_uniform, view_lights, view_fog, mesh_view_bind_group): ROQueryItem< + 'w, + Self::ViewWorldQuery, + >, _entity: (), _: SystemParamItem<'w, '_, Self::Param>, pass: &mut TrackedRenderPass<'w>, @@ -1023,7 +1051,7 @@ impl RenderCommand

for SetMeshViewBindGroup pass.set_bind_group( I, &mesh_view_bind_group.value, - &[view_uniform.offset, view_lights.offset], + &[view_uniform.offset, view_lights.offset, view_fog.offset], ); RenderCommandResult::Success diff --git a/crates/bevy_pbr/src/render/mesh_view_bindings.wgsl b/crates/bevy_pbr/src/render/mesh_view_bindings.wgsl index 999d78152c..9bade010b4 100644 --- a/crates/bevy_pbr/src/render/mesh_view_bindings.wgsl +++ b/crates/bevy_pbr/src/render/mesh_view_bindings.wgsl @@ -43,15 +43,17 @@ var cluster_offsets_and_counts: ClusterOffsetsAndCounts; @group(0) @binding(9) var globals: Globals; +@group(0) @binding(10) +var fog: Fog; #ifdef MULTISAMPLED -@group(0) @binding(10) -var depth_prepass_texture: texture_depth_multisampled_2d; @group(0) @binding(11) +var depth_prepass_texture: texture_depth_multisampled_2d; +@group(0) @binding(12) var normal_prepass_texture: texture_multisampled_2d; #else -@group(0) @binding(10) -var depth_prepass_texture: texture_depth_2d; @group(0) @binding(11) +var depth_prepass_texture: texture_depth_2d; +@group(0) @binding(12) var normal_prepass_texture: texture_2d; -#endif \ No newline at end of file +#endif diff --git a/crates/bevy_pbr/src/render/mesh_view_types.wgsl b/crates/bevy_pbr/src/render/mesh_view_types.wgsl index 1f6d1b2946..3e797596fe 100644 --- a/crates/bevy_pbr/src/render/mesh_view_types.wgsl +++ b/crates/bevy_pbr/src/render/mesh_view_types.wgsl @@ -70,6 +70,31 @@ struct Lights { spot_light_shadowmap_offset: i32, }; +struct Fog { + base_color: vec4, + directional_light_color: vec4, + // `be` and `bi` are allocated differently depending on the fog mode + // + // For Linear Fog: + // be.x = start, be.y = end + // For Exponential and ExponentialSquared Fog: + // be.x = density + // For Atmospheric Fog: + // be = per-channel extinction density + // bi = per-channel inscattering density + be: vec3, + directional_light_exponent: f32, + bi: vec3, + mode: u32, +} + +// Important: These must be kept in sync with `fog.rs` +let FOG_MODE_OFF: u32 = 0u; +let FOG_MODE_LINEAR: u32 = 1u; +let FOG_MODE_EXPONENTIAL: u32 = 2u; +let FOG_MODE_EXPONENTIAL_SQUARED: u32 = 3u; +let FOG_MODE_ATMOSPHERIC: u32 = 4u; + #if AVAILABLE_STORAGE_BUFFER_BINDINGS >= 3 struct PointLights { data: array, diff --git a/crates/bevy_pbr/src/render/mod.rs b/crates/bevy_pbr/src/render/mod.rs index 353f05be1d..1276b28c8e 100644 --- a/crates/bevy_pbr/src/render/mod.rs +++ b/crates/bevy_pbr/src/render/mod.rs @@ -1,5 +1,7 @@ +mod fog; mod light; mod mesh; +pub use fog::*; pub use light::*; pub use mesh::*; diff --git a/crates/bevy_pbr/src/render/pbr.wgsl b/crates/bevy_pbr/src/render/pbr.wgsl index 3f57745515..62837803bd 100644 --- a/crates/bevy_pbr/src/render/pbr.wgsl +++ b/crates/bevy_pbr/src/render/pbr.wgsl @@ -6,6 +6,7 @@ #import bevy_pbr::clustered_forward #import bevy_pbr::lighting #import bevy_pbr::shadows +#import bevy_pbr::fog #import bevy_pbr::pbr_functions struct FragmentInput { @@ -95,6 +96,11 @@ fn fragment(in: FragmentInput) -> @location(0) vec4 { output_color = alpha_discard(material, output_color); } + // fog + if (fog.mode != FOG_MODE_OFF && (material.flags & STANDARD_MATERIAL_FLAGS_FOG_ENABLED_BIT) != 0u) { + output_color = apply_fog(output_color, in.world_position.xyz, view.world_position.xyz); + } + #ifdef TONEMAP_IN_SHADER output_color = tone_mapping(output_color); #endif diff --git a/crates/bevy_pbr/src/render/pbr_functions.wgsl b/crates/bevy_pbr/src/render/pbr_functions.wgsl index f4a4f94731..57b5162028 100644 --- a/crates/bevy_pbr/src/render/pbr_functions.wgsl +++ b/crates/bevy_pbr/src/render/pbr_functions.wgsl @@ -269,6 +269,46 @@ fn dither(color: vec4, pos: vec2) -> vec4 { } #endif // DEBAND_DITHER +#ifndef NORMAL_PREPASS +fn apply_fog(input_color: vec4, fragment_world_position: vec3, view_world_position: vec3) -> vec4 { + let view_to_world = fragment_world_position.xyz - view_world_position.xyz; + + // `length()` is used here instead of just `view_to_world.z` since that produces more + // high quality results, especially for denser/smaller fogs. we get a "curved" + // fog shape that remains consistent with camera rotation, instead of a "linear" + // fog shape that looks a bit fake + let distance = length(view_to_world); + + var scattering = vec3(0.0); + if (fog.directional_light_color.a > 0.0) { + let view_to_world_normalized = view_to_world / distance; + let n_directional_lights = lights.n_directional_lights; + for (var i: u32 = 0u; i < n_directional_lights; i = i + 1u) { + let light = lights.directional_lights[i]; + scattering += pow( + max( + dot(view_to_world_normalized, light.direction_to_light), + 0.0 + ), + fog.directional_light_exponent + ) * light.color.rgb; + } + } + + if (fog.mode == FOG_MODE_LINEAR) { + return linear_fog(input_color, distance, scattering); + } else if (fog.mode == FOG_MODE_EXPONENTIAL) { + return exponential_fog(input_color, distance, scattering); + } else if (fog.mode == FOG_MODE_EXPONENTIAL_SQUARED) { + return exponential_squared_fog(input_color, distance, scattering); + } else if (fog.mode == FOG_MODE_ATMOSPHERIC) { + return atmospheric_fog(input_color, distance, scattering); + } else { + return input_color; + } +} +#endif + #ifdef PREMULTIPLY_ALPHA fn premultiply_alpha(standard_material_flags: u32, color: vec4) -> vec4 { // `Blend`, `Premultiplied` and `Alpha` all share the same `BlendState`. Depending diff --git a/crates/bevy_pbr/src/render/pbr_types.wgsl b/crates/bevy_pbr/src/render/pbr_types.wgsl index 8b9eb3297b..c84ea79275 100644 --- a/crates/bevy_pbr/src/render/pbr_types.wgsl +++ b/crates/bevy_pbr/src/render/pbr_types.wgsl @@ -19,6 +19,7 @@ let STANDARD_MATERIAL_FLAGS_DOUBLE_SIDED_BIT: u32 = 16u; let STANDARD_MATERIAL_FLAGS_UNLIT_BIT: u32 = 32u; let STANDARD_MATERIAL_FLAGS_TWO_COMPONENT_NORMAL_MAP: u32 = 64u; let STANDARD_MATERIAL_FLAGS_FLIP_NORMAL_MAP_Y: u32 = 128u; +let STANDARD_MATERIAL_FLAGS_FOG_ENABLED_BIT: u32 = 256u; let STANDARD_MATERIAL_FLAGS_ALPHA_MODE_RESERVED_BITS: u32 = 3758096384u; // (0b111u32 << 29) let STANDARD_MATERIAL_FLAGS_ALPHA_MODE_OPAQUE: u32 = 0u; // (0u32 << 29) let STANDARD_MATERIAL_FLAGS_ALPHA_MODE_MASK: u32 = 536870912u; // (1u32 << 29) diff --git a/examples/3d/atmospheric_fog.rs b/examples/3d/atmospheric_fog.rs new file mode 100644 index 0000000000..d1024e8372 --- /dev/null +++ b/examples/3d/atmospheric_fog.rs @@ -0,0 +1,124 @@ +//! This example showcases atmospheric fog +//! +//! ## Controls +//! +//! | Key Binding | Action | +//! |:-------------------|:---------------------------------------| +//! | `Spacebar` | Toggle Atmospheric Fog | +//! | `S` | Toggle Directional Light Fog Influence | + +use bevy::{ + pbr::{CascadeShadowConfig, NotShadowCaster}, + prelude::*, +}; + +fn main() { + App::new() + .add_plugins(DefaultPlugins) + .add_startup_system(setup_camera_fog) + .add_startup_system(setup_terrain_scene) + .add_startup_system(setup_instructions) + .add_system(toggle_system) + .run(); +} + +fn setup_camera_fog(mut commands: Commands) { + commands.spawn(( + Camera3dBundle { + transform: Transform::from_xyz(-1.0, 0.1, 1.0) + .looking_at(Vec3::new(0.0, 0.0, 0.0), Vec3::Y), + ..default() + }, + FogSettings { + color: Color::rgba(0.1, 0.2, 0.4, 1.0), + directional_light_color: Color::rgba(1.0, 0.95, 0.75, 0.5), + directional_light_exponent: 30.0, + falloff: FogFalloff::from_visibility_colors( + 15.0, // distance in world units up to which objects retain visibility (>= 5% contrast) + Color::rgb(0.35, 0.5, 0.66), // atmospheric extinction color (after light is lost due to absorption by atmospheric particles) + Color::rgb(0.8, 0.844, 1.0), // atmospheric inscattering color (light gained due to scattering from the sun) + ), + }, + )); +} + +fn setup_terrain_scene( + mut commands: Commands, + mut meshes: ResMut>, + mut materials: ResMut>, + asset_server: Res, +) { + // Configure a properly scaled cascade shadow map for this scene (defaults are too large, mesh units are in km) + // For WebGL we only support 1 cascade level for now + let cascade_shadow_config = + CascadeShadowConfig::new(if cfg!(feature = "webgl") { 1 } else { 4 }, 0.5, 2.5, 0.2); + + // Sun + commands.spawn(DirectionalLightBundle { + directional_light: DirectionalLight { + color: Color::rgb(0.98, 0.95, 0.82), + shadows_enabled: true, + ..default() + }, + transform: Transform::from_xyz(0.0, 0.0, 0.0) + .looking_at(Vec3::new(-0.15, -0.05, 0.25), Vec3::Y), + cascade_shadow_config, + ..default() + }); + + // Terrain + commands.spawn(SceneBundle { + scene: asset_server.load("models/terrain/Mountains.gltf#Scene0"), + ..default() + }); + + // Sky + commands.spawn(( + PbrBundle { + mesh: meshes.add(Mesh::from(shape::Box::default())), + material: materials.add(StandardMaterial { + base_color: Color::hex("888888").unwrap(), + unlit: true, + cull_mode: None, + ..default() + }), + transform: Transform::from_scale(Vec3::splat(20.0)), + ..default() + }, + NotShadowCaster, + )); +} + +fn setup_instructions(mut commands: Commands, asset_server: Res) { + commands.spawn((TextBundle::from_section( + "Press Spacebar to Toggle Atmospheric Fog.\nPress S to Toggle Directional Light Fog Influence.", + TextStyle { + font: asset_server.load("fonts/FiraMono-Medium.ttf"), + font_size: 15.0, + color: Color::WHITE, + }, + ) + .with_style(Style { + position_type: PositionType::Absolute, + position: UiRect { + bottom: Val::Px(10.0), + left: Val::Px(10.0), + ..default() + }, + ..default() + }),)); +} + +fn toggle_system(keycode: Res>, mut fog: Query<&mut FogSettings>) { + let mut fog_settings = fog.single_mut(); + + if keycode.just_pressed(KeyCode::Space) { + let a = fog_settings.color.a(); + fog_settings.color.set_a(1.0 - a); + } + + if keycode.just_pressed(KeyCode::S) { + let a = fog_settings.directional_light_color.a(); + fog_settings.directional_light_color.set_a(0.5 - a); + } +} diff --git a/examples/3d/fog.rs b/examples/3d/fog.rs new file mode 100644 index 0000000000..ba9f844c12 --- /dev/null +++ b/examples/3d/fog.rs @@ -0,0 +1,317 @@ +//! This interactive example shows how to use distance fog, +//! and allows playing around with different fog settings. +//! +//! ## Controls +//! +//! | Key Binding | Action | +//! |:-------------------|:------------------------------------| +//! | `1` / `2` / `3` | Fog Falloff Mode | +//! | `A` / `S` | Move Start Distance (Linear Fog) | +//! | | Change Density (Exponential Fogs) | +//! | `Z` / `X` | Move End Distance (Linear Fog) | +//! | `-` / `=` | Adjust Fog Red Channel | +//! | `[` / `]` | Adjust Fog Green Channel | +//! | `;` / `'` | Adjust Fog Blue Channel | +//! | `.` / `?` | Adjust Fog Alpha Channel | + +use bevy::{ + pbr::{NotShadowCaster, NotShadowReceiver}, + prelude::*, +}; + +fn main() { + App::new() + .add_plugins(DefaultPlugins) + .add_startup_system(setup_camera_fog) + .add_startup_system(setup_pyramid_scene) + .add_startup_system(setup_instructions) + .add_system(update_system) + .run(); +} + +fn setup_camera_fog(mut commands: Commands) { + commands.spawn(( + Camera3dBundle::default(), + FogSettings { + color: Color::rgba(0.05, 0.05, 0.05, 1.0), + falloff: FogFalloff::Linear { + start: 5.0, + end: 20.0, + }, + ..default() + }, + )); +} + +fn setup_pyramid_scene( + mut commands: Commands, + mut meshes: ResMut>, + mut materials: ResMut>, +) { + let stone = materials.add(StandardMaterial { + base_color: Color::hex("28221B").unwrap(), + perceptual_roughness: 1.0, + ..default() + }); + + // pillars + for (x, z) in &[(-1.5, -1.5), (1.5, -1.5), (1.5, 1.5), (-1.5, 1.5)] { + commands.spawn(PbrBundle { + mesh: meshes.add(Mesh::from(shape::Box { + min_x: -0.5, + max_x: 0.5, + min_z: -0.5, + max_z: 0.5, + min_y: 0.0, + max_y: 3.0, + })), + material: stone.clone(), + transform: Transform::from_xyz(*x, 0.0, *z), + ..default() + }); + } + + // orb + commands.spawn(( + PbrBundle { + mesh: meshes.add(Mesh::try_from(shape::Icosphere::default()).unwrap()), + material: materials.add(StandardMaterial { + base_color: Color::hex("126212CC").unwrap(), + reflectance: 1.0, + perceptual_roughness: 0.0, + metallic: 0.5, + alpha_mode: AlphaMode::Blend, + ..default() + }), + transform: Transform::from_scale(Vec3::splat(1.75)) + .with_translation(Vec3::new(0.0, 4.0, 0.0)), + ..default() + }, + NotShadowCaster, + NotShadowReceiver, + )); + + // steps + for i in 0..50 { + let size = i as f32 / 2.0 + 3.0; + let y = -i as f32 / 2.0; + commands.spawn(PbrBundle { + mesh: meshes.add(Mesh::from(shape::Box { + min_x: -size, + max_x: size, + min_z: -size, + max_z: size, + min_y: 0.0, + max_y: 0.5, + })), + material: stone.clone(), + transform: Transform::from_xyz(0.0, y, 0.0), + ..default() + }); + } + + // sky + commands.spawn(PbrBundle { + mesh: meshes.add(Mesh::from(shape::Box::default())), + material: materials.add(StandardMaterial { + base_color: Color::hex("888888").unwrap(), + unlit: true, + cull_mode: None, + ..default() + }), + transform: Transform::from_scale(Vec3::splat(1_000_000.0)), + ..default() + }); + + // light + commands.spawn(PointLightBundle { + transform: Transform::from_xyz(0.0, 1.0, 0.0), + point_light: PointLight { + intensity: 1500., + range: 100., + shadows_enabled: true, + ..default() + }, + ..default() + }); +} + +fn setup_instructions(mut commands: Commands, asset_server: Res) { + commands.spawn((TextBundle::from_section( + "", + TextStyle { + font: asset_server.load("fonts/FiraMono-Medium.ttf"), + font_size: 15.0, + color: Color::WHITE, + }, + ) + .with_style(Style { + position_type: PositionType::Absolute, + position: UiRect { + top: Val::Px(10.0), + left: Val::Px(10.0), + ..default() + }, + ..default() + }),)); +} + +fn update_system( + mut camera: Query<(&mut FogSettings, &mut Transform)>, + mut text: Query<&mut Text>, + time: Res