Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Letwory <nathan@letworyinteractive.com>2011-05-24 15:20:33 +0400
committerNathan Letwory <nathan@letworyinteractive.com>2011-05-24 15:20:33 +0400
commita751c48b5fa22ec2990f6590e9439f3b256d7358 (patch)
tree74a22ed1eefb770e9dfa644e56a667ed7c34b865 /source/blender/modifiers/intern/MOD_displace.c
parent4ac88bd16f3dfd9b3e338775a9eeb512b526b60a (diff)
clamp delta to prevent cases where strength is a huge number. Very high values would lead to scale problems of objects.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_displace.c')
-rw-r--r--source/blender/modifiers/intern/MOD_displace.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c
index 3288c1b5da1..02845ecaab7 100644
--- a/source/blender/modifiers/intern/MOD_displace.c
+++ b/source/blender/modifiers/intern/MOD_displace.c
@@ -210,6 +210,7 @@ static void displaceModifier_do(
if(def_weight) strength *= def_weight->weight;
delta *= strength;
+ CLAMP(delta, -10000, 10000);
switch(dmd->direction) {
case MOD_DISP_DIR_X:
@@ -227,9 +228,9 @@ static void displaceModifier_do(
vertexCos[i][2] += (texres.tb - dmd->midlevel) * strength;
break;
case MOD_DISP_DIR_NOR:
- vertexCos[i][0] += delta * mvert[i].no[0] / 32767.0f;
- vertexCos[i][1] += delta * mvert[i].no[1] / 32767.0f;
- vertexCos[i][2] += delta * mvert[i].no[2] / 32767.0f;
+ vertexCos[i][0] += delta * (mvert[i].no[0] / 32767.0f);
+ vertexCos[i][1] += delta * (mvert[i].no[1] / 32767.0f);
+ vertexCos[i][2] += delta * (mvert[i].no[2] / 32767.0f);
break;
}
}