X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fnoise.c;h=63bfa82e5e3851daf5140a6e1dd47bb81298de02;hb=e23b27a06797d931992ab9b8d21055f789371e2a;hp=b3b3f9c60c330461dcafdf0944d640444a3b6ffd;hpb=3b52c25b520e0e1b9143cafaee2670e57c89ef0d;p=dosdemo diff --git a/src/noise.c b/src/noise.c index b3b3f9c..63bfa82 100644 --- a/src/noise.c +++ b/src/noise.c @@ -186,12 +186,12 @@ float noise3(float x, float y, float z) c = lerp(a, b, sy); /* interpolate along the bottom slice of the cell */ - u = dotgrad3(grad3[b00 + bz0], rx0, ry0, rz1); - v = dotgrad3(grad3[b10 + bz0], rx1, ry0, rz1); + u = dotgrad3(grad3[b00 + bz1], rx0, ry0, rz1); + v = dotgrad3(grad3[b10 + bz1], rx1, ry0, rz1); a = lerp(u, v, sx); - u = dotgrad3(grad3[b01 + bz0], rx0, ry1, rz1); - v = dotgrad3(grad3[b11 + bz0], rx1, ry1, rz1); + u = dotgrad3(grad3[b01 + bz1], rx0, ry1, rz1); + v = dotgrad3(grad3[b11 + bz1], rx1, ry1, rz1); b = lerp(u, v, sx); d = lerp(a, b, sy); @@ -298,12 +298,12 @@ float pnoise3(float x, float y, float z, int per_x, int per_y, int per_z) c = lerp(a, b, sy); /* interpolate along the bottom slice of the cell */ - u = dotgrad3(grad3[b00 + bz0], rx0, ry0, rz1); - v = dotgrad3(grad3[b10 + bz0], rx1, ry0, rz1); + u = dotgrad3(grad3[b00 + bz1], rx0, ry0, rz1); + v = dotgrad3(grad3[b10 + bz1], rx1, ry0, rz1); a = lerp(u, v, sx); - u = dotgrad3(grad3[b01 + bz0], rx0, ry1, rz1); - v = dotgrad3(grad3[b11 + bz0], rx1, ry1, rz1); + u = dotgrad3(grad3[b01 + bz1], rx0, ry1, rz1); + v = dotgrad3(grad3[b11 + bz1], rx1, ry1, rz1); b = lerp(u, v, sx); d = lerp(a, b, sy); @@ -320,8 +320,9 @@ float pnoise4(float x, float y, float z, float w, int per_x, int per_y, int per_ float fbm1(float x, int octaves) { + int i; float res = 0.0f, freq = 1.0f; - for(int i=0; i