From 510fce9af330a2a6b4d4c148f531d1a428987f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20=C5=A0vejda?= <143610747+jirisvd@users.noreply.github.com> Date: Thu, 22 Aug 2024 20:43:14 +0100 Subject: [PATCH] Allow fog density texture to be scrolled over time with an offset (#14868) # Objective - The goal of this PR is to make it possible to move the density texture of a `FogVolume` over time in order to create dynamic effects like fog moving in the wind. - You could theoretically move the `FogVolume` itself, but this is not ideal, because the `FogVolume` AABB would eventually leave the area. If you want an area to remain foggy while also creating the impression that the fog is moving in the wind, a scrolling density texture is a better solution. ## Solution - The PR adds a `density_texture_offset` field to the `FogVolume` component. This offset is in the UVW coordinates of the density texture, meaning that a value of `(0.5, 0.0, 0.0)` moves the 3d texture by half along the x-axis. - Values above 1.0 are wrapped, a 1.5 offset is the same as a 0.5 offset. This makes it so that the density texture wraps around on the other side, meaning that a repeating 3d noise texture can seamlessly scroll forever. It also makes it easy to move the density texture over time by simply increasing the offset every frame. ## Testing - A `scrolling_fog` example has been added to demonstrate the feature. It uses the offset to scroll a repeating 3d noise density texture to create the impression of fog moving in the wind. - The camera is looking at a pillar with the sun peaking behind it. This highlights the effect the changing density has on the volumetric lighting interactions. - Temporal anti-aliasing combined with the `jitter` option of `VolumetricFogSettings` is used to improve the quality of the effect. --- ## Showcase https://github.com/user-attachments/assets/3aa50ebd-771c-4c99-ab5d-255c0c3be1a8 --- Cargo.toml | 11 ++ assets/volumes/fog_noise.ktx2 | Bin 0 -> 1048776 bytes crates/bevy_pbr/src/volumetric_fog/mod.rs | 13 ++ crates/bevy_pbr/src/volumetric_fog/render.rs | 2 + .../src/volumetric_fog/volumetric_fog.wgsl | 8 +- examples/3d/scrolling_fog.rs | 117 ++++++++++++++++++ examples/README.md | 1 + 7 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 assets/volumes/fog_noise.ktx2 create mode 100644 examples/3d/scrolling_fog.rs diff --git a/Cargo.toml b/Cargo.toml index 4fa6215bbb..474058b45f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3330,6 +3330,17 @@ description = "Demonstrates fog volumes" category = "3D Rendering" wasm = false +[[example]] +name = "scrolling_fog" +path = "examples/3d/scrolling_fog.rs" +doc-scrape-examples = true + +[package.metadata.example.scrolling_fog] +name = "Scrolling fog" +description = "Demonstrates how to create the effect of fog moving in the wind" +category = "3D Rendering" +wasm = false + [[example]] name = "physics_in_fixed_timestep" path = "examples/movement/physics_in_fixed_timestep.rs" diff --git a/assets/volumes/fog_noise.ktx2 b/assets/volumes/fog_noise.ktx2 new file mode 100644 index 0000000000000000000000000000000000000000..0f17706c00581d1974b7c8e5c83006cb5f46e745 GIT binary patch literal 1048776 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 Bl(YZ< literal 0 HcmV?d00001 diff --git a/crates/bevy_pbr/src/volumetric_fog/mod.rs b/crates/bevy_pbr/src/volumetric_fog/mod.rs index fbd455627a..ddc9b976c9 100644 --- a/crates/bevy_pbr/src/volumetric_fog/mod.rs +++ b/crates/bevy_pbr/src/volumetric_fog/mod.rs @@ -150,8 +150,20 @@ pub struct FogVolume { /// The default value is 0.1. pub density_factor: f32, + /// Optional 3D voxel density texture for the fog. pub density_texture: Option>, + /// Configurable offset of the density texture in UVW coordinates. Values 1.0 or higher + /// will be wrapped into the (0.0..1.0) range. + /// + /// This can be used to scroll a repeating density texture in a direction over time + /// to create effects like fog moving in the wind. + /// + /// Has no effect when no density texture is present. + /// + /// The default value is (0, 0, 0). + pub density_texture_offset: Vec3, + /// The absorption coefficient, which measures what fraction of light is /// absorbed by the fog at each step. /// @@ -268,6 +280,7 @@ impl Default for FogVolume { scattering: 0.3, density_factor: 0.1, density_texture: None, + density_texture_offset: Vec3::ZERO, scattering_asymmetry: 0.5, fog_color: Color::WHITE, light_tint: Color::WHITE, diff --git a/crates/bevy_pbr/src/volumetric_fog/render.rs b/crates/bevy_pbr/src/volumetric_fog/render.rs index de158762d5..618e984db0 100644 --- a/crates/bevy_pbr/src/volumetric_fog/render.rs +++ b/crates/bevy_pbr/src/volumetric_fog/render.rs @@ -183,6 +183,7 @@ pub struct VolumetricFogUniform { absorption: f32, scattering: f32, density: f32, + density_texture_offset: Vec3, scattering_asymmetry: f32, light_intensity: f32, jitter_strength: f32, @@ -727,6 +728,7 @@ pub fn prepare_volumetric_fog_uniforms( absorption: fog_volume.absorption, scattering: fog_volume.scattering, density: fog_volume.density_factor, + density_texture_offset: fog_volume.density_texture_offset, scattering_asymmetry: fog_volume.scattering_asymmetry, light_intensity: fog_volume.light_intensity, jitter_strength: volumetric_fog_settings.jitter, diff --git a/crates/bevy_pbr/src/volumetric_fog/volumetric_fog.wgsl b/crates/bevy_pbr/src/volumetric_fog/volumetric_fog.wgsl index 72f3d6d824..68e9291032 100644 --- a/crates/bevy_pbr/src/volumetric_fog/volumetric_fog.wgsl +++ b/crates/bevy_pbr/src/volumetric_fog/volumetric_fog.wgsl @@ -43,6 +43,7 @@ struct VolumetricFog { absorption: f32, scattering: f32, density_factor: f32, + density_texture_offset: vec3, scattering_asymmetry: f32, light_intensity: f32, jitter_strength: f32, @@ -101,6 +102,7 @@ fn fragment(@builtin(position) position: vec4) -> @location(0) vec4 { let absorption = volumetric_fog.absorption; let scattering = volumetric_fog.scattering; let density_factor = volumetric_fog.density_factor; + let density_texture_offset = volumetric_fog.density_texture_offset; let light_tint = volumetric_fog.light_tint; let light_intensity = volumetric_fog.light_intensity; let jitter_strength = volumetric_fog.jitter_strength; @@ -236,7 +238,11 @@ fn fragment(@builtin(position) position: vec4) -> @location(0) vec4 { // case. let P_uvw = Ro_uvw + Rd_step_uvw * f32(step); if (all(P_uvw >= vec3(0.0)) && all(P_uvw <= vec3(1.0))) { - density *= textureSample(density_texture, density_sampler, P_uvw).r; + // Add density texture offset and wrap values exceeding the (0, 0, 0) to (1, 1, 1) range. + var uvw = P_uvw + density_texture_offset; + uvw -= floor(uvw); + + density *= textureSample(density_texture, density_sampler, uvw).r; } else { density = 0.0; } diff --git a/examples/3d/scrolling_fog.rs b/examples/3d/scrolling_fog.rs new file mode 100644 index 0000000000..cfec3b255d --- /dev/null +++ b/examples/3d/scrolling_fog.rs @@ -0,0 +1,117 @@ +//! Showcases a `FogVolume`'s density texture being scrolled over time to create +//! the effect of fog moving in the wind. +//! +//! The density texture is a repeating 3d noise texture and the `density_texture_offset` +//! is moved every frame to achieve this. +//! +//! The example also utilizes the jitter option of `VolumetricFogSettings` in tandem +//! with temporal anti-aliasing to improve the visual quality of the effect. +//! +//! The camera is looking at a pillar with the sun peaking behind it. The light +//! interactions change based on the density of the fog. + +use bevy::core_pipeline::bloom::BloomSettings; +use bevy::core_pipeline::experimental::taa::{TemporalAntiAliasBundle, TemporalAntiAliasPlugin}; +use bevy::pbr::{DirectionalLightShadowMap, FogVolume, VolumetricFogSettings, VolumetricLight}; +use bevy::prelude::*; + +/// Initializes the example. +fn main() { + App::new() + .add_plugins(DefaultPlugins.set(WindowPlugin { + primary_window: Some(Window { + title: "Bevy Scrolling Fog".into(), + ..default() + }), + ..default() + })) + .insert_resource(DirectionalLightShadowMap { size: 4096 }) + .add_plugins(TemporalAntiAliasPlugin) + .add_systems(Startup, setup) + .add_systems(Update, scroll_fog) + .run(); +} + +/// Spawns all entities into the scene. +fn setup( + mut commands: Commands, + mut meshes: ResMut>, + mut materials: ResMut>, + assets: Res, +) { + // Spawn camera with temporal anti-aliasing and a VolumetricFogSettings configuration. + commands.spawn(( + Camera3dBundle { + transform: Transform::from_xyz(0.0, 2.0, 0.0) + .looking_at(Vec3::new(-5.0, 3.5, -6.0), Vec3::Y), + camera: Camera { + hdr: true, + ..default() + }, + msaa: Msaa::Off, + ..default() + }, + TemporalAntiAliasBundle::default(), + BloomSettings::default(), + VolumetricFogSettings { + ambient_intensity: 0.0, + jitter: 0.5, + ..default() + }, + )); + + // Spawn a directional light shining at the camera with the VolumetricLight component. + commands.spawn(( + DirectionalLightBundle { + transform: Transform::from_xyz(-5.0, 5.0, -7.0) + .looking_at(Vec3::new(0.0, 0.0, 0.0), Vec3::Y), + directional_light: DirectionalLight { + shadows_enabled: true, + ..default() + }, + ..default() + }, + VolumetricLight, + )); + + // Spawn ground mesh. + commands.spawn(PbrBundle { + transform: Transform::from_xyz(0.0, -0.5, 0.0), + mesh: meshes.add(Cuboid::new(64.0, 1.0, 64.0)), + material: materials.add(StandardMaterial { + base_color: Color::BLACK, + perceptual_roughness: 1.0, + ..default() + }), + ..default() + }); + + // Spawn pillar standing between the camera and the sun. + commands.spawn(PbrBundle { + transform: Transform::from_xyz(-10.0, 4.5, -11.0), + mesh: meshes.add(Cuboid::new(2.0, 9.0, 2.0)), + material: materials.add(Color::BLACK), + ..default() + }); + + // Spawn FogVolume with repeating 3d noise density texture. + commands.spawn(( + SpatialBundle { + visibility: Visibility::Visible, + transform: Transform::from_xyz(0.0, 32.0, 0.0).with_scale(Vec3::splat(64.0)), + ..default() + }, + FogVolume { + density_texture: Some(assets.load("volumes/fog_noise.ktx2")), + density_factor: 0.05, + ..default() + }, + )); +} + +/// Moves fog density texture offset every frame. +fn scroll_fog(time: Res