[Bf-blender-cvs] [508e2f0] master: Fix T49937: Blender is crashing because of Lamp Data Node

Sergey Sharybin noreply at git.blender.org
Tue Nov 8 10:41:23 CET 2016


Commit: 508e2f0d694812b244ffdf22325337aa32f918ad
Author: Sergey Sharybin
Date:   Tue Nov 8 10:40:21 2016 +0100
Branches: master
https://developer.blender.org/rB508e2f0d694812b244ffdf22325337aa32f918ad

Fix T49937: Blender is crashing because of Lamp Data Node

Lamp Data node requires shadow sample array which is only enabled when
Shadows are enabled in the shading settings.

This commit prevents crash but might not give expected render results
in such a configuration.

===================================================================

M	source/blender/render/intern/source/shadeoutput.c

===================================================================

diff --git a/source/blender/render/intern/source/shadeoutput.c b/source/blender/render/intern/source/shadeoutput.c
index 9dec269..3d6462e 100644
--- a/source/blender/render/intern/source/shadeoutput.c
+++ b/source/blender/render/intern/source/shadeoutput.c
@@ -2064,11 +2064,13 @@ static float lamp_get_data_internal(ShadeInput *shi, GroupObject *go, float col[
 		if (lar->mode & LA_SHAD_TEX)
 			do_lamp_tex(lar, lv, shi, shadow, LA_SHAD_TEX);
 
-		lamp_get_shadow(lar, shi, inp, shadfac, shi->depth);
+		if (R.r.mode & R_SHADOW) {
+			lamp_get_shadow(lar, shi, inp, shadfac, shi->depth);
 
-		shadow[0] = 1.0f - ((1.0f - shadfac[0] * shadfac[3]) * (1.0f - shadow[0]));
-		shadow[1] = 1.0f - ((1.0f - shadfac[1] * shadfac[3]) * (1.0f - shadow[1]));
-		shadow[2] = 1.0f - ((1.0f - shadfac[2] * shadfac[3]) * (1.0f - shadow[2]));
+			shadow[0] = 1.0f - ((1.0f - shadfac[0] * shadfac[3]) * (1.0f - shadow[0]));
+			shadow[1] = 1.0f - ((1.0f - shadfac[1] * shadfac[3]) * (1.0f - shadow[1]));
+			shadow[2] = 1.0f - ((1.0f - shadfac[2] * shadfac[3]) * (1.0f - shadow[2]));
+		}
 	}
 
 	return visifac;




More information about the Bf-blender-cvs mailing list