pub struct SurfaceMaterial {Show 21 fields
pub base_color: Vec4,
pub metallic: f32,
pub roughness: f32,
pub emission_multiplier: f32,
pub iridescence_enabled: bool,
pub film_thickness: f32,
pub iridescence_strength: f32,
pub translucency_enabled: bool,
pub translucency_threshold: f32,
pub translucency_max: f32,
pub translucency_color: Vec3,
pub fresnel_f0: f32,
pub fresnel_power: f32,
pub veining_enabled: bool,
pub vein_color: Vec4,
pub vein_frequency: f32,
pub vein_thickness: f32,
pub vein_emission: f32,
pub symbols_enabled: bool,
pub symbol_density: f32,
pub symbol_emission: f32,
}Expand description
Material properties for the metaball isosurface.
Fields§
§base_color: Vec4Base color multiplier.
metallic: f32Metallic factor (0 = dielectric, 1 = metallic).
roughness: f32Surface roughness (0 = mirror, 1 = matte).
emission_multiplier: f32Emission intensity multiplier.
iridescence_enabled: boolEnable thin-film iridescence.
film_thickness: f32Thin-film thickness (nm). Controls the base color shift.
iridescence_strength: f32Iridescence intensity (0 = none, 1 = full rainbow).
translucency_enabled: boolEnable translucency at thin surface areas.
translucency_threshold: f32Field strength below which translucency begins.
translucency_max: f32Maximum translucency amount (0 = opaque, 1 = fully translucent).
translucency_color: Vec3Translucency color (light bleeding through).
fresnel_f0: f32F0 reflectance at normal incidence (Schlick approximation).
fresnel_power: f32Fresnel power exponent (5.0 = Schlick standard).
veining_enabled: boolEnable procedural veins from field gradient.
vein_color: Vec4Vein color.
vein_frequency: f32Vein frequency (how many veins per unit distance).
vein_thickness: f32Vein thickness (0 = thin, 1 = thick).
vein_emission: f32Vein emission (glowing veins).
symbols_enabled: boolEnable mathematical symbol projection onto surface.
symbol_density: f32Symbol density (symbols per unit area).
symbol_emission: f32Symbol emission intensity.
Implementations§
Source§impl SurfaceMaterial
impl SurfaceMaterial
Sourcepub fn crystalline() -> Self
pub fn crystalline() -> Self
Crystalline material with iridescence.
Sourcepub fn void_entity() -> Self
pub fn void_entity() -> Self
Dark void material with glowing veins.
Sourcepub fn mathematical() -> Self
pub fn mathematical() -> Self
Mathematical entity with projected symbols.
Trait Implementations§
Source§impl Clone for SurfaceMaterial
impl Clone for SurfaceMaterial
Source§impl Debug for SurfaceMaterial
impl Debug for SurfaceMaterial
Auto Trait Implementations§
impl Freeze for SurfaceMaterial
impl RefUnwindSafe for SurfaceMaterial
impl Send for SurfaceMaterial
impl Sync for SurfaceMaterial
impl Unpin for SurfaceMaterial
impl UnsafeUnpin for SurfaceMaterial
impl UnwindSafe for SurfaceMaterial
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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.