Trait ray_tracing_core::material::Material [−][src]
Required methods
fn get_id(&self) -> usize
[src]
fn scatter(
&self,
self_material: Arc<dyn Material>,
ray_in: &Ray,
hit_record: &HitRecord
) -> Option<ScatterRecord>
[src]
&self,
self_material: Arc<dyn Material>,
ray_in: &Ray,
hit_record: &HitRecord
) -> Option<ScatterRecord>
Scatter a ray at a point on the material. Returns a tuple with the color attenuation and outgoing ray and
fn scattering_pdf(
&self,
ray_in: &Ray,
hit_record: &HitRecord,
scattered: &Ray
) -> FSize
[src]
&self,
ray_in: &Ray,
hit_record: &HitRecord,
scattered: &Ray
) -> FSize
fn has_alpha(&self) -> bool
[src]
fn emitted(&self, ray_in: &Ray, hit_record: &HitRecord) -> ColorRGB
[src]
Get emitted material color
fn accept(&self, visitor: &mut dyn Visitor) -> Result<(), Box<dyn Error>>
[src]
Implementors
impl Material for Dielectric
[src]
fn get_id(&self) -> usize
[src]
fn scatter(
&self,
self_material: Arc<dyn Material>,
ray_in: &Ray,
hit_record: &HitRecord
) -> Option<ScatterRecord>
[src]
&self,
self_material: Arc<dyn Material>,
ray_in: &Ray,
hit_record: &HitRecord
) -> Option<ScatterRecord>
fn scattering_pdf(&self, _: &Ray, _: &HitRecord, _: &Ray) -> FSize
[src]
fn has_alpha(&self) -> bool
[src]
fn emitted(&self, _: &Ray, _: &HitRecord) -> ColorRGB
[src]
fn accept(&self, visitor: &mut dyn Visitor) -> Result<(), Box<dyn Error>>
[src]
impl Material for DiffuseLight
[src]
fn get_id(&self) -> usize
[src]
fn scatter(
&self,
_self_material: Arc<dyn Material>,
_ray_in: &Ray,
_hit_record: &HitRecord
) -> Option<ScatterRecord>
[src]
&self,
_self_material: Arc<dyn Material>,
_ray_in: &Ray,
_hit_record: &HitRecord
) -> Option<ScatterRecord>
fn scattering_pdf(&self, _: &Ray, _: &HitRecord, _: &Ray) -> FSize
[src]
fn has_alpha(&self) -> bool
[src]
fn emitted(&self, ray_in: &Ray, hit_record: &HitRecord) -> ColorRGB
[src]
fn accept(&self, visitor: &mut dyn Visitor) -> Result<(), Box<dyn Error>>
[src]
impl Material for Isotropic
[src]
fn get_id(&self) -> usize
[src]
fn scatter(
&self,
self_material: Arc<dyn Material>,
ray_in: &Ray,
hit_record: &HitRecord
) -> Option<ScatterRecord>
[src]
&self,
self_material: Arc<dyn Material>,
ray_in: &Ray,
hit_record: &HitRecord
) -> Option<ScatterRecord>
fn scattering_pdf(&self, _: &Ray, _: &HitRecord, _: &Ray) -> FSize
[src]
fn has_alpha(&self) -> bool
[src]
fn emitted(&self, _: &Ray, _: &HitRecord) -> ColorRGB
[src]
fn accept(&self, visitor: &mut dyn Visitor) -> Result<(), Box<dyn Error>>
[src]
impl Material for Lambertian
[src]
fn get_id(&self) -> usize
[src]
fn scatter(
&self,
self_material: Arc<dyn Material>,
ray_in: &Ray,
hit_record: &HitRecord
) -> Option<ScatterRecord>
[src]
&self,
self_material: Arc<dyn Material>,
ray_in: &Ray,
hit_record: &HitRecord
) -> Option<ScatterRecord>
fn scattering_pdf(
&self,
_: &Ray,
hit_record: &HitRecord,
scattered: &Ray
) -> FSize
[src]
&self,
_: &Ray,
hit_record: &HitRecord,
scattered: &Ray
) -> FSize
fn has_alpha(&self) -> bool
[src]
fn emitted(&self, _: &Ray, _: &HitRecord) -> ColorRGB
[src]
fn accept(&self, visitor: &mut dyn Visitor) -> Result<(), Box<dyn Error>>
[src]
impl Material for MaterialBlend
[src]
fn get_id(&self) -> usize
[src]
fn scatter(
&self,
_self_material: Arc<dyn Material>,
ray_in: &Ray,
hit_record: &HitRecord
) -> Option<ScatterRecord>
[src]
&self,
_self_material: Arc<dyn Material>,
ray_in: &Ray,
hit_record: &HitRecord
) -> Option<ScatterRecord>
fn scattering_pdf(&self, _: &Ray, _: &HitRecord, _: &Ray) -> FSize
[src]
fn has_alpha(&self) -> bool
[src]
fn emitted(&self, ray_in: &Ray, hit_record: &HitRecord) -> ColorRGB
[src]
fn accept(&self, visitor: &mut dyn Visitor) -> Result<(), Box<dyn Error>>
[src]
impl Material for Metal
[src]
fn get_id(&self) -> usize
[src]
fn scatter(
&self,
self_material: Arc<dyn Material>,
ray_in: &Ray,
hit_record: &HitRecord
) -> Option<ScatterRecord>
[src]
&self,
self_material: Arc<dyn Material>,
ray_in: &Ray,
hit_record: &HitRecord
) -> Option<ScatterRecord>
fn scattering_pdf(&self, _: &Ray, _: &HitRecord, _: &Ray) -> FSize
[src]
fn has_alpha(&self) -> bool
[src]
fn emitted(&self, _: &Ray, _: &HitRecord) -> ColorRGB
[src]
fn accept(&self, visitor: &mut dyn Visitor) -> Result<(), Box<dyn Error>>
[src]
impl Material for NoMaterial
[src]
fn get_id(&self) -> usize
[src]
fn scatter(
&self,
_self_material: Arc<dyn Material>,
_: &Ray,
_: &HitRecord
) -> Option<ScatterRecord>
[src]
&self,
_self_material: Arc<dyn Material>,
_: &Ray,
_: &HitRecord
) -> Option<ScatterRecord>