Create material abstraction
This commit is contained in:
12
src/material.c
Normal file
12
src/material.c
Normal file
@@ -0,0 +1,12 @@
|
||||
#include "material.h"
|
||||
|
||||
bool scatter_lambertian(
|
||||
material_params_t params, hit_t hit, rng_t *rng, ray_t *ray,
|
||||
vec3_t *atten_out)
|
||||
{
|
||||
const vec3_t dir = vec3_unit(vec3_add(hit.normal, rng_vec3(rng)));
|
||||
ray->orig = hit.point;
|
||||
ray->dir = vec3_len(dir) == 0 ? hit.normal : dir;
|
||||
*atten_out = params.lambertian.albedo;
|
||||
return true;
|
||||
}
|
||||
Reference in New Issue
Block a user