POV-Ray : Newsgroups : povray.advanced-users : Grid artifact in f_noise3d isosurface Server Time
16 Jun 2024 19:58:50 EDT (-0400)
  Grid artifact in f_noise3d isosurface (Message 11 to 20 of 49)  
<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>
From: Apache
Subject: Re: Grid artifact in f_noise3d isosurface
Date: 22 Jun 2002 22:19:22
Message: <3d15302a$1@news.povray.org>
Not yet

--
Apache
POV-Ray Cloth experiments: http://geitenkaas.dns2go.com/experiments/
Email: apa### [at] yahoocom
ICQ: 146690431


Post a reply to this message

From: Slime
Subject: Re: Grid artifact in f_noise3d isosurface
Date: 22 Jun 2002 23:31:17
Message: <3d154105@news.povray.org>
All the noise generators suffer from this. It's most easily seen when
they're applied as the function for a height field, viewed at a shallow
angle.

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.

I wish there were a better way to create random noise, but I sure as heck
couldn't come up with one.

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.

The best workaround I can think of, if it's causing any problems, is to add
turbulence to the noise.

 - Slime
[ http://www.slimeland.com/ ]


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: Grid artifact in f_noise3d isosurface
Date: 23 Jun 2002 05:01:17
Message: <3d158e5d@news.povray.org>
In article <3d151ea4@news.povray.org> , "Philippe Debar" 
<phd### [at] belgacomnet> wrote:

> Ooops ! Sorry, my first web experience. I plead ignorance. I change that
> right away (and I thought I

Ok :-)

> could go to sleep now...*sigh*). I removed the spaces as I do not know how
> they have to be encoded

Using their ASCII code in hexadecimal notation with a percent sign:  %20

____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde

Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: Grid artifact in f_noise3d isosurface
Date: 23 Jun 2002 05:05:28
Message: <3d158f58@news.povray.org>
In article <3d14a873@news.povray.org> , "Philippe Debar" 
<phd### [at] belgacomnet> wrote:

> Toying with isosurfaces (pov v3.5RC6), I found a quite visible grid
> artifact... I don't know what to make of it. Should I make a bug report ? It
> is so basic [just function{-z+f_noise3d(x,y,z)}] that I find it very
> unlikely that it is unknown. But searching with http://news.povray.org
> yielded no answer... So, could anyone check this
> http://web.wanadoo.be/wbrp0009/pov/main.html and tell me what to do with it.

OK, could you either post here or place on the site a short complete sample
scene for at least the first image, please?

    Thorsten

____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde

Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: Grid artifact in f_noise3d isosurface
Date: 23 Jun 2002 05:05:29
Message: <3d158f59$1@news.povray.org>
In article <3d154105@news.povray.org> , "Slime" <slm### [at] slimelandcom> wrote:

> I wish there were a better way to create random noise, but I sure as heck
> couldn't come up with one.
>
> 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.

Your obervation might be correct also not worded very well, I have noticed a
similar "defect" and I actually think I know why it is there.

    Thorsten

____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde

Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

From: Alessandro Coppo
Subject: Re: Grid artifact in f_noise3d isosurface
Date: 23 Jun 2002 05:18:01
Message: <3d159249$1@news.povray.org>
I implemented myself Perlin noise and got the same bug. Double/triple check 
the way you interpolate the values on non grid points: the code of the 
s's/t's (or whatever you call the interpolation fractions) is handled 
exactly the opposite on might resonably think (I consider Perlin noise code 
one of the most counterintuive algorithms I have ever implemented/debugged).

By the way, if POV had been a free software project, handled with CVS I 
would have fixed the bug more than one month ago...

Bye

-- 
Alessandro Coppo
a.coppo@<REMOVE_ME>iol.it
www.geocities.com/alexcoppo


Post a reply to this message

From: Philippe Debar
Subject: Re: Grid artifact in f_noise3d isosurface
Date: 23 Jun 2002 06:38:52
Message: <3d15a53c$1@news.povray.org>
"Thorsten Froehlich" <tho### [at] trfde> wrote in message
news:3d158f58@news.povray.org...
> In article <3d14a873@news.povray.org> , "Philippe Debar"
> <phd### [at] belgacomnet> wrote:

> OK, could you either post here or place on the site a short complete
sample
> scene for at least the first image, please?


Done. Zipped scene file in p.beta-test.binaries. Small animation that
renders the following scenes :
0) the simple f_noise3d on a plane
1) the "differenced" (there must be a proper name for this...) f_noise3d on
a plane
2) same with noise gen 1
3) same with noise gen 2
4) the "differenced", noise_gen 3, f_noise3d on a sphere
5) the pure f_noise3d on a sphere

I will post the others soon, but I have to tidy the code up and my parents
are waiting me for dinner at their place + I still have to complete my
income declaration :-(, so no Pov nor post for some hours...


Povingly,

Philippe

PS : I made a copy of the web page
http://web.wanadoo.be/wbrp0009/pov/qbugs/noisegrid/main.html at, in order to
be able to free pov/main one day... at the time being (and for some long
time I think), the two urls work.


Post a reply to this message

From: Warp
Subject: Re: Grid artifact in f_noise3d isosurface
Date: 23 Jun 2002 08:43:59
Message: <3d15c28f@news.povray.org>
Alessandro Coppo <a.c### [at] iolit> wrote:
> By the way, if POV had been a free software project, handled with CVS I 
> would have fixed the bug more than one month ago...

  Hmm... What stops you from posting a full report of the suggested fix
to this news server?

-- 
#macro N(D)#if(D>99)cylinder{M()#local D=div(D,104);M().5,2pigment{rgb M()}}
N(D)#end#end#macro M()<mod(D,13)-6mod(div(D,13)8)-3,10>#end blob{
N(11117333955)N(4254934330)N(3900569407)N(7382340)N(3358)N(970)}//  - Warp -


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: Grid artifact in f_noise3d isosurface
Date: 23 Jun 2002 10:50:31
Message: <3d15e037@news.povray.org>
In article <3d159249$1@news.povray.org> , Alessandro Coppo <a.c### [at] iolit>
wrote:

> By the way, if POV had been a free software project, handled with CVS I
> would have fixed the bug more than one month ago...

If you had looked at the Perlin noise function code available for years now
in 3.1 and previous versions you should have been able to notice the same
bug and could have tried to fix it...

    Thorsten


Post a reply to this message

From: Alex Falappa
Subject: Re: Grid artifact in f_noise3d isosurface
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

<<< Previous 10 Messages Goto Latest 10 Messages Next 10 Messages >>>

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