diff options
author | Nathan Letwory <nathan@letworyinteractive.com> | 2011-05-24 15:20:33 +0400 |
---|---|---|
committer | Nathan Letwory <nathan@letworyinteractive.com> | 2011-05-24 15:20:33 +0400 |
commit | a751c48b5fa22ec2990f6590e9439f3b256d7358 (patch) | |
tree | 74a22ed1eefb770e9dfa644e56a667ed7c34b865 /source/blender/modifiers/intern/MOD_displace.c | |
parent | 4ac88bd16f3dfd9b3e338775a9eeb512b526b60a (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.c | 7 |
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; } } |