pub struct Material<'a> { /* private fields */ }
Expand description
The material appearance of a primitive.
Implementations§
source§impl<'a> Material<'a>
impl<'a> Material<'a>
sourcepub fn index(&self) -> Option<usize>
pub fn index(&self) -> Option<usize>
Returns the internal JSON index if this Material
was explicity defined.
This function returns None
if the Material
is the default material.
sourcepub fn alpha_cutoff(&self) -> Option<f32>
pub fn alpha_cutoff(&self) -> Option<f32>
The optional alpha cutoff value of the material.
sourcepub fn alpha_mode(&self) -> AlphaMode
pub fn alpha_mode(&self) -> AlphaMode
The alpha rendering mode of the material. The material’s alpha rendering mode enumeration specifying the interpretation of the alpha value of the main factor and texture.
- In
Opaque
mode (default) the alpha value is ignored and the rendered output is fully opaque. - In
Mask
mode, the rendered output is either fully opaque or fully transparent depending on the alpha value and the specified alpha cutoff value. - In
Blend
mode, the alpha value is used to composite the source and destination areas and the rendered output is combined with the background using the normal painting operation (i.e. the Porter and Duff over operator).
sourcepub fn double_sided(&self) -> bool
pub fn double_sided(&self) -> bool
Specifies whether the material is double-sided.
- When this value is false, back-face culling is enabled.
- When this value is true, back-face culling is disabled and double sided lighting is enabled. The back-face must have its normals reversed before the lighting equation is evaluated.
sourcepub fn pbr_metallic_roughness(&self) -> PbrMetallicRoughness<'a>
pub fn pbr_metallic_roughness(&self) -> PbrMetallicRoughness<'a>
Parameter values that define the metallic-roughness material model from Physically-Based Rendering (PBR) methodology.
sourcepub fn extensions(&self) -> Option<&Map<String, Value>>
pub fn extensions(&self) -> Option<&Map<String, Value>>
Returns extension data unknown to this crate version.
sourcepub fn extension_value(&self, key: &str) -> Option<&Value>
pub fn extension_value(&self, key: &str) -> Option<&Value>
Get the value of an extension based on the name of the extension
sourcepub fn transmission(&self) -> Option<Transmission<'a>>
pub fn transmission(&self) -> Option<Transmission<'a>>
Parameter values that define the transmission of light through the material
sourcepub fn ior(&self) -> Option<f32>
pub fn ior(&self) -> Option<f32>
Parameter values that define the index of refraction of the material
sourcepub fn emissive_strength(&self) -> Option<f32>
pub fn emissive_strength(&self) -> Option<f32>
Parameter value that adjusts the strength of emissive material properties
sourcepub fn volume(&self) -> Option<Volume<'a>>
pub fn volume(&self) -> Option<Volume<'a>>
Parameter values that define a volume for the transmission of light through the material
sourcepub fn normal_texture(&self) -> Option<NormalTexture<'a>>
pub fn normal_texture(&self) -> Option<NormalTexture<'a>>
A tangent space normal map.
The texture contains RGB components in linear space. Each texel represents the XYZ components of a normal vector in tangent space.
- Red [0 to 255] maps to X [-1 to 1].
- Green [0 to 255] maps to Y [-1 to 1].
- Blue [128 to 255] maps to Z [1/255 to 1].
The normal vectors use OpenGL conventions where +X is right, +Y is up, and +Z points toward the viewer.
sourcepub fn occlusion_texture(&self) -> Option<OcclusionTexture<'a>>
pub fn occlusion_texture(&self) -> Option<OcclusionTexture<'a>>
The occlusion map texture.
The occlusion values are sampled from the R channel. Higher values indicate areas that should receive full indirect lighting and lower values indicate no indirect lighting. These values are linear.
If other channels are present (GBA), they are ignored for occlusion calculations.
sourcepub fn emissive_texture(&self) -> Option<Info<'a>>
pub fn emissive_texture(&self) -> Option<Info<'a>>
The emissive map texture.
The emissive map controls the color and intensity of the light being emitted by the material.
This texture contains RGB components in sRGB color space. If a fourth component (A) is present, it is ignored.
sourcepub fn emissive_factor(&self) -> [f32; 3]
pub fn emissive_factor(&self) -> [f32; 3]
The emissive color of the material.
The default value is [0.0, 0.0, 0.0]
.
sourcepub fn unlit(&self) -> bool
pub fn unlit(&self) -> bool
Specifies whether the material is unlit.
Returns true
if the KHR_materials_unlit
property was specified, in which
case the renderer should prefer to ignore all PBR values except baseColor
.