Apply additional renames for consistency
This commit is contained in:
parent
5fe0258e79
commit
e4d133a420
@ -40,14 +40,13 @@ pub struct Camera3d {
|
||||
/// Setting this to `0` disables the screen-space refraction effect entirely, and falls
|
||||
/// back to refracting only the environment map light's texture.
|
||||
pub screen_space_transmission_steps: usize,
|
||||
/// Controls the quality of the blur effect applied to the background refracted through
|
||||
/// specular transmissive materials. (The blur effect kicks in when a material's `roughness` > `0.0`
|
||||
/// and `screen_space_transmission_steps` > `0`, producing a "frosted glass" look.)
|
||||
/// The quality of the screen space transmission blur effect, applied to the whatever's “behind” transmissive
|
||||
/// objects when their `roughness` is greater than `0.0`.
|
||||
///
|
||||
/// Higher qualities are more GPU-intensive.
|
||||
///
|
||||
/// **Note:** You can get better-looking results at any quality level by enabling TAA. See: [`TemporalAntiAliasPlugin`](crate::experimental::taa::TemporalAntiAliasPlugin).
|
||||
pub screen_space_transmission_blur_quality: ScreenSpaceTransmissiveBlurQuality,
|
||||
pub screen_space_transmission_quality: ScreenSpaceTransmissionQuality,
|
||||
}
|
||||
|
||||
impl Default for Camera3d {
|
||||
@ -57,7 +56,7 @@ impl Default for Camera3d {
|
||||
depth_load_op: Default::default(),
|
||||
depth_texture_usages: TextureUsages::RENDER_ATTACHMENT.into(),
|
||||
screen_space_transmission_steps: 1,
|
||||
screen_space_transmission_blur_quality: Default::default(),
|
||||
screen_space_transmission_quality: Default::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -102,7 +101,7 @@ impl From<Camera3dDepthLoadOp> for LoadOp<f32> {
|
||||
}
|
||||
}
|
||||
|
||||
/// The quality of the transmissive blur effect, applied to the whatever's “behind” transmissive
|
||||
/// The quality of the screen space transmission blur effect, applied to the whatever's “behind” transmissive
|
||||
/// objects when their `roughness` is greater than `0.0`.
|
||||
///
|
||||
/// Higher qualities are more GPU-intensive.
|
||||
@ -110,7 +109,7 @@ impl From<Camera3dDepthLoadOp> for LoadOp<f32> {
|
||||
/// **Note:** You can get better-looking results at any quality level by enabling TAA. See: [`TemporalAntiAliasPlugin`](crate::experimental::taa::TemporalAntiAliasPlugin).
|
||||
#[derive(Resource, Default, Clone, Copy, Reflect, PartialEq, PartialOrd, Debug)]
|
||||
#[reflect(Resource)]
|
||||
pub enum ScreenSpaceTransmissiveBlurQuality {
|
||||
pub enum ScreenSpaceTransmissionQuality {
|
||||
/// Best performance at the cost of quality. Suitable for lower end GPUs. (e.g. Mobile)
|
||||
///
|
||||
/// `num_taps` = 4
|
||||
|
||||
@ -7,7 +7,7 @@ use bevy_app::{App, Plugin};
|
||||
use bevy_asset::{Asset, AssetApp, AssetEvent, AssetId, AssetServer, Assets, Handle};
|
||||
use bevy_core_pipeline::{
|
||||
core_3d::{
|
||||
AlphaMask3d, Camera3d, Opaque3d, ScreenSpaceTransmissiveBlurQuality, Transmissive3d,
|
||||
AlphaMask3d, Camera3d, Opaque3d, ScreenSpaceTransmissionQuality, Transmissive3d,
|
||||
Transparent3d,
|
||||
},
|
||||
prepass::NormalPrepass,
|
||||
@ -426,14 +426,14 @@ const fn tonemapping_pipeline_key(tonemapping: Tonemapping) -> MeshPipelineKey {
|
||||
}
|
||||
}
|
||||
|
||||
const fn transmissive_quality_pipeline_key(
|
||||
transmissive_quality: ScreenSpaceTransmissiveBlurQuality,
|
||||
const fn screen_space_transmission_pipeline_key(
|
||||
screen_space_transmissive_blur_quality: ScreenSpaceTransmissionQuality,
|
||||
) -> MeshPipelineKey {
|
||||
match transmissive_quality {
|
||||
ScreenSpaceTransmissiveBlurQuality::Low => MeshPipelineKey::TRANSMISSIVE_QUALITY_LOW,
|
||||
ScreenSpaceTransmissiveBlurQuality::Medium => MeshPipelineKey::TRANSMISSIVE_QUALITY_MEDIUM,
|
||||
ScreenSpaceTransmissiveBlurQuality::High => MeshPipelineKey::TRANSMISSIVE_QUALITY_HIGH,
|
||||
ScreenSpaceTransmissiveBlurQuality::Ultra => MeshPipelineKey::TRANSMISSIVE_QUALITY_ULTRA,
|
||||
match screen_space_transmissive_blur_quality {
|
||||
ScreenSpaceTransmissionQuality::Low => MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_LOW,
|
||||
ScreenSpaceTransmissionQuality::Medium => MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_MEDIUM,
|
||||
ScreenSpaceTransmissionQuality::High => MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_HIGH,
|
||||
ScreenSpaceTransmissionQuality::Ultra => MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_ULTRA,
|
||||
}
|
||||
}
|
||||
|
||||
@ -520,7 +520,7 @@ pub fn queue_material_meshes<M: Material>(
|
||||
}
|
||||
if let Some(camera_3d) = camera_3d {
|
||||
view_key |=
|
||||
transmissive_quality_pipeline_key(camera_3d.screen_space_transmission_blur_quality);
|
||||
screen_space_transmission_pipeline_key(camera_3d.screen_space_transmission_quality);
|
||||
}
|
||||
let rangefinder = view.rangefinder3d();
|
||||
for visible_entity in &visible_entities.entities {
|
||||
|
||||
@ -729,11 +729,11 @@ bitflags::bitflags! {
|
||||
const TONEMAP_METHOD_SOMEWHAT_BORING_DISPLAY_TRANSFORM = 5 << Self::TONEMAP_METHOD_SHIFT_BITS;
|
||||
const TONEMAP_METHOD_TONY_MC_MAPFACE = 6 << Self::TONEMAP_METHOD_SHIFT_BITS;
|
||||
const TONEMAP_METHOD_BLENDER_FILMIC = 7 << Self::TONEMAP_METHOD_SHIFT_BITS;
|
||||
const TRANSMISSIVE_QUALITY_RESERVED_BITS = Self::TRANSMISSIVE_QUALITY_MASK_BITS << Self::TRANSMISSIVE_QUALITY_SHIFT_BITS;
|
||||
const TRANSMISSIVE_QUALITY_LOW = 0 << Self::TRANSMISSIVE_QUALITY_SHIFT_BITS;
|
||||
const TRANSMISSIVE_QUALITY_MEDIUM = 1 << Self::TRANSMISSIVE_QUALITY_SHIFT_BITS;
|
||||
const TRANSMISSIVE_QUALITY_HIGH = 2 << Self::TRANSMISSIVE_QUALITY_SHIFT_BITS;
|
||||
const TRANSMISSIVE_QUALITY_ULTRA = 3 << Self::TRANSMISSIVE_QUALITY_SHIFT_BITS;
|
||||
const SCREEN_SPACE_TRANSMISSION_RESERVED_BITS = Self::SCREEN_SPACE_TRANSMISSION_MASK_BITS << Self::SCREEN_SPACE_TRANSMISSION_SHIFT_BITS;
|
||||
const SCREEN_SPACE_TRANSMISSION_LOW = 0 << Self::SCREEN_SPACE_TRANSMISSION_SHIFT_BITS;
|
||||
const SCREEN_SPACE_TRANSMISSION_MEDIUM = 1 << Self::SCREEN_SPACE_TRANSMISSION_SHIFT_BITS;
|
||||
const SCREEN_SPACE_TRANSMISSION_HIGH = 2 << Self::SCREEN_SPACE_TRANSMISSION_SHIFT_BITS;
|
||||
const SCREEN_SPACE_TRANSMISSION_ULTRA = 3 << Self::SCREEN_SPACE_TRANSMISSION_SHIFT_BITS;
|
||||
}
|
||||
}
|
||||
|
||||
@ -749,9 +749,9 @@ impl MeshPipelineKey {
|
||||
const TONEMAP_METHOD_MASK_BITS: u32 = 0b111;
|
||||
const TONEMAP_METHOD_SHIFT_BITS: u32 =
|
||||
Self::BLEND_SHIFT_BITS - Self::TONEMAP_METHOD_MASK_BITS.count_ones();
|
||||
const TRANSMISSIVE_QUALITY_MASK_BITS: u32 = 0b11;
|
||||
const TRANSMISSIVE_QUALITY_SHIFT_BITS: u32 =
|
||||
Self::TONEMAP_METHOD_SHIFT_BITS - Self::TRANSMISSIVE_QUALITY_MASK_BITS.count_ones();
|
||||
const SCREEN_SPACE_TRANSMISSION_MASK_BITS: u32 = 0b11;
|
||||
const SCREEN_SPACE_TRANSMISSION_SHIFT_BITS: u32 =
|
||||
Self::TONEMAP_METHOD_SHIFT_BITS - Self::SCREEN_SPACE_TRANSMISSION_MASK_BITS.count_ones();
|
||||
|
||||
pub fn from_msaa_samples(msaa_samples: u32) -> Self {
|
||||
let msaa_bits =
|
||||
@ -983,16 +983,16 @@ impl SpecializedMeshPipeline for MeshPipeline {
|
||||
shader_defs.push("TEMPORAL_JITTER".into());
|
||||
}
|
||||
|
||||
let transmissive_quality =
|
||||
key.intersection(MeshPipelineKey::TRANSMISSIVE_QUALITY_RESERVED_BITS);
|
||||
let blur_quality =
|
||||
key.intersection(MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_RESERVED_BITS);
|
||||
|
||||
if transmissive_quality == MeshPipelineKey::TRANSMISSIVE_QUALITY_LOW {
|
||||
if blur_quality == MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_LOW {
|
||||
shader_defs.push(ShaderDefVal::Int("TRANSMISSIVE_TAPS".into(), 4));
|
||||
} else if transmissive_quality == MeshPipelineKey::TRANSMISSIVE_QUALITY_MEDIUM {
|
||||
} else if blur_quality == MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_MEDIUM {
|
||||
shader_defs.push(ShaderDefVal::Int("TRANSMISSIVE_TAPS".into(), 8));
|
||||
} else if transmissive_quality == MeshPipelineKey::TRANSMISSIVE_QUALITY_HIGH {
|
||||
} else if blur_quality == MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_HIGH {
|
||||
shader_defs.push(ShaderDefVal::Int("TRANSMISSIVE_TAPS".into(), 16));
|
||||
} else if transmissive_quality == MeshPipelineKey::TRANSMISSIVE_QUALITY_ULTRA {
|
||||
} else if blur_quality == MeshPipelineKey::SCREEN_SPACE_TRANSMISSION_ULTRA {
|
||||
shader_defs.push(ShaderDefVal::Int("TRANSMISSIVE_TAPS".into(), 32));
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user