From 31adfd66f48e1f842a1697d5b974e81f49782f11 Mon Sep 17 00:00:00 2001 From: Camden Dixie O'Brien Date: Tue, 23 Sep 2025 15:35:26 +0100 Subject: [PATCH] Implement Lambertian diffuse scattering --- src/camera.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/camera.c b/src/camera.c index 7c08785..6bbb4f8 100644 --- a/src/camera.c +++ b/src/camera.c @@ -29,10 +29,10 @@ static const vec3_t black = { 0.0, 0.0, 0.0 }; static ray_t scatter(hit_t hit, rng_t *rng) { - const vec3_t rand = rng_vec3(rng); - const vec3_t dir - = vec3_dot(rand, hit.normal) > 0.0 ? rand : vec3_scale(rand, -1.0); - return (ray_t) { .orig = hit.point, .dir = dir }; + return (ray_t) { + .orig = hit.point, + .dir = vec3_add(hit.normal, rng_vec3(rng)), + }; } static vec3_t