Struct bevy_pbr::StandardMaterialUniform
source · pub struct StandardMaterialUniform {Show 18 fields
pub base_color: Vec4,
pub emissive: Vec4,
pub roughness: f32,
pub metallic: f32,
pub reflectance: f32,
pub diffuse_transmission: f32,
pub specular_transmission: f32,
pub thickness: f32,
pub ior: f32,
pub attenuation_distance: f32,
pub attenuation_color: Vec4,
pub flags: u32,
pub alpha_cutoff: f32,
pub parallax_depth_scale: f32,
pub max_parallax_layer_count: f32,
pub lightmap_exposure: f32,
pub max_relief_mapping_search_steps: u32,
pub deferred_lighting_pass_id: u32,
}
Expand description
The GPU representation of the uniform data of a StandardMaterial
.
Fields§
§base_color: Vec4
Doubles as diffuse albedo for non-metallic, specular for metallic and a mix for everything in between.
emissive: Vec4
§roughness: f32
Linear perceptual roughness, clamped to [0.089, 1.0] in the shader Defaults to minimum of 0.089
metallic: f32
From [0.0, 1.0], dielectric to pure metallic
reflectance: f32
Specular intensity for non-metals on a linear scale of [0.0, 1.0] defaults to 0.5 which is mapped to 4% reflectance in the shader
diffuse_transmission: f32
Amount of diffuse light transmitted through the material
specular_transmission: f32
Amount of specular light transmitted through the material
thickness: f32
Thickness of the volume underneath the material surface
ior: f32
Index of Refraction
attenuation_distance: f32
How far light travels through the volume underneath the material surface before being absorbed
attenuation_color: Vec4
Color white light takes after travelling through the attenuation distance underneath the material surface
flags: u32
The StandardMaterialFlags
accessible in the wgsl
shader.
alpha_cutoff: f32
When the alpha mode mask flag is set, any base color alpha above this cutoff means fully opaque, and any below means fully transparent.
parallax_depth_scale: f32
The depth of the StandardMaterial::depth_map
to apply.
max_parallax_layer_count: f32
In how many layers to split the depth maps for Steep parallax mapping.
If your parallax_depth_scale
is >0.1 and you are seeing jaggy edges,
increase this value. However, this incurs a performance cost.
lightmap_exposure: f32
The exposure (brightness) level of the lightmap, if present.
max_relief_mapping_search_steps: u32
Using ParallaxMappingMethod::Relief
, how many additional
steps to use at most to find the depth value.
deferred_lighting_pass_id: u32
ID for specifying which deferred lighting pass should be used for rendering this material, if any.
Trait Implementations§
source§impl AsBindGroupShaderType<StandardMaterialUniform> for StandardMaterial
impl AsBindGroupShaderType<StandardMaterialUniform> for StandardMaterial
source§fn as_bind_group_shader_type(
&self,
images: &RenderAssets<Image>
) -> StandardMaterialUniform
fn as_bind_group_shader_type( &self, images: &RenderAssets<Image> ) -> StandardMaterialUniform
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.source§impl Clone for StandardMaterialUniform
impl Clone for StandardMaterialUniform
source§fn clone(&self) -> StandardMaterialUniform
fn clone(&self) -> StandardMaterialUniform
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl CreateFrom for StandardMaterialUniformwhere
Self: ShaderType<ExtraMetadata = StructMetadata<18usize>>,
for<'__> Vec4: CreateFrom,
for<'__> f32: CreateFrom,
for<'__> u32: CreateFrom,
impl CreateFrom for StandardMaterialUniformwhere
Self: ShaderType<ExtraMetadata = StructMetadata<18usize>>,
for<'__> Vec4: CreateFrom,
for<'__> f32: CreateFrom,
for<'__> u32: CreateFrom,
fn create_from<B: BufferRef>(reader: &mut Reader<B>) -> Self
source§impl Default for StandardMaterialUniform
impl Default for StandardMaterialUniform
source§fn default() -> StandardMaterialUniform
fn default() -> StandardMaterialUniform
source§impl ReadFrom for StandardMaterialUniform
impl ReadFrom for StandardMaterialUniform
source§impl ShaderSize for StandardMaterialUniform
impl ShaderSize for StandardMaterialUniform
source§const SHADER_SIZE: NonZeroU64 = _
const SHADER_SIZE: NonZeroU64 = _
ShaderType::min_size
)source§impl ShaderType for StandardMaterialUniform
impl ShaderType for StandardMaterialUniform
source§fn size(&self) -> NonZeroU64
fn size(&self) -> NonZeroU64
Self
at runtime Read moresource§fn min_size() -> NonZeroU64
fn min_size() -> NonZeroU64
source§fn assert_uniform_compat()
fn assert_uniform_compat()
Self
meets the requirements of the
uniform address space restrictions on stored values and the
uniform address space layout constraints Read moreAuto Trait Implementations§
impl RefUnwindSafe for StandardMaterialUniform
impl Send for StandardMaterialUniform
impl Sync for StandardMaterialUniform
impl Unpin for StandardMaterialUniform
impl UnwindSafe for StandardMaterialUniform
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &mut World) -> T
fn from_world(_world: &mut World) -> T
Self
using data from the given World
.