|
|
...
> At first I was a bit annoyed by this, but having looked at the 3.1 source
in
> the past, I know that it's caused by the way the noise functions are
> created. They are *based* on a grid pattern of random values, which are
> interpolated between. I'm not sure exactly how the new noise generator
> works, but since it shows the same artifact, I assume it's similar.
You're right.
Supposing f_noise3d is an implementation of Perlin noise, it belongs to a
class of noises called "gradient lattice" noises in which the noise values
at fractional positions are calculated interpolating "pseudorandom slope
vectors" precalculated at the intersection of an integer grid. At integer
position the value of the noise should be zero.
A deeper and more complete explanation can be found on the book "Texturing
and Modeling, a procedural approach" by Ebert et al. where D.Peachey
explains the teorethical basegrounds and shows several noises of that kind.
...
> The artifact is caused by the fact that while the first derivative of the
> function is continuous everywhere, the *second* derivative isn't
necessarily
> continuous at any of the integral values of x,y, or z.
That is infact the "bad situation" which makes the integer lattice visible.
I've made a little texturing application in Java
(http://www.falappa.net/alessandro/apps/jtexcreator/index.html if you're
interested) which uses an implementation of Perlin noise and I got those
gridding artifacts too.
Alessandro
Post a reply to this message
|
|