Bugfix: High resolution "exploded" when using uneven resolutions, sometimes with...
authorDaniel Genrich <daniel.genrich@gmx.net>
Wed, 1 Aug 2012 20:29:37 +0000 (20:29 +0000)
committerDaniel Genrich <daniel.genrich@gmx.net>
Wed, 1 Aug 2012 20:29:37 +0000 (20:29 +0000)
Part of Smoke Development Phase III.

Credit also goes to MiikaH: It was a teamwork effort and took days to track down. :)

intern/smoke/intern/WAVELET_NOISE.h

index 66dfb95d1436c9d3254960da53e4ebdaa366316d..4806c6a9fc1ece89b24ea385f7e4800634a905f5 100644 (file)
@@ -107,7 +107,7 @@ static void downsampleNeumann(const float *from, float *to, int n, int stride)
   // if these values are not local incorrect results are generated
   float downCoeffs[32] = { DOWNCOEFFS };
   const float *const aCoCenter= &downCoeffs[16];
-       for (int i = 0; i < n / 2; i++) {
+       for (int i = 0; i < ceil((float)n / 2); i++) {
                to[i * stride] = 0;
                for (int k = 2 * i - 16; k < 2 * i + 16; k++) { 
                        // handle boundary