Simplify hit detection logic
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user