POV-Ray : Newsgroups : povray.advanced-users : Grid artifact in f_noise3d isosurface : Re: Grid artifact in f_noise3d isosurface Server Time
26 Jun 2024 02:40:44 EDT (-0400)
  Re: Grid artifact in f_noise3d isosurface  
From: Alex Falappa
Date: 24 Jun 2002 06:47:21
Message: <3d16f8b9@news.povray.org>
...
> 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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.