POV-Ray : Newsgroups : povray.unofficial.patches : Megapov: high powers, isosurfaces, additive functions (7kbbu) Server Time
1 Nov 2024 11:16:20 EDT (-0400)
  Megapov: high powers, isosurfaces, additive functions (7kbbu) (Message 1 to 6 of 6)  
From: Greg M  Johnson
Subject: Megapov: high powers, isosurfaces, additive functions (7kbbu)
Date: 10 Jan 2001 11:11:43
Message: <3A5C8865.B4F2DD11@my-dejanews.com>
The project I was working on for a recursive noise3d isosurface may be
mute with Ron's latest advice. [ BTW, I'm really wishing now that Chris
had said, "You fool, you want the granite pigment!" ;)  in our
discussion of the last weeks. ]

But I ran into a problem that may point to a problem with additive
functions, high powers, or isosurfaces.  The image with the same title
as this post in p.b.i. was made with the code at the end of this post.
It aims to make a recursively noisy surface for simulating coasts, etc.

Note that the noisiness of the coastline in x looks nice, but the z
level appears as if it is truncated or at a totally different scale.
Perhaps this is quite an eclectic application of povray, but I just
offer this observation as it may point to a problem with the code...
//===  start of code  ============
#version unofficial MegaPov 0.5;
#include "colors.inc"
camera{
        location <0,8,-.5399>
        look_at <0,0,0.,>
        angle .00004
        }
light_source{<-70,1200,120>rgb 1.}
plane{y,1
        pigment{White/2.7+Blue/1.5}
        }

#declare n=2.5;

#declare prefunkk1=
function{
        1/(2^1)*noise3d(x*1,y*1,z*1)
       +1/(2^2)*noise3d(x*(n^2),y*(n^2),z*(n^2))
       +1/(2^3)*noise3d(x*(n^3),y*(n^3),z*(n^3))
       +1/(2^4)*noise3d(x*(n^4),y*(n^4),z*(n^4))
       +1/(2^5)*noise3d(x*(n^4),y*(n^4),z*(n^4))
       +1/(2^6)*noise3d(x*(n^5),y*(n^5),z*(n^5))
       +1/(2^7)*noise3d(x*(n^6),y*(n^6),z*(n^6))
          }
#declare prefunkk2=
function{
        1/(2^8)*noise3d(x*(n^7),y*(n^7),z*(n^7))
       +1/(2^9)*noise3d(x*(n^8),y*(n^8),z*(n^8))
       +1/(2^9)*noise3d(x*(n^9),y*(n^9),z*(n^9))
       +1/(2^10)*noise3d(x*(n^10),y*(n^10),z*(n^10))
       +1/(2^11)*noise3d(x*(n^11),y*(n^11),z*(n^11))
       +1/(2^12)*noise3d(x*(n^12),y*(n^12),z*(n^12))
       +1/(2^13)*noise3d(x*(n^13),y*(n^13),z*(n^13))
       +1/(2^14)*noise3d(x*(n^14),y*(n^14),z*(n^14))
       +1/(2^15)*noise3d(x*(n^15),y*(n^15),z*(n^15))
 }

#declare prefunkk3=
function{
        1/(2^16)*noise3d(x*(n^16),y*(n^16),z*(n^16))
       +1/(2^17)*noise3d(x*(n^17),y*(n^17),z*(n^17))
       +1/(2^18)*noise3d(x*(n^18),y*(n^18),z*(n^18))
       +1/(2^19)*noise3d(x*(n^19),y*(n^19),z*(n^19))
       +1/(2^20)*noise3d(x*(n^20),y*(n^20),z*(n^20))
       +1/(2^21)*noise3d(x*(n^21),y*(n^21),z*(n^21))
       +1/(2^22)*noise3d(x*(n^22),y*(n^22),z*(n^22))
       +1/(2^23)*noise3d(x*(n^23),y*(n^23),z*(n^23))
       +1/(2^24)*noise3d(x*(n^24),y*(n^24),z*(n^24))
 }

#declare funkk=
function{prefunkk1+prefunkk2+prefunkk3}

#declare Coast=
        isosurface {
                function { y-funkk(x,y,z)}
                contained_by { box { -3, 3 } }
                threshold 0.5
                pigment {SeaGreen}
                finish{ambient 0.8}
                }

object{Coast}


Post a reply to this message

From: Greg M  Johnson
Subject: Re: Megapov: high powers, isosurfaces, additive functions (7kbbu)
Date: 10 Jan 2001 11:46:28
Message: <3A5C9071.C150E3E0@my-dejanews.com>
The same phenomenon BTW shows up in the wrinkles pattern.

"Greg M. Johnson" wrote:

> Note that the noisiness of the coastline in x looks nice, but the z
> level appears as if it were truncated or at a totally different scale.


Post a reply to this message

From: Chris Huff
Subject: Re: Megapov: high powers, isosurfaces, additive functions (7kbbu)
Date: 10 Jan 2001 20:13:26
Message: <chrishuff-E4E436.20150710012001@news.povray.org>
In article <3A5C8865.B4F2DD11@my-dejanews.com>, 
gre### [at] my-dejanewscom wrote:

> But I ran into a problem that may point to a problem with additive
> functions, high powers, or isosurfaces.  The image with the same title
> as this post in p.b.i. was made with the code at the end of this post.
> It aims to make a recursively noisy surface for simulating coasts, etc.

Try changing the accuracy and max_gradient settings, the problem is 
likely that you are simply getting too detailed for the isosurface to 
handle at default settings. And I'm not even sure the isosurface can 
handle these functions...it certainly won't be fast, and the finer 
details may be lost to numeric precision problems. Maybe you should just 
use a function pattern, if that is possible for what you are doing.

-- 
Christopher James Huff
Personal: chr### [at] maccom, http://homepage.mac.com/chrishuff/
TAG: chr### [at] tagpovrayorg, http://tag.povray.org/

<><


Post a reply to this message

From: Tor Olav Kristensen
Subject: Re: Megapov: high powers, isosurfaces, additive functions (7kbbu)
Date: 10 Jan 2001 21:06:44
Message: <3A5D1459.E2161883@online.no>
"Greg M. Johnson" wrote:
> 
>...
> Note that the noisiness of the coastline in x looks nice, but the z
> level appears as if it is truncated or at a totally different scale.
> Perhaps this is quite an eclectic application of povray, but I just
> offer this observation as it may point to a problem with the code...

I think this is "caused" by your extremly 
small zooming angle (i.e.: angle 0.00004)

Have you tried with larger viewing angles ?

Try to uncomment the different camera angle 
statements in the code below.

(The coasts looks ok for me at the 3 given
magnifications when I do this.)


(Btw.: This is my first post to this group :)


Regards,

Tor Olav
-- 
mailto:tor### [at] hotmailcom
http://www.crosswinds.net/~tok/tokrays.html



#version unofficial MegaPov 0.5;

#include "colors.inc"
 
camera {
  location <0, 3.5, 0>
  look_at <0, 0, 0>
//  angle 10
//  angle 1
}

light_source { 10*<-7, 120, 12> color White }

plane {
  y, 1
  pigment { White/2.7 + Blue/1.5 }
}

$ n = 2.5;

$ prefunkk1 =
function {
   2^-1*noise3d(    x, 0,     z)
  +2^-2*noise3d(n  *x, 0, n*  z)
  +2^-3*noise3d(n^2*x, 0, n^2*z)
  +2^-4*noise3d(n^3*x, 0, n^3*z)
  +2^-5*noise3d(n^4*x, 0, n^4*z)
  +2^-6*noise3d(n^5*x, 0, n^5*z)
  +2^-7*noise3d(n^6*x, 0, n^6*z)
  +2^-8*noise3d(n^7*x, 0, n^7*z)
}

$ Coast =
isosurface {
  function { y - prefunkk1(x + 1.06, y, z+0.06) }
  contained_by { box { -<1, 1, 1>, <1, 1, 1> } }
  threshold 0.55
  pigment { SeaGreen*2 }
}

object { Coast }


Post a reply to this message

From: Greg M  Johnson
Subject: Re: Megapov: high powers, isosurfaces, additive functions (7kbbu)
Date: 12 Jan 2001 09:36:31
Message: <3A5F1516.1F4DBC02@my-dejanews.com>
Thanks, but neither of your suggestions would fix the problem, and don't
explain why x and z axes respond so differently.

As the problem also appears in the wrinkles pattern,  I assume I've
discovered a bug in noise3d.

Thanks much for the discussion.  My electic project is a fractal zoom on
something that looks like an island w/ 3d relief . . .


Post a reply to this message

From: Chris Huff
Subject: Re: Megapov: high powers, isosurfaces, additive functions (7kbbu)
Date: 13 Jan 2001 13:52:04
Message: <chrishuff-8C9C74.13533213012001@news.povray.org>
In article <3A5F1516.1F4DBC02@my-dejanews.com>, 
gre### [at] my-dejanewscom wrote:

> As the problem also appears in the wrinkles pattern,  I assume I've
> discovered a bug in noise3d.

Don't be so quick to assume it's a bug...as I said, it is more likely to 
just be precision problems.


> Thanks much for the discussion.  My electic project is a fractal zoom on
> something that looks like an island w/ 3d relief . . .

Maybe you could use the pattern image type on a height field instead of 
an isosurface. Then you could just scale up the pattern, you wouldn't 
have to mess with camera angle or position, or the size of the height 
field.

-- 
Christopher James Huff
Personal: chr### [at] maccom, http://homepage.mac.com/chrishuff/
TAG: chr### [at] tagpovrayorg, http://tag.povray.org/

<><


Post a reply to this message

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