pub struct PhysicalMaterial {
pub auto_sync_texture_to_uniforms: bool,
/* private fields */
}Fields§
§auto_sync_texture_to_uniforms: boolWhen true, texture transforms are automatically flushed to uniforms.
Implementations§
Source§impl PhysicalMaterial
impl PhysicalMaterial
Sourcepub fn from_uniforms(uniforms: PhysicalUniforms) -> PhysicalMaterial
pub fn from_uniforms(uniforms: PhysicalUniforms) -> PhysicalMaterial
Creates a new material instance from uniform data with default settings.
Sourcepub fn settings_mut(&self) -> SettingsGuard<'_>
pub fn settings_mut(&self) -> SettingsGuard<'_>
Returns a RAII guard for batch-modifying material settings.
The guard automatically increments the material version on drop if any settings changed, triggering pipeline cache invalidation.
Sourcepub fn settings(&self) -> MaterialSettings
pub fn settings(&self) -> MaterialSettings
Returns a snapshot of the current material settings.
Sourcepub fn set_alpha_mode(&self, mode: AlphaMode)
pub fn set_alpha_mode(&self, mode: AlphaMode)
Sets the alpha blending mode.
Sourcepub fn alpha_mode(&self) -> AlphaMode
pub fn alpha_mode(&self) -> AlphaMode
Returns the current alpha blending mode.
Sourcepub fn set_depth_test(&self, depth_test: bool)
pub fn set_depth_test(&self, depth_test: bool)
Enables or disables depth testing.
Sourcepub fn depth_test(&self) -> bool
pub fn depth_test(&self) -> bool
Returns whether depth testing is enabled.
Sourcepub fn set_depth_write(&self, depth_write: bool)
pub fn set_depth_write(&self, depth_write: bool)
Enables or disables depth buffer writing.
For transparent objects, it is usually recommended to disable this.
Sourcepub fn depth_write(&self) -> bool
pub fn depth_write(&self) -> bool
Returns whether depth buffer writing is enabled.
Sourcepub fn uniforms_mut(&self) -> CheckedBufferGuard<'_, PhysicalUniforms>
pub fn uniforms_mut(&self) -> CheckedBufferGuard<'_, PhysicalUniforms>
Returns a write guard for batch-modifying uniform parameters.
The guard automatically marks data as dirty on drop, triggering GPU buffer synchronization.
Sourcepub fn uniforms(&self) -> BufferReadGuard<'_, PhysicalUniforms>
pub fn uniforms(&self) -> BufferReadGuard<'_, PhysicalUniforms>
Returns a read guard for accessing uniform parameters.
Sourcepub fn set_emissive(&self, value: Vec3)
pub fn set_emissive(&self, value: Vec3)
Emissive color.
Sourcepub fn set_emissive_intensity(&self, value: f32)
pub fn set_emissive_intensity(&self, value: f32)
Emissive intensity.
Sourcepub fn emissive_intensity(&self) -> f32
pub fn emissive_intensity(&self) -> f32
Emissive intensity.
Sourcepub fn set_roughness(&self, value: f32)
pub fn set_roughness(&self, value: f32)
Roughness factor.
Sourcepub fn set_metalness(&self, value: f32)
pub fn set_metalness(&self, value: f32)
Metalness factor.
Sourcepub fn set_opacity(&self, value: f32)
pub fn set_opacity(&self, value: f32)
Opacity value.
Sourcepub fn set_alpha_test(&self, value: f32)
pub fn set_alpha_test(&self, value: f32)
Alpha test threshold.
Sourcepub fn alpha_test(&self) -> f32
pub fn alpha_test(&self) -> f32
Alpha test threshold.
Sourcepub fn set_normal_scale(&self, value: Vec2)
pub fn set_normal_scale(&self, value: Vec2)
Normal map scale.
Sourcepub fn normal_scale(&self) -> Vec2
pub fn normal_scale(&self) -> Vec2
Normal map scale.
Sourcepub fn set_ao_map_intensity(&self, value: f32)
pub fn set_ao_map_intensity(&self, value: f32)
AO map intensity.
Sourcepub fn ao_map_intensity(&self) -> f32
pub fn ao_map_intensity(&self) -> f32
AO map intensity.
Sourcepub fn set_specular_color(&self, value: Vec3)
pub fn set_specular_color(&self, value: Vec3)
Specular color.
Sourcepub fn specular_color(&self) -> Vec3
pub fn specular_color(&self) -> Vec3
Specular color.
Sourcepub fn set_specular_intensity(&self, value: f32)
pub fn set_specular_intensity(&self, value: f32)
Specular intensity.
Sourcepub fn specular_intensity(&self) -> f32
pub fn specular_intensity(&self) -> f32
Specular intensity.
Sourcepub fn set_clearcoat(&self, value: f32)
pub fn set_clearcoat(&self, value: f32)
Clearcoat factor.
Sourcepub fn set_clearcoat_roughness(&self, value: f32)
pub fn set_clearcoat_roughness(&self, value: f32)
Clearcoat roughness factor.
Sourcepub fn clearcoat_roughness(&self) -> f32
pub fn clearcoat_roughness(&self) -> f32
Clearcoat roughness factor.
Sourcepub fn set_sheen_color(&self, value: Vec3)
pub fn set_sheen_color(&self, value: Vec3)
The sheen tint. Default is (0, 0, 0), black.
Sourcepub fn sheen_color(&self) -> Vec3
pub fn sheen_color(&self) -> Vec3
The sheen tint. Default is (0, 0, 0), black.
Sourcepub fn set_sheen_roughness(&self, value: f32)
pub fn set_sheen_roughness(&self, value: f32)
The sheen roughness. Default is 1.0.
Sourcepub fn sheen_roughness(&self) -> f32
pub fn sheen_roughness(&self) -> f32
The sheen roughness. Default is 1.0.
Sourcepub fn set_iridescence(&self, value: f32)
pub fn set_iridescence(&self, value: f32)
The intensity of the iridescence layer, simulating RGB color shift based on the angle between the surface and the viewer.
Sourcepub fn iridescence(&self) -> f32
pub fn iridescence(&self) -> f32
The intensity of the iridescence layer, simulating RGB color shift based on the angle between the surface and the viewer.
Sourcepub fn set_iridescence_ior(&self, value: f32)
pub fn set_iridescence_ior(&self, value: f32)
The strength of the iridescence RGB color shift effect, represented by an index-of-refraction. Default is 1.3.
Sourcepub fn iridescence_ior(&self) -> f32
pub fn iridescence_ior(&self) -> f32
The strength of the iridescence RGB color shift effect, represented by an index-of-refraction. Default is 1.3.
Sourcepub fn set_iridescence_thickness_min(&self, value: f32)
pub fn set_iridescence_thickness_min(&self, value: f32)
The minimum thickness of the thin-film layer given in nanometers. Default is 100 nm.
Sourcepub fn iridescence_thickness_min(&self) -> f32
pub fn iridescence_thickness_min(&self) -> f32
The minimum thickness of the thin-film layer given in nanometers. Default is 100 nm.
Sourcepub fn set_iridescence_thickness_max(&self, value: f32)
pub fn set_iridescence_thickness_max(&self, value: f32)
The maximum thickness of the thin-film layer given in nanometers. Default is 400 nm.
Sourcepub fn iridescence_thickness_max(&self) -> f32
pub fn iridescence_thickness_max(&self) -> f32
The maximum thickness of the thin-film layer given in nanometers. Default is 400 nm.
Sourcepub fn set_transmission(&self, value: f32)
pub fn set_transmission(&self, value: f32)
The transmission factor controlling the amount of light that passes through the surface.
Sourcepub fn transmission(&self) -> f32
pub fn transmission(&self) -> f32
The transmission factor controlling the amount of light that passes through the surface.
Sourcepub fn set_thickness(&self, value: f32)
pub fn set_thickness(&self, value: f32)
The thickness of the object used for subsurface absorption.
Sourcepub fn set_attenuation_color(&self, value: Vec3)
pub fn set_attenuation_color(&self, value: Vec3)
The color that light is attenuated towards as it passes through the material.
Sourcepub fn attenuation_color(&self) -> Vec3
pub fn attenuation_color(&self) -> Vec3
The color that light is attenuated towards as it passes through the material.
Sourcepub fn set_attenuation_distance(&self, value: f32)
pub fn set_attenuation_distance(&self, value: f32)
The distance that light travels through the material before it is absorbed.
Sourcepub fn attenuation_distance(&self) -> f32
pub fn attenuation_distance(&self) -> f32
The distance that light travels through the material before it is absorbed.
Sourcepub fn set_dispersion(&self, value: f32)
pub fn set_dispersion(&self, value: f32)
The amount of chromatic dispersion in the transmitted light.
Sourcepub fn dispersion(&self) -> f32
pub fn dispersion(&self) -> f32
The amount of chromatic dispersion in the transmitted light.
Sourcepub fn set_map(&self, value: Option<TextureHandle>)
pub fn set_map(&self, value: Option<TextureHandle>)
The color map.
Sourcepub fn map(&self) -> Option<TextureHandle>
pub fn map(&self) -> Option<TextureHandle>
The color map.
Sourcepub fn set_map_transform(&self, transform: TextureTransform)
pub fn set_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_normal_map(&self, value: Option<TextureHandle>)
pub fn set_normal_map(&self, value: Option<TextureHandle>)
The normal map.
Sourcepub fn normal_map(&self) -> Option<TextureHandle>
pub fn normal_map(&self) -> Option<TextureHandle>
The normal map.
Sourcepub fn set_normal_map_transform(&self, transform: TextureTransform)
pub fn set_normal_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_normal_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_normal_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_roughness_map(&self, value: Option<TextureHandle>)
pub fn set_roughness_map(&self, value: Option<TextureHandle>)
The roughness map.
Sourcepub fn roughness_map(&self) -> Option<TextureHandle>
pub fn roughness_map(&self) -> Option<TextureHandle>
The roughness map.
Sourcepub fn set_roughness_map_transform(&self, transform: TextureTransform)
pub fn set_roughness_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_roughness_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_roughness_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_metalness_map(&self, value: Option<TextureHandle>)
pub fn set_metalness_map(&self, value: Option<TextureHandle>)
The metalness map.
Sourcepub fn metalness_map(&self) -> Option<TextureHandle>
pub fn metalness_map(&self) -> Option<TextureHandle>
The metalness map.
Sourcepub fn set_metalness_map_transform(&self, transform: TextureTransform)
pub fn set_metalness_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_metalness_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_metalness_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_emissive_map(&self, value: Option<TextureHandle>)
pub fn set_emissive_map(&self, value: Option<TextureHandle>)
The emissive map.
Sourcepub fn emissive_map(&self) -> Option<TextureHandle>
pub fn emissive_map(&self) -> Option<TextureHandle>
The emissive map.
Sourcepub fn set_emissive_map_transform(&self, transform: TextureTransform)
pub fn set_emissive_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_emissive_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_emissive_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_ao_map(&self, value: Option<TextureHandle>)
pub fn set_ao_map(&self, value: Option<TextureHandle>)
The AO map.
Sourcepub fn ao_map(&self) -> Option<TextureHandle>
pub fn ao_map(&self) -> Option<TextureHandle>
The AO map.
Sourcepub fn set_ao_map_transform(&self, transform: TextureTransform)
pub fn set_ao_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_ao_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_ao_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_specular_map(&self, value: Option<TextureHandle>)
pub fn set_specular_map(&self, value: Option<TextureHandle>)
The specular map.
Sourcepub fn specular_map(&self) -> Option<TextureHandle>
pub fn specular_map(&self) -> Option<TextureHandle>
The specular map.
Sourcepub fn set_specular_map_transform(&self, transform: TextureTransform)
pub fn set_specular_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_specular_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_specular_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_specular_intensity_map(&self, value: Option<TextureHandle>)
pub fn set_specular_intensity_map(&self, value: Option<TextureHandle>)
The specular intensity map.
Sourcepub fn specular_intensity_map(&self) -> Option<TextureHandle>
pub fn specular_intensity_map(&self) -> Option<TextureHandle>
The specular intensity map.
Sourcepub fn set_specular_intensity_map_transform(&self, transform: TextureTransform)
pub fn set_specular_intensity_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_specular_intensity_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_specular_intensity_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_clearcoat_map(&self, value: Option<TextureHandle>)
pub fn set_clearcoat_map(&self, value: Option<TextureHandle>)
The clearcoat map.
Sourcepub fn clearcoat_map(&self) -> Option<TextureHandle>
pub fn clearcoat_map(&self) -> Option<TextureHandle>
The clearcoat map.
Sourcepub fn set_clearcoat_map_transform(&self, transform: TextureTransform)
pub fn set_clearcoat_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_clearcoat_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_clearcoat_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_clearcoat_roughness_map(&self, value: Option<TextureHandle>)
pub fn set_clearcoat_roughness_map(&self, value: Option<TextureHandle>)
The clearcoat roughness map.
Sourcepub fn clearcoat_roughness_map(&self) -> Option<TextureHandle>
pub fn clearcoat_roughness_map(&self) -> Option<TextureHandle>
The clearcoat roughness map.
Sourcepub fn set_clearcoat_roughness_map_transform(&self, transform: TextureTransform)
pub fn set_clearcoat_roughness_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_clearcoat_roughness_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_clearcoat_roughness_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_clearcoat_normal_map(&self, value: Option<TextureHandle>)
pub fn set_clearcoat_normal_map(&self, value: Option<TextureHandle>)
The clearcoat normal map.
Sourcepub fn clearcoat_normal_map(&self) -> Option<TextureHandle>
pub fn clearcoat_normal_map(&self) -> Option<TextureHandle>
The clearcoat normal map.
Sourcepub fn set_clearcoat_normal_map_transform(&self, transform: TextureTransform)
pub fn set_clearcoat_normal_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_clearcoat_normal_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_clearcoat_normal_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_sheen_color_map(&self, value: Option<TextureHandle>)
pub fn set_sheen_color_map(&self, value: Option<TextureHandle>)
The sheen color map.
Sourcepub fn sheen_color_map(&self) -> Option<TextureHandle>
pub fn sheen_color_map(&self) -> Option<TextureHandle>
The sheen color map.
Sourcepub fn set_sheen_color_map_transform(&self, transform: TextureTransform)
pub fn set_sheen_color_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_sheen_color_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_sheen_color_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_sheen_roughness_map(&self, value: Option<TextureHandle>)
pub fn set_sheen_roughness_map(&self, value: Option<TextureHandle>)
The sheen roughness map.
Sourcepub fn sheen_roughness_map(&self) -> Option<TextureHandle>
pub fn sheen_roughness_map(&self) -> Option<TextureHandle>
The sheen roughness map.
Sourcepub fn set_sheen_roughness_map_transform(&self, transform: TextureTransform)
pub fn set_sheen_roughness_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_sheen_roughness_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_sheen_roughness_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_iridescence_map(&self, value: Option<TextureHandle>)
pub fn set_iridescence_map(&self, value: Option<TextureHandle>)
The iridescence map.
Sourcepub fn iridescence_map(&self) -> Option<TextureHandle>
pub fn iridescence_map(&self) -> Option<TextureHandle>
The iridescence map.
Sourcepub fn set_iridescence_map_transform(&self, transform: TextureTransform)
pub fn set_iridescence_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_iridescence_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_iridescence_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_iridescence_thickness_map(&self, value: Option<TextureHandle>)
pub fn set_iridescence_thickness_map(&self, value: Option<TextureHandle>)
The iridescence thickness map.
Sourcepub fn iridescence_thickness_map(&self) -> Option<TextureHandle>
pub fn iridescence_thickness_map(&self) -> Option<TextureHandle>
The iridescence thickness map.
Sourcepub fn set_iridescence_thickness_map_transform(
&self,
transform: TextureTransform,
)
pub fn set_iridescence_thickness_map_transform( &self, transform: TextureTransform, )
Sets the UV transform for this texture slot.
Sourcepub fn configure_iridescence_thickness_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_iridescence_thickness_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_anisotropy_map(&self, value: Option<TextureHandle>)
pub fn set_anisotropy_map(&self, value: Option<TextureHandle>)
The anisotropy map.
Sourcepub fn anisotropy_map(&self) -> Option<TextureHandle>
pub fn anisotropy_map(&self) -> Option<TextureHandle>
The anisotropy map.
Sourcepub fn set_anisotropy_map_transform(&self, transform: TextureTransform)
pub fn set_anisotropy_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_anisotropy_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_anisotropy_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_transmission_map(&self, value: Option<TextureHandle>)
pub fn set_transmission_map(&self, value: Option<TextureHandle>)
The transmission map.
Sourcepub fn transmission_map(&self) -> Option<TextureHandle>
pub fn transmission_map(&self) -> Option<TextureHandle>
The transmission map.
Sourcepub fn set_transmission_map_transform(&self, transform: TextureTransform)
pub fn set_transmission_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_transmission_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_transmission_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn set_thickness_map(&self, value: Option<TextureHandle>)
pub fn set_thickness_map(&self, value: Option<TextureHandle>)
The thickness map.
Sourcepub fn thickness_map(&self) -> Option<TextureHandle>
pub fn thickness_map(&self) -> Option<TextureHandle>
The thickness map.
Sourcepub fn set_thickness_map_transform(&self, transform: TextureTransform)
pub fn set_thickness_map_transform(&self, transform: TextureTransform)
Sets the UV transform for this texture slot.
Sourcepub fn configure_thickness_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
pub fn configure_thickness_map<F>(&self, f: F)where
F: FnOnce(&mut TextureSlot),
Configures this texture slot via a closure for batch modifications.
The closure receives a mutable reference to the [TextureSlot].
Version is automatically bumped if the texture or UV channel changes.
Sourcepub fn flush_texture_transforms(&self) -> bool
pub fn flush_texture_transforms(&self) -> bool
Flushes texture transform matrices to the uniform buffer.
Only writes when values actually change, avoiding unnecessary version bumps. Returns whether any data was updated.
Sourcepub fn configure<F>(&self, f: F)where
F: FnOnce(&PhysicalUniforms),
pub fn configure<F>(&self, f: F)where
F: FnOnce(&PhysicalUniforms),
Provides access to uniform data through a closure (under write lock).
Sourcepub fn notify_pipeline_dirty(&self)
pub fn notify_pipeline_dirty(&self)
Manually marks the material pipeline as dirty, forcing a rebuild.
In most cases this is not needed, as the standard API automatically tracks version changes. Use this only when:
- After directly modifying internal fields (e.g., in loader code)
- When material configuration has changed but version wasn’t updated
Source§impl PhysicalMaterial
impl PhysicalMaterial
Sourcepub fn new(color: Vec4) -> PhysicalMaterial
pub fn new(color: Vec4) -> PhysicalMaterial
Creates a new PBR material with the given base color.
Sourcepub fn with_color(self, color: Vec4) -> PhysicalMaterial
pub fn with_color(self, color: Vec4) -> PhysicalMaterial
Sets the base color (builder).
Sourcepub fn with_roughness(self, roughness: f32) -> PhysicalMaterial
pub fn with_roughness(self, roughness: f32) -> PhysicalMaterial
Sets the roughness factor (builder).
Sourcepub fn with_metalness(self, metalness: f32) -> PhysicalMaterial
pub fn with_metalness(self, metalness: f32) -> PhysicalMaterial
Sets the metalness factor (builder).
Sourcepub fn with_emissive(self, color: Vec3, intensity: f32) -> PhysicalMaterial
pub fn with_emissive(self, color: Vec3, intensity: f32) -> PhysicalMaterial
Sets the emissive color and intensity (builder).
Sourcepub fn with_opacity(self, opacity: f32) -> PhysicalMaterial
pub fn with_opacity(self, opacity: f32) -> PhysicalMaterial
Sets the opacity (builder).
Sourcepub fn with_normal_scale(self, scale: Vec2) -> PhysicalMaterial
pub fn with_normal_scale(self, scale: Vec2) -> PhysicalMaterial
Sets the normal map scale (builder).
Sourcepub fn with_map(self, handle: TextureHandle) -> PhysicalMaterial
pub fn with_map(self, handle: TextureHandle) -> PhysicalMaterial
Sets the color map texture (builder).
Sourcepub fn with_normal_map(self, handle: TextureHandle) -> PhysicalMaterial
pub fn with_normal_map(self, handle: TextureHandle) -> PhysicalMaterial
Sets the normal map texture (builder).
Sourcepub fn with_roughness_map(self, handle: TextureHandle) -> PhysicalMaterial
pub fn with_roughness_map(self, handle: TextureHandle) -> PhysicalMaterial
Sets the roughness map texture (builder).
Sourcepub fn with_metalness_map(self, handle: TextureHandle) -> PhysicalMaterial
pub fn with_metalness_map(self, handle: TextureHandle) -> PhysicalMaterial
Sets the metalness map texture (builder).
Sourcepub fn with_emissive_map(self, handle: TextureHandle) -> PhysicalMaterial
pub fn with_emissive_map(self, handle: TextureHandle) -> PhysicalMaterial
Sets the emissive map texture (builder).
Sourcepub fn with_ao_map(self, handle: TextureHandle) -> PhysicalMaterial
pub fn with_ao_map(self, handle: TextureHandle) -> PhysicalMaterial
Sets the AO map texture (builder).
Sourcepub fn with_side(self, side: Side) -> PhysicalMaterial
pub fn with_side(self, side: Side) -> PhysicalMaterial
Sets the face culling side (builder).
Sourcepub fn with_alpha_mode(self, mode: AlphaMode) -> PhysicalMaterial
pub fn with_alpha_mode(self, mode: AlphaMode) -> PhysicalMaterial
Sets the alpha mode (builder).
Sourcepub fn with_depth_write(self, enabled: bool) -> PhysicalMaterial
pub fn with_depth_write(self, enabled: bool) -> PhysicalMaterial
Sets depth write (builder).
Sourcepub fn disable_feature(&self, feature: PhysicalFeatures)
pub fn disable_feature(&self, feature: PhysicalFeatures)
Disables the given PBR feature.
Sourcepub fn enable_feature(&self, feature: PhysicalFeatures)
pub fn enable_feature(&self, feature: PhysicalFeatures)
Enables the given PBR feature.
Sourcepub fn with_clearcoat(self, factor: f32, roughness: f32) -> PhysicalMaterial
pub fn with_clearcoat(self, factor: f32, roughness: f32) -> PhysicalMaterial
Enables the clearcoat layer (builder).
Sourcepub fn with_sheen(self, color: Vec3, roughness: f32) -> PhysicalMaterial
pub fn with_sheen(self, color: Vec3, roughness: f32) -> PhysicalMaterial
Enables the sheen layer (builder).
Sourcepub fn with_iridescence(
self,
intensity: f32,
ior: f32,
thickness_min: f32,
thickness_max: f32,
) -> PhysicalMaterial
pub fn with_iridescence( self, intensity: f32, ior: f32, thickness_min: f32, thickness_max: f32, ) -> PhysicalMaterial
Enables iridescence (builder).
Sourcepub fn with_anisotropy(self, anisotropy: f32, rotation: f32) -> PhysicalMaterial
pub fn with_anisotropy(self, anisotropy: f32, rotation: f32) -> PhysicalMaterial
Enables anisotropy (builder).
Sourcepub fn with_transmission(
self,
transmission: f32,
thickness: f32,
attenuation_distance: f32,
attenuation_color: Vec3,
) -> PhysicalMaterial
pub fn with_transmission( self, transmission: f32, thickness: f32, attenuation_distance: f32, attenuation_color: Vec3, ) -> PhysicalMaterial
Enables light transmission (builder).
Sourcepub fn with_dispersion(self, dispersion: f32) -> PhysicalMaterial
pub fn with_dispersion(self, dispersion: f32) -> PhysicalMaterial
Enables chromatic dispersion (builder).
Sourcepub fn set_sss_id(&self, id: Option<FeatureId>)
pub fn set_sss_id(&self, id: Option<FeatureId>)
Sets the subsurface scattering feature ID.
Sourcepub fn set_ssr_id(&self, id: Option<FeatureId>)
pub fn set_ssr_id(&self, id: Option<FeatureId>)
Sets the screen-space reflections feature ID.
Sourcepub fn with_sss_id(self, id: FeatureId) -> PhysicalMaterial
pub fn with_sss_id(self, id: FeatureId) -> PhysicalMaterial
Enables subsurface scattering (builder).
Sourcepub fn with_ssr_id(self, id: FeatureId) -> PhysicalMaterial
pub fn with_ssr_id(self, id: FeatureId) -> PhysicalMaterial
Enables screen-space reflections (builder).
Trait Implementations§
Source§impl Clone for PhysicalMaterial
impl Clone for PhysicalMaterial
Source§fn clone(&self) -> PhysicalMaterial
fn clone(&self) -> PhysicalMaterial
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PhysicalMaterial
impl Debug for PhysicalMaterial
Source§impl Default for PhysicalMaterial
impl Default for PhysicalMaterial
Source§fn default() -> PhysicalMaterial
fn default() -> PhysicalMaterial
Source§impl From<PhysicalMaterial> for Material
impl From<PhysicalMaterial> for Material
Source§fn from(data: PhysicalMaterial) -> Material
fn from(data: PhysicalMaterial) -> Material
Source§impl MaterialTrait for PhysicalMaterial
impl MaterialTrait for PhysicalMaterial
Source§impl RenderableMaterialTrait for PhysicalMaterial
impl RenderableMaterialTrait for PhysicalMaterial
Source§fn shader_name(&self) -> &'static str
fn shader_name(&self) -> &'static str
Source§fn settings(&self) -> MaterialSettings
fn settings(&self) -> MaterialSettings
Source§fn uniform_buffer(&self) -> BufferRef
fn uniform_buffer(&self) -> BufferRef
Source§fn with_uniform_bytes(&self, visitor: &mut dyn FnMut(&[u8]))
fn with_uniform_bytes(&self, visitor: &mut dyn FnMut(&[u8]))
Source§fn shader_defines(&self) -> ShaderDefines
fn shader_defines(&self) -> ShaderDefines
Source§fn visit_textures(&self, visitor: &mut dyn FnMut(&TextureSource))
fn visit_textures(&self, visitor: &mut dyn FnMut(&TextureSource))
Source§fn define_bindings<'a>(&'a self, builder: &mut ResourceBuilder<'a>)
fn define_bindings<'a>(&'a self, builder: &mut ResourceBuilder<'a>)
fn extra_defines(&self, _defines: &mut ShaderDefines)
Source§impl ResolveMaterial for PhysicalMaterial
impl ResolveMaterial for PhysicalMaterial
fn resolve(self, assets: &AssetServer) -> MaterialHandle
Auto Trait Implementations§
impl !Freeze for PhysicalMaterial
impl !RefUnwindSafe for PhysicalMaterial
impl Send for PhysicalMaterial
impl Sync for PhysicalMaterial
impl Unpin for PhysicalMaterial
impl UnsafeUnpin for PhysicalMaterial
impl UnwindSafe for PhysicalMaterial
Blanket Implementations§
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().