pub struct CpuMaterial {
Show 18 fields pub name: String, pub albedo: Srgba, pub albedo_texture: Option<Texture2D>, pub metallic: f32, pub roughness: f32, pub occlusion_metallic_roughness_texture: Option<Texture2D>, pub metallic_roughness_texture: Option<Texture2D>, pub occlusion_strength: f32, pub occlusion_texture: Option<Texture2D>, pub normal_scale: f32, pub normal_texture: Option<Texture2D>, pub emissive: Srgba, pub emissive_texture: Option<Texture2D>, pub alpha_cutout: Option<f32>, pub lighting_model: LightingModel, pub index_of_refraction: f32, pub transmission: f32, pub transmission_texture: Option<Texture2D>,
}
Expand description

A CPU-side version of a material used for physically based rendering (PBR).

Fields§

§name: String

Name. Used for matching geometry and material.

§albedo: Srgba

Albedo base color, also called diffuse color.

§albedo_texture: Option<Texture2D>

Texture with albedo base colors, also called diffuse colors. The colors are assumed to be in sRGB (RgbU8), sRGB with an alpha channel (RgbaU8) or HDR color space.

§metallic: f32

A value in the range [0..1] specifying how metallic the material is.

§roughness: f32

A value in the range [0..1] specifying how rough the material surface is.

§occlusion_metallic_roughness_texture: Option<Texture2D>

Texture containing the occlusion, metallic and roughness parameters. The occlusion values are sampled from the red channel, metallic from the blue channel and the roughness from the green channel. Is sometimes in two textures, see Self::occlusion_texture and Self::metallic_roughness_texture.

§metallic_roughness_texture: Option<Texture2D>

Texture containing the metallic and roughness parameters which are multiplied with the Self::metallic and Self::roughness to get the final parameter. The metallic values are sampled from the blue channel and the roughness from the green channel. Can be combined with occlusion into one texture, see Self::occlusion_metallic_roughness_texture.

§occlusion_strength: f32

A scalar multiplier controlling the amount of occlusion applied from the Self::occlusion_texture. A value of 0.0 means no occlusion. A value of 1.0 means full occlusion.

§occlusion_texture: Option<Texture2D>

An occlusion map. Higher values indicate areas that should receive full indirect lighting and lower values indicate no indirect lighting. The occlusion values are sampled from the red channel. Can be combined with metallic and roughness into one texture, see Self::occlusion_metallic_roughness_texture.

§normal_scale: f32

A scalar multiplier applied to each normal vector of the Self::normal_texture.

§normal_texture: Option<Texture2D>

A tangent space normal map, also known as bump map.

§emissive: Srgba

Color of light shining from an object.

§emissive_texture: Option<Texture2D>

Texture with color of light shining from an object. The colors are assumed to be in sRGB (RgbU8), sRGB with an alpha channel (RgbaU8) or HDR color space.

§alpha_cutout: Option<f32>

Alpha cutout value for transparency in deferred rendering pipeline.

§lighting_model: LightingModel

The lighting model used when rendering this material

§index_of_refraction: f32

The index of refraction for this material

§transmission: f32

A value in the range [0..1] specifying how transmissive the material surface is.

§transmission_texture: Option<Texture2D>

Texture containing the transmission parameter which are multiplied with the Self::transmission to get the final parameter.

Trait Implementations§

source§

impl Clone for PbrMaterial

source§

fn clone(&self) -> PbrMaterial

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PbrMaterial

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
source§

impl Default for PbrMaterial

source§

fn default() -> PbrMaterial

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> SerializableAny for T
where T: 'static + Any + Clone + for<'a> Send + Sync,