![](/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) |
Hello povers,
Here is a fly by of Valles Marineris on Mars. I think the relief is a bit to
high. Maybe there is something I did not understand exactly with
isosurfaces. Here is the function I use :
#declare pl_radius = 3396;
#declare min_alt = -8.208;
#declare max_alt = 21.249;
#declare alt_fct = max_alt - min_alt;
function { f_sphere(x,y,z,pl_radius+max_alt) -
alt_fct*f_relief(x,y,z).gray }
The f_relief function is an image_map as the ones we use with a height_filed
Thanks for any help.
--
ZeSly
http://perso.wanadoo.fr/zesly/
Post a reply to this message
Attachments:
Download 'mars_nav.jpg' (205 KB)
Preview of image 'mars_nav.jpg'
![mars_nav.jpg](/povray.binaries.images/attachment/%3C4176cc9b%40news.povray.org%3E/mars_nav.jpg?ttop=441697&toff=6000&preview=1)
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
There is a bit too much (red) atmosphere?
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) |
> Here is a fly by of Valles Marineris on Mars. I think the relief is a bit
to
> high.
It looks about right to me. The min_alt to max_alt distance is about 30 or
so, and the radius of the sphere is about 3400, so the depth should be about
3/340 or about 1/110 the radius of the sphere, which is about what it looks
like it is.
There *is* one thing slightly wrong: you're subtracting your image depths
from the sphere, which means the sphere's radius at a given point is
pl_radius+max_alt + the height of the image at that point. (Remember that
subtracting something from a function makes it more likely to be below zero,
which *increases* the surface height.) So I think what you wanted was
function { f_sphere(x,y,z,pl_radius+min_alt) -
alt_fct*f_relief(x,y,z).gray }
(I simply replaced max_alt with min_alt.)
To test this, you can always make a normal (non-isosurface) sphere of radius
pl_radius and check that it cuts the terrain properly.
- Slime
[ http://www.slimeland.com/ ]
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) |
Wasn't it ZeSly who wrote:
>Hello povers,
>
>Here is a fly by of Valles Marineris on Mars. I think the relief is a bit to
>high. Maybe there is something I did not understand exactly with
>isosurfaces. Here is the function I use :
>
> #declare pl_radius = 3396;
> #declare min_alt = -8.208;
> #declare max_alt = 21.249;
> #declare alt_fct = max_alt - min_alt;
>
>function { f_sphere(x,y,z,pl_radius+max_alt) -
>alt_fct*f_relief(x,y,z).gray }
>
>The f_relief function is an image_map as the ones we use with a height_filed
>
>Thanks for any help.
>
Actually the relief seems to work out to be correct, though there is a
slight error in your ground level. You happen to be lucky that the
function values returned by f_sphere happen to be linear with altitude.
This is not generally the case.
If you use trace() on the isosurface you can determine that a point
corresponding to a black pixel on the relief map is at a height of
3417.224, and one corresponding to a white pixel is at 3446.705.
That gives the correct difference between high and low points, but it's
all way above the nominal planet radius. That's because subtracting the
relief function adds height, and adding max_alt also adds height. What
you should do is
function { f_sphere(x,y,z,pl_radius+min_alt) -
alt_fct*f_relief(x,y,z).gray }
--
Mike Williams
Gentleman of Leisure
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) |
news:qDR### [at] econym demon co uk...
> relief function adds height, and adding max_alt also adds height. What
> you should do is
>
> function { f_sphere(x,y,z,pl_radius+min_alt) -
> alt_fct*f_relief(x,y,z).gray }
I had a doubt about that. My first try was with this function. Thanks to you
and to Slime to give the correct function.
--
ZeSly
http://perso.wanadoo.fr/zesly/
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) |
I love it !!!
--
Dark Skull Software
http://www.darkskull.net
A+
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) |