![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <3A5C8865.B4F2DD11@my-dejanews.com>,
gre### [at] my-dejanews com 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] mac com, http://homepage.mac.com/chrishuff/
TAG: chr### [at] tag povray org, http://tag.povray.org/
<><
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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>
|
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
"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] hotmail com
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
In article <3A5F1516.1F4DBC02@my-dejanews.com>,
gre### [at] my-dejanews com 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] mac com, http://homepage.mac.com/chrishuff/
TAG: chr### [at] tag povray org, http://tag.povray.org/
<><
Post a reply to this message
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |