From 40b180db2833e4e6ef835a463ca15ff865ce0d18 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Thu, 25 Feb 2010 22:03:11 -0500 Subject: Point the normal vectors away from the object. --- libdimension/raytrace.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libdimension/raytrace.c') diff --git a/libdimension/raytrace.c b/libdimension/raytrace.c index 3fa873c..826cc58 100644 --- a/libdimension/raytrace.c +++ b/libdimension/raytrace.c @@ -323,7 +323,8 @@ dmnsn_raytrace_light_ray(const dmnsn_raytrace_state *state, shadow_ray = dmnsn_line_add_epsilon(shadow_ray); /* Check if we're casting a shadow on ourself */ - if (dmnsn_vector_dot(shadow_ray.n, state->intersection->normal) < 0.0) + if (dmnsn_vector_dot(shadow_ray.n, state->intersection->normal) + * dmnsn_vector_dot(state->viewer, state->intersection->normal) < 0.0) return dmnsn_black; dmnsn_color color = (*light->light_fn)(light, state->r); -- cgit v1.2.3