Implement Lambertian diffuse scattering

This commit is contained in:
Camden Dixie O'Brien
2025-09-23 15:35:26 +01:00
parent d8a2b8a3d8
commit 31adfd66f4

View File

@@ -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) static ray_t scatter(hit_t hit, rng_t *rng)
{ {
const vec3_t rand = rng_vec3(rng); return (ray_t) {
const vec3_t dir .orig = hit.point,
= vec3_dot(rand, hit.normal) > 0.0 ? rand : vec3_scale(rand, -1.0); .dir = vec3_add(hit.normal, rng_vec3(rng)),
return (ray_t) { .orig = hit.point, .dir = dir }; };
} }
static vec3_t static vec3_t