diff --git a/src/trace.rs b/src/trace.rs index baa2633..984f9d9 100644 --- a/src/trace.rs +++ b/src/trace.rs @@ -120,10 +120,12 @@ pub struct Hit { impl Scene { pub fn trace_ray(&self, ray: Ray) -> Option { + const EPS: f32 = -1e-3; let hit = self .objects .iter() .filter_map(|obj| obj.trace_ray(ray)) + .filter(|h| h.dist >= EPS) .min_by(|a, b| f32::total_cmp(&a.dist, &b.dist))?; Some(Hit { incident: Ray {