Simplify hit detection logic

This commit is contained in:
Camden Dixie O'Brien
2025-09-21 13:30:36 +01:00
parent 7400228c0c
commit d5474546ca

View File

@@ -10,13 +10,10 @@ static const vec3_t white = { 1.0, 1.0, 1.0 };
static vec3_t trace(ray_t ray, const obj_t *scene, unsigned scene_count) static vec3_t trace(ray_t ray, const obj_t *scene, unsigned scene_count)
{ {
bool got_hit = false;
hit_t hit = { .t = DBL_MAX }; hit_t hit = { .t = DBL_MAX };
for (unsigned i = 0; i < scene_count; ++i) { for (unsigned i = 0; i < scene_count; ++i)
if (scene[i].intersect(scene[i].params, ray, &hit, 0.0, hit.t)) scene[i].intersect(scene[i].params, ray, &hit, 0.0, hit.t);
got_hit = true; if (hit.t != DBL_MAX)
}
if (got_hit)
return vec3_scale(vec3_add(hit.normal, white), 0.5); return vec3_scale(vec3_add(hit.normal, white), 0.5);
const double a = (ray.dir.y + 1.0) / 2.0; const double a = (ray.dir.y + 1.0) / 2.0;