summaryrefslogtreecommitdiff
path: root/src/modules/ray/ray_render.c
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2018-02-28 20:24:30 -0800
committerVito Caputo <vcaputo@pengaru.com>2018-02-28 20:24:30 -0800
commit3b9a4861d6937a66b03791b5b497e47c52189a7d (patch)
tree213f698873293d87e38ce47f90937469db077bc0 /src/modules/ray/ray_render.c
parent0aa9efd5c69a956d88adc25abd154289ecfbede7 (diff)
ray: implement distance-based light brightness
Diffstat (limited to 'src/modules/ray/ray_render.c')
-rw-r--r--src/modules/ray/ray_render.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/modules/ray/ray_render.c b/src/modules/ray/ray_render.c
index 4ca168f..8b930f6 100644
--- a/src/modules/ray/ray_render.c
+++ b/src/modules/ray/ray_render.c
@@ -88,6 +88,7 @@ static inline ray_color_t shade_intersection(ray_render_t *render, ray_render_ob
if (lvec_normal_dot > 0) {
#if 1
float rvec_lvec_dot = ray_3f_dot(&ray->direction, &lvec);
+ float intensity = light->light.brightness * (1.0 / (ldist * ldist));
ray_color_t diffuse;
diffuse = ray_3f_mult_scalar(&surface.color, lvec_normal_dot);
@@ -102,6 +103,8 @@ static inline ray_color_t shade_intersection(ray_render_t *render, ray_render_ob
specular = ray_3f_mult_scalar(&specular, surface.specular);
color = ray_3f_add(&color, &specular);
}
+
+ color = ray_3f_mult_scalar(&color, intensity);
#else
ray_color_t diffuse;
© All Rights Reserved