|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
I made a planet using an isosurface using f_sphere and f_noise3d, and the
resulting ball was smaller than the radius of the sphere specified in the
function. As more levels of noise were added, the ball became smaller
still.
The function I used was something like this:
function{
f_sphere(x,y,z,6400000)+100000*f_noise3d(x/100000,y/100000,z/100000)}
Any ideas on why this happens, or how to get around it?
Rohan _e_ii
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Wasn't it Rohan Bernett who wrote:
>I made a planet using an isosurface using f_sphere and f_noise3d, and the
>resulting ball was smaller than the radius of the sphere specified in the
>function. As more levels of noise were added, the ball became smaller
>still.
>
>The function I used was something like this:
>function{
>f_sphere(x,y,z,6400000)+100000*f_noise3d(x/100000,y/100000,z/100000)}
>
>Any ideas on why this happens, or how to get around it?
That's exactly what you should expect.
Each time you add some noise, the value of the function at any
particular point increases, so the location where the value of the
function is equal to the threshold moves inwards.
One way to fix this would be to increase the value of "threshold" to
allow for the average value of the noise function. The
"+100000*f_noise3d(..." adds an average of 50000 to the value of the
function, so set "threshold 50000".
Another way to do it is to replace the calls to f_noise3d() by
0.5*f_snoise3d(). f_snoise3d() returns noise values in the range [-1,1]
instead of [0,1] so the average value of noise added is zero.
--
Mike Williams
Gentleman of Leisure
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
In article <web.3d44a3c1a584b11ed02c7b870@news.povray.org>,
"Rohan Bernett" <rox### [at] yahoocom> wrote:
> I made a planet using an isosurface using f_sphere and f_noise3d, and the
> resulting ball was smaller than the radius of the sphere specified in the
> function. As more levels of noise were added, the ball became smaller
> still.
>
> The function I used was something like this:
> function{
> f_sphere(x,y,z,6400000)+100000*f_noise3d(x/100000,y/100000,z/100000)}
>
> Any ideas on why this happens, or how to get around it?
The surface is displaced, so the sphere has to either get bigger or
smaller anywhere the noise function is not equal to 0. As you use more
levels of noise, the number of areas that equal 0 get fewer and fewer.
By adding to the sphere function, the points where the threshold value
is reached get pushed further toward the center of the sphere.
Subtracting would pull them outward. Just compensate by adjusting the
sphere radius or by subtracting half the peak noise level from the
function (this will makes some areas depressions and other areas
mountains).
BTW, an isosurface doesn't seem like a good idea for a planet...for most
planets, the largest features are tiny bumps on the surface.
--
Christopher James Huff <chr### [at] maccom>
POV-Ray TAG e-mail: chr### [at] tagpovrayorg
TAG web site: http://tag.povray.org/
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Christopher James Huff wrote:
>
>BTW, an isosurface doesn't seem like a good idea for a planet...for most
>planets, the largest features are tiny bumps on the surface.
>
It looks good when you're near the surface of the planet though, with a
realistically curving sky and landscape. And you can go and fly right round
the planet! :-)
Rohan _e_ii
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|