[][src]Trait pbrt::core::material::Material

pub trait Material {
    fn compute_scattering_functions(
        &self,
        si: &mut SurfaceInteraction,
        mode: TransportMode,
        allow_multiple_lobes: bool,
        material: Option<Arc<dyn Material + Send + Sync>>
    ); fn bump(
        d: &Arc<dyn Texture<Float> + Send + Sync>,
        si: &mut SurfaceInteraction
    )
    where
        Self: Sized
, { ... } }

Material defines the interface that material implementations must provide.

Required methods

fn compute_scattering_functions(
    &self,
    si: &mut SurfaceInteraction,
    mode: TransportMode,
    allow_multiple_lobes: bool,
    material: Option<Arc<dyn Material + Send + Sync>>
)

The method is given a SurfaceInteraction object that contains geometric properties at an intersection point on the surface of a shape and is responsible for determining the reflective properties at the point and initializing some member variables.

Loading content...

Provided methods

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized

Computing the effect of bump mapping at the point being shaded given a particular displacement texture.

Loading content...

Implementors

impl Material for DisneyMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

impl Material for FourierMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

impl Material for GlassMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

impl Material for HairMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

impl Material for MatteMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

impl Material for MetalMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

impl Material for MirrorMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

impl Material for MixMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

impl Material for PlasticMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

impl Material for SubstrateMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

impl Material for SubsurfaceMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

impl Material for TranslucentMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

impl Material for UberMaterial[src]

fn bump(d: &Arc<dyn Texture<Float> + Send + Sync>, si: &mut SurfaceInteraction) where
    Self: Sized
[src]

Loading content...