From 804643793eab79f13da2215a521b56a0dcc264c3 Mon Sep 17 00:00:00 2001 From: Tamito Kajiyama Date: Thu, 24 Oct 2013 11:41:39 +0000 Subject: Fix for occasional crashes due to numerical instability in Freestyle Perlin noise modifiers with a large 'octaves' value. Problem report by Light BWK through personal communications, thanks a lot! --- source/blender/freestyle/intern/geometry/Noise.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'source/blender/freestyle/intern/geometry') diff --git a/source/blender/freestyle/intern/geometry/Noise.cpp b/source/blender/freestyle/intern/geometry/Noise.cpp index b21ded9dd95..8ec56e84f95 100644 --- a/source/blender/freestyle/intern/geometry/Noise.cpp +++ b/source/blender/freestyle/intern/geometry/Noise.cpp @@ -62,10 +62,10 @@ namespace Freestyle { #define SETUP(i, b0, b1, r0, r1) \ { \ (t) = (i) + (N); \ - (b0) = ((int)(t)) & BM; \ - (b1) = ((b0) + 1) & BM; \ - (r0) = (t) - (int)(t); \ + (r0) = modff((t), &(u)); \ (r1) = (r0) - 1.0; \ + (b0) = ((int)(u)) & BM; \ + (b1) = ((b0) + 1) & BM; \ } (void)0 static void normalize2(float v[2]) -- cgit v1.2.3