Rename the blur taps shader def

This commit is contained in:
Marco Buono 2023-10-08 18:40:53 -03:00
parent e4d133a420
commit 5c4f00b120
3 changed files with 23 additions and 13 deletions

View File

@ -987,13 +987,25 @@ impl SpecializedMeshPipeline for MeshPipeline {
key.intersection(MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_RESERVED_BITS);
if blur_quality == MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_LOW {
shader_defs.push(ShaderDefVal::Int("TRANSMISSIVE_TAPS".into(), 4));
shader_defs.push(ShaderDefVal::Int(
"SCREEN_SPACE_TRANSMISSION_BLUR_TAPS".into(),
4,
));
} else if blur_quality == MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_MEDIUM {
shader_defs.push(ShaderDefVal::Int("TRANSMISSIVE_TAPS".into(), 8));
shader_defs.push(ShaderDefVal::Int(
"SCREEN_SPACE_TRANSMISSION_BLUR_TAPS".into(),
8,
));
} else if blur_quality == MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_HIGH {
shader_defs.push(ShaderDefVal::Int("TRANSMISSIVE_TAPS".into(), 16));
shader_defs.push(ShaderDefVal::Int(
"SCREEN_SPACE_TRANSMISSION_BLUR_TAPS".into(),
16,
));
} else if blur_quality == MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_ULTRA {
shader_defs.push(ShaderDefVal::Int("TRANSMISSIVE_TAPS".into(), 32));
shader_defs.push(ShaderDefVal::Int(
"SCREEN_SPACE_TRANSMISSION_BLUR_TAPS".into(),
32,
));
}
let format = if key.contains(MeshPipelineKey::HDR) {

View File

@ -356,8 +356,8 @@ fn fetch_transmissive_background(offset_position: vec2<f32>, frag_coord: vec3<f3
// - inversely proportional to view z
let blur_intensity = (perceptual_roughness * perceptual_roughness) / view_z;
#ifdef TRANSMISSIVE_TAPS
let num_taps = #{TRANSMISSIVE_TAPS}; // Controlled by the `Camera3d::transmissive_quality` property
#ifdef SCREEN_SPACE_TRANSMISSION_BLUR_TAPS
let num_taps = #{SCREEN_SPACE_TRANSMISSION_BLUR_TAPS}; // Controlled by the `Camera3d::transmissive_quality` property
#else
let num_taps = 8; // Fallback to 8 taps
#endif

View File

@ -20,7 +20,7 @@ use std::f32::consts::PI;
use bevy::{
core_pipeline::{
bloom::BloomSettings, core_3d::ScreenSpaceTransmissiveBlurQuality, prepass::DepthPrepass,
bloom::BloomSettings, core_3d::ScreenSpaceTransmissionQuality, prepass::DepthPrepass,
tonemapping::Tonemapping,
},
pbr::{NotShadowCaster, NotTransmittedShadowReceiver, PointLightShadowMap},
@ -528,21 +528,19 @@ fn example_control_system(
}
if input.just_pressed(KeyCode::J) {
camera_3d.screen_space_transmission_blur_quality = ScreenSpaceTransmissiveBlurQuality::Low;
camera_3d.screen_space_transmission_quality = ScreenSpaceTransmissionQuality::Low;
}
if input.just_pressed(KeyCode::K) {
camera_3d.screen_space_transmission_blur_quality =
ScreenSpaceTransmissiveBlurQuality::Medium;
camera_3d.screen_space_transmission_quality = ScreenSpaceTransmissionQuality::Medium;
}
if input.just_pressed(KeyCode::L) {
camera_3d.screen_space_transmission_blur_quality = ScreenSpaceTransmissiveBlurQuality::High;
camera_3d.screen_space_transmission_quality = ScreenSpaceTransmissionQuality::High;
}
if input.just_pressed(KeyCode::Semicolon) {
camera_3d.screen_space_transmission_blur_quality =
ScreenSpaceTransmissiveBlurQuality::Ultra;
camera_3d.screen_space_transmission_quality = ScreenSpaceTransmissionQuality::Ultra;
}
let rotation = if input.pressed(KeyCode::Right) {