From 3ef8f4d918406eec6bdc29e0ebd883fabfac9b2e Mon Sep 17 00:00:00 2001 From: Julian T Date: Thu, 5 Aug 2021 15:44:40 +0200 Subject: Add picture for c5505ab84820248c6dba35fc06aef9e0ced183de --- src/material/reflectant.rs | 40 ---------------------------------------- 1 file changed, 40 deletions(-) delete mode 100644 src/material/reflectant.rs (limited to 'src/material/reflectant.rs') diff --git a/src/material/reflectant.rs b/src/material/reflectant.rs deleted file mode 100644 index b5ec0ae..0000000 --- a/src/material/reflectant.rs +++ /dev/null @@ -1,40 +0,0 @@ -use crate::Float; -use crate::core::{Ray, Spectrum, Vector3f}; -use crate::world::Intersection; -use super::Material; -use crate::sample::Sampler; - -pub struct Reflectant { - color: Spectrum, - fuzz: Option, -} - -impl Reflectant { - pub fn new(c: Spectrum, fuzz: Option) -> Reflectant { - Reflectant { - color: c, - fuzz, - } - } -} - -pub fn reflect(v: Vector3f, n: Vector3f) -> Vector3f { - v - n * (2.0 * v.dot(&n)) -} - -impl Material for Reflectant { - fn scatter(&self, ray: &Ray, i: &Intersection, sampler: &mut dyn Sampler) -> Option<(Spectrum, Ray)> { - // Find reflectance vector - let mut reflected = reflect(ray.direction, i.n); - if let Some(fuzz) = self.fuzz { - reflected += &(sampler.get_unit_vector() * fuzz); - } - - Some(( - self.color, - Ray::new(i.p, reflected.norm()), - )) - } -} - - -- cgit v1.2.3