From 6352cbf0fd811a6380097c35c702a360f2e54fcb Mon Sep 17 00:00:00 2001 From: Jean-Michel Gorius Date: Thu, 10 Nov 2022 22:17:22 +0100 Subject: [PATCH] Simplify the ray-sphere intersection code --- main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main.c b/main.c index e1dac5e..9512fe9 100644 --- a/main.c +++ b/main.c @@ -10,13 +10,13 @@ double hit_sphere(point3 center, double radius, ray r) { vec3 oc = point3_sub(r.origin, center); double a = vec3_length2(r.direction); - double b = 2 * vec3_dot(oc, r.direction); + double half_b = vec3_dot(oc, r.direction); double c = vec3_length2(oc) - radius * radius; - double discriminant = b * b - 4 * a * c; + double discriminant = half_b * half_b - a * c; if (discriminant < 0) return -1.0; else - return (-b - sqrt(discriminant)) / (2.0 * a); + return (-half_b - sqrt(discriminant)) / a; } color ray_color(ray r) {