From 456d63304947f5ed33325eb2a39fe2e95bb2a84c Mon Sep 17 00:00:00 2001 From: "Gregory P. Johnson" Date: Fri, 18 Dec 2015 15:33:37 -0600 Subject: [PATCH] fix for volume gradient shading with zero gradient vector and new safe_normalize(). --- ospray/render/volume/RaycastVolumeRenderer.ispc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ospray/render/volume/RaycastVolumeRenderer.ispc b/ospray/render/volume/RaycastVolumeRenderer.ispc index 2bce518d5d..88befb2d01 100644 --- a/ospray/render/volume/RaycastVolumeRenderer.ispc +++ b/ospray/render/volume/RaycastVolumeRenderer.ispc @@ -95,7 +95,8 @@ inline void RaycastVolumeRenderer_computeVolumeSample(RaycastVolumeRenderer *uni for (uniform uint32 i=0; inumLights; i++) { const LightSample light = renderer->lights[i]->sample(renderer->lights[i], dg, s); - const float cosNL = isnan(gradient.x+gradient.y+gradient.z) ? 1.f : abs(dot(safe_normalize(light.direction), gradient)); + const float cosNL = (gradient.x == 0.f && gradient.y == 0.f && gradient.z == 0.f) ? + 1.f : abs(dot(safe_normalize(light.direction), gradient)); shadedColor = shadedColor + sampleColor * cosNL * light.radiance; }