Struct three_d::core::CPUMaterial[][src]

pub struct CPUMaterial {
    pub name: String,
    pub albedo: Color,
    pub albedo_texture: Option<CPUTexture<u8>>,
    pub metallic: f32,
    pub roughness: f32,
    pub occlusion_metallic_roughness_texture: Option<CPUTexture<u8>>,
    pub metallic_roughness_texture: Option<CPUTexture<u8>>,
    pub occlusion_strength: f32,
    pub occlusion_texture: Option<CPUTexture<u8>>,
    pub normal_scale: f32,
    pub normal_texture: Option<CPUTexture<u8>>,
}
Expand description

A CPU-side version of a Material. Can be constructed manually or loaded via io.

Fields

name: String

Name. Used for matching geometry and material.

albedo: Color

Albedo base color, also called diffuse color. Assumed to be in linear color space.

albedo_texture: Option<CPUTexture<u8>>

Texture with albedo base colors, also called diffuse color. Assumed to be in sRGB with or without an alpha channel.

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<CPUTexture<u8>>

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<CPUTexture<u8>>

Texture containing the metallic and roughness parameters which are multiplied with the Self::metallic and Self::roughness values in the shader. 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<CPUTexture<u8>>

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<CPUTexture<u8>>

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

Trait Implementations

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

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more