diff --git a/include/bvh/sphere.hpp b/include/bvh/sphere.hpp index ef609c86..bab1d669 100644 --- a/include/bvh/sphere.hpp +++ b/include/bvh/sphere.hpp @@ -37,9 +37,10 @@ struct Sphere { return BoundingBox(origin - Vector3(radius), origin + Vector3(radius)); } + template std::optional intersect(const Ray& ray) const { auto oc = ray.origin - origin; - auto a = dot(ray.direction, ray.direction); + auto a = AssumeNormalized ? Scalar(1) : dot(ray.direction, ray.direction); auto b = 2 * dot(ray.direction, oc); auto c = dot(oc, oc) - radius * radius;