[Bf-blender-cvs] [b18f83b] master: Fix T50141: Nabla zero division on texture force field

Luca Rood noreply at git.blender.org
Sun Dec 4 21:04:09 CET 2016


Commit: b18f83bcf404fee98713fd2eba82570efb53f13e
Author: Luca Rood
Date:   Sat Dec 3 14:05:56 2016 -0200
Branches: master
https://developer.blender.org/rBb18f83bcf404fee98713fd2eba82570efb53f13e

Fix T50141: Nabla zero division on texture force field

This sets forces to zero, when Nabla is zero and a grayscale texture is
used or texture mode is Gradient or Curl.

Nabla equal to zero was causing a zero division, and forces ended up
being set to `nan`.

Reviewed By: mont29

Differential Revision: http://developer.blender.org/D2393

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

M	source/blender/blenkernel/intern/effect.c

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

diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c
index 7e6897a..3e85b0d 100644
--- a/source/blender/blenkernel/intern/effect.c
+++ b/source/blender/blenkernel/intern/effect.c
@@ -770,7 +770,7 @@ static void do_texture_effector(EffectorCache *eff, EffectorData *efd, EffectedP
 		force[1] = (0.5f - result->tg) * strength;
 		force[2] = (0.5f - result->tb) * strength;
 	}
-	else {
+	else if (nabla != 0) {
 		strength/=nabla;
 
 		tex_co[0] += nabla;
@@ -810,6 +810,9 @@ static void do_texture_effector(EffectorCache *eff, EffectorData *efd, EffectedP
 			force[2] = (dgdx - drdy) * strength;
 		}
 	}
+	else {
+		zero_v3(force);
+	}
 
 	if (eff->pd->flag & PFIELD_TEX_2D) {
 		float fac = -dot_v3v3(force, efd->nor);




More information about the Bf-blender-cvs mailing list