aboutsummaryrefslogtreecommitdiff
path: root/src/trace/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/trace/mod.rs')
-rw-r--r--src/trace/mod.rs41
1 files changed, 0 insertions, 41 deletions
diff --git a/src/trace/mod.rs b/src/trace/mod.rs
deleted file mode 100644
index d45fb23..0000000
--- a/src/trace/mod.rs
+++ /dev/null
@@ -1,41 +0,0 @@
-use crate::world::{Hittable, Scene};
-use crate::core::{Spectrum, Ray, Vector3f};
-use crate::sample::Sampler;
-
-mod pathtrace;
-pub use pathtrace::PathTracer;
-
-/// Simple surface normal tracer
-///
-/// This ray tracer bases color values on the hit surface normals
-pub struct NormTracer<'a> {
- scn: &'a Scene,
-}
-
-/// Alias for chosen trace implementation.
-///
-/// This is swiched at compile time to save alot of time.
-pub type DefaultTracer<'a> = PathTracer<'a>;
-
-pub trait Tracer {
- fn trace(&self, sampler: &mut dyn Sampler, ray: &Ray) -> Spectrum;
-}
-
-impl NormTracer<'_> {
- pub fn new(scn: &Scene) -> NormTracer {
- NormTracer {scn}
- }
-}
-
-impl Tracer for NormTracer<'_> {
- fn trace(&self, _: &mut dyn Sampler, ray: &Ray) -> Spectrum {
- // Trace ray, we dont care about material
- if let Some(i) = self.scn.intersect(ray) {
- let norm = i.n * 0.5 + Vector3f::new(0.5);
-
- return Spectrum::new_rgb(norm.x, norm.y, norm.z);
- }
-
- Spectrum::new_rgb(0.0, 0.0, 0.0)
- }
-}