From: kwolekr Date: Tue, 9 Dec 2014 05:48:00 +0000 (-0500) Subject: Noise: Update Noise::resizeNoiseBuf to account for lacunarity not equal to 2 X-Git-Tag: 0.4.11~77 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=941d000fc62fd07cc058f6bc663a56843dc8591e;p=oweals%2Fminetest.git Noise: Update Noise::resizeNoiseBuf to account for lacunarity not equal to 2 --- diff --git a/src/noise.cpp b/src/noise.cpp index 3fedf357f..57938bd06 100644 --- a/src/noise.cpp +++ b/src/noise.cpp @@ -400,15 +400,15 @@ void Noise::resizeNoiseBuf(bool is3d) float ofactor; //maximum possible spread value factor - ofactor = (float)(1 << (np->octaves - 1)); + ofactor = pow(np->lacunarity, np->octaves - 1); //noise lattice point count //(int)(sz * spread * ofactor) is # of lattice points crossed due to length // + 2 for the two initial endpoints // + 1 for potentially crossing a boundary due to offset - nlx = (int)(sx * ofactor / np->spread.X) + 3; - nly = (int)(sy * ofactor / np->spread.Y) + 3; - nlz = is3d ? (int)(sz * ofactor / np->spread.Z) + 3 : 1; + nlx = (int)ceil(sx * ofactor / np->spread.X) + 3; + nly = (int)ceil(sy * ofactor / np->spread.Y) + 3; + nlz = is3d ? (int)ceil(sz * ofactor / np->spread.Z) + 3 : 1; delete[] noise_buf; try {