fx: sphere hit calculation sometimes picking wrong isct point

This commit is contained in:
2026-04-20 19:59:22 +02:00
parent 66c6bf438b
commit 6bf65eb60c
3 changed files with 5 additions and 3 deletions

View File

@@ -42,7 +42,9 @@ impl Hittable for Sphere {
if d < 0. {
None
} else {
let t = (h - sqrt(d)) / a;
let tl = (h - sqrt(d)) / a;
let tr = (h + sqrt(d)) / a;
let t = if tl > 0.001 { tl } else { tr };
let p = r.at(t);
let out_n = (p - self.center) / self.radius;
Some(Hit::new(