POV-Ray : Newsgroups : povray.binaries.animations : Planetary fly-overs with height-fields Server Time
31 Oct 2024 10:20:21 EDT (-0400)
  Planetary fly-overs with height-fields (Message 1 to 9 of 9)  
From:
Subject: Planetary fly-overs with height-fields
Date: 16 Nov 2020 14:25:07
Message: <web.5fb2d11bbddf5c217c8778c10@news.povray.org>
Hi Povrayer,

2018 I worked with real height-data of planets and tried some fly-over with help
from Povrays height-fields.
Here one of the Moon (Mare Imbrium) and two from Mars (Vallis Marineris and
Olympus Mons).

Videos:
https://www.youtube.com/watch?v=dw8pX6D5ky0
https://www.youtube.com/watch?v=0CAEoP-xg5U
https://www.youtube.com/watch?v=HOXpAtFe2mQ

Playlist:
https://www.youtube.com/playlist?list=PLyqRFFB9kitzKn_a_-PQa-DMO24SXNE-Z

The DEM and the visual maps I downlaoded from the former NASA-Site Map-A-Planet
(version 1).
The resolution isnt the best, due to the former download-limit of Map-A-Planet.
Also there is some flickering in the movies, partially by switched-off
anti-aliasing.

The elevation is exaggerated by a factor 1.5 to 2, I dont know the exact values.

But a nice try I think, I would love to get additional and more detailed maps to
play with.
Unfortunately NASA shuts down the old site and replaced it by a much more
complicated one.

By the way:
This is the sub-board to present movies, right? Or the other animation
sub-board?
Its my 2nd post here, thats why I ask.

Ciao,


Post a reply to this message


Attachments:
Download '2020-11-16-201954_5120x1440_scrot.png' (961 KB)

Preview of image '2020-11-16-201954_5120x1440_scrot.png'
2020-11-16-201954_5120x1440_scrot.png


 

From: Jörg "Yadgar" Bleimann
Subject: Re: Planetary fly-overs with height-fields
Date: 18 Nov 2020 08:03:18
Message: <5fb51b96$1@news.povray.org>
Hi(gh)!


 > Hi Povrayer,
 >
 > 2018 I worked with real height-data of planets and tried some 
fly-over with help
 > from Povrays height-fields.
 > Here one of the Moon (Mare Imbrium) and two from Mars (Vallis 
Marineris and
 > Olympus Mons).
 >
 > Videos:
 > https://www.youtube.com/watch?v=dw8pX6D5ky0
 > https://www.youtube.com/watch?v=0CAEoP-xg5U
 > https://www.youtube.com/watch?v=HOXpAtFe2mQ

Nicely done... what vertical resolution did you use - 8 or 16 bit? The 
Olympus Mons flyaround shows some "terraced" terrain usually seen with 
8-bit grayscale heightfields...
 > Playlist:
 > https://www.youtube.com/playlist?list=PLyqRFFB9kitzKn_a_-PQa-DMO24SXNE-Z
 >
 > The DEM and the visual maps I downlaoded from the former NASA-Site 
Map-A-Planet
 > (version 1).
 > The resolution isnt the best, due to the former download-limit of 
Map-A-Planet.
 > Also there is some flickering in the movies, partially by switched-off
 > anti-aliasing.

Meanwhile, there should be higher-quality data downloadable... if only 
NASA servers would not be so chaotically structured!

I myself plan to do planetary flyovers with spherical "heightfields", i. 
e. mesh2 reliefs wrapped around a sphere, like this:

https://www.youtube.com/watch?v=PKxHFAlz2Ns&pbjreload=101

Your nickname indicates that you're from Cologne - or at least the 
bordering Ripuarian-speaking regions... am I right?

See you in Khyberspace!

Yadgar


Post a reply to this message

From:
Subject: Re: Planetary fly-overs with height-fields
Date: 22 Nov 2020 06:05:00
Message: <web.5fba4546a2e69bcb44c862420@news.povray.org>
Hi Yadgar,

the original pictures are all 8-bit greyscale, and to convert them into 16-bit
didnt help. I want to ask a co-worker if there are some Gimp-Filters to better
them, maybe that helps. At them moment there are only 265 steps in height, hope
that I can smooth them a littlebit.

To get better pics I have to invest many hours of look and search in the
internet, there was no time for this in the past month.

Your movie looks nice, more detailed than mine.
I plan to check out meshes to but didnt start with it.
Do you have a skript as a starting-point for me?

Yes, I am from cologne, you're right.
I have a small personal blog but my website is down at the moment.
Will inform the povray-world when its online again :)

Alaaf,


Post a reply to this message

From: Alain Martel
Subject: Re: Planetary fly-overs with height-fields
Date: 22 Nov 2020 11:44:05
Message: <5fba9555$1@news.povray.org>
Le 2020-11-22 à 06:02, M�tes a écrit :
> Hi Yadgar,
> 
> the original pictures are all 8-bit greyscale, and to convert them into 16-bit
> didnt help. I want to ask a co-worker if there are some Gimp-Filters to better
> them, maybe that helps. At them moment there are only 265 steps in height, hope
> that I can smooth them a littlebit.
> 

Converting an 8-bit image to 16-bits can't help. All it can do is append 
8 zeros as low order bits.
You need some more steps to interpolate smoothly between the original steps.


Post a reply to this message

From: Jörg "Yadgar" Bleimann
Subject: Re: Planetary fly-overs with height-fields
Date: 3 Dec 2020 06:16:24
Message: <5fc8c908$1@news.povray.org>
Hi(gh)!

On 22.11.20 12:02, M�tes wrote:
> Hi Yadgar,
> 
> the original pictures are all 8-bit greyscale, and to convert them into 16-bit
> didnt help. I want to ask a co-worker if there are some Gimp-Filters to better
> them, maybe that helps. At them moment there are only 265 steps in height, hope
> that I can smooth them a littlebit.
> 
> To get better pics I have to invest many hours of look and search in the
> internet, there was no time for this in the past month.
> 
> Your movie looks nice, more detailed than mine.
> I plan to check out meshes to but didnt start with it.
> Do you have a skript as a starting-point for me?
> 
> Yes, I am from cologne, you're right.
> I have a small personal blog but my website is down at the moment.
> Will inform the povray-world when its online again :)
> 
> Alaaf,
> Mätes
> 

To get "spherical" heightfields which follow the planet's curvature it's 
best to have a topographical bitmap in simple cylindrical projection 
(side ratio 2:1, which is important!) and then start getting the color 
values for each pixel using eval_pigment(), in a nested loop running 
from 90 to -90 degrees (latitude) and -180 to 180 degrees (longitude). 
Then you convert each color value to a height within the elevation range 
of the planet - with Earth and greyscales this would be (assuming a 
scale of 1 km per POV unit):

height = radius (i. e. 6377.5-11.022 for Earth - sealevel radius minus 
deepest point of the ocean) + (gray value*255)*((11.022 [Mariana trench] 
+ 8.8848 [Mt. Everest])/255)

(or height = radius (6377.5-0.422) + (gray value*255)*(0.422 [Dead Sea] 
+ 8.8848 [Mt. Everest])/255), if your map doesn't include ocean depths)

This height value translates as follows to a 3D point for each mesh vertex:

vertpos = height*<radians(sin(-longitude))*radians(cos(latitude)), 
radians(sin(latitude)), radians(cos(-longitude))*radians(cos(latitude))>

Note that the longitude value has to be multiplied with -1, as Earth 
longitudes increase counter-clockwise from west to east!

I think you will be able to transfer this to your Martian project 
without much effort...

...of course, after that you will have to set up the mesh2 faces from 
the index values of the vertices!

The faces are constructed this way:

#declare a = 0;
#declare c = 0;
#while (a < ydim-1)
   #declare b = 0;
   #while (b < xdim-1)
     #declare Faces[a*ydim+b]  = <a*res+b, a*res+b+1, (a+1)*res+b>;
     #declare Faces[a*ydim+b+1] = <a*res+b+1, (a+1)*res+b+1, (a+1)*res+b>;
     #declare c = c+2;
     #declare b = b+1;
   #end
   #declare a = a+1;
#end

I hope I could help you...

See you in Khyberspace!

Yadgar

Now playing: Madeleine (Bernhard Brink)


Post a reply to this message

From: Jörg "Yadgar" Bleimann
Subject: Re: Planetary fly-overs with height-fields
Date: 3 Dec 2020 08:00:00
Message: <5fc8e150$1@news.povray.org>
Hi(gh)!

On 22.11.20 17:44, Alain Martel wrote:

> Converting an 8-bit image to 16-bits can't help. All it can do is append 
> 8 zeros as low order bits.
> You need some more steps to interpolate smoothly between the original 
> steps.

Mätes, you might try the (very ancient, for MS-DOS!) tool "HF-Lab" 
written back in the last century by John Beale... when you apply a 
slight blur filter (command: nsmooth 7, just 7 iterations of nsmooth) to 
your heightfield, it might benefit considerably!

See you in Khyberspace!

Yadgar

Now playing: Aranjuez (Blonker)


Post a reply to this message

From: Tor Olav Kristensen
Subject: Re: Planetary fly-overs with height-fields
Date: 4 Dec 2020 05:30:00
Message: <web.5fca0f23a2e69bcba06e58590@news.povray.org>
Hi Yadgar

=?UTF-8?Q?J=c3=b6rg_=22Yadgar=22_Bleimann?= <yaz### [at] gmxde> wrote:
>...
> vertpos = height*<radians(sin(-longitude))*radians(cos(latitude)),
> radians(sin(latitude)), radians(cos(-longitude))*radians(cos(latitude))>

The code above seems wrong. Your vector should probably be calculated like this:

<
    cos(radians(latitude))*sin(radians(-longitude)),
    sin(radians(latitude)),
    cos(radians(latitude))*cos(radians(-longitude))
>

>...
> The faces are constructed this way:
>
> #declare a = 0;
> #declare c = 0;
> #while (a < ydim-1)
>    #declare b = 0;
>    #while (b < xdim-1)
>      #declare Faces[a*ydim+b]  = <a*res+b, a*res+b+1, (a+1)*res+b>;
>      #declare Faces[a*ydim+b+1] = <a*res+b+1, (a+1)*res+b+1, (a+1)*res+b>;
>      #declare c = c+2;
>      #declare b = b+1;
>    #end
>    #declare a = a+1;
> #end

Have you tested if the code above works as you intended ?

--
Tor Olav
http://subcube.com
https://github.com/t-o-k


Post a reply to this message

From: Jörg "Yadgar" Bleimann
Subject: Re: Planetary fly-overs with height-fields
Date: 5 Dec 2020 08:55:48
Message: <5fcb9164@news.povray.org>
Hi(gh)!

On 04.12.20 11:27, Tor Olav Kristensen wrote:
> Hi Yadgar
> 
> =?UTF-8?Q?J=c3=b6rg_=22Yadgar=22_Bleimann?= <yaz### [at] gmxde> wrote:
>> ...
>> vertpos = height*<radians(sin(-longitude))*radians(cos(latitude)),
>> radians(sin(latitude)), radians(cos(-longitude))*radians(cos(latitude))>
> 
> The code above seems wrong. Your vector should probably be calculated like this:
> 
> <
>      cos(radians(latitude))*sin(radians(-longitude)),
>      sin(radians(latitude)),
>      cos(radians(latitude))*cos(radians(-longitude))

Yes, you're right - I just typed it from memory, I should have looked it 
up in my scripts instead!

>> The faces are constructed this way:
>>
>> #declare a = 0;
>> #declare c = 0;
>> #while (a < ydim-1)
>>     #declare b = 0;
>>     #while (b < xdim-1)
>>       #declare Faces[a*ydim+b]  = <a*res+b, a*res+b+1, (a+1)*res+b>;
>>       #declare Faces[a*ydim+b+1] = <a*res+b+1, (a+1)*res+b+1, (a+1)*res+b>;
>>       #declare c = c+2;
>>       #declare b = b+1;
>>     #end
>>     #declare a = a+1;
>> #end
> 
> Have you tested if the code above works as you intended ?

With the script I extracted the code from, it works perfectly!

See you in Khyberspace!

Yadgar


Post a reply to this message

From: Tor Olav Kristensen
Subject: Re: Planetary fly-overs with height-fields
Date: 5 Dec 2020 11:35:01
Message: <web.5fcbb643a2e69bcba93700e40@news.povray.org>
=?UTF-8?Q?J=c3=b6rg_=22Yadgar=22_Bleimann?= <yaz### [at] gmxde> wrote:
> Hi(gh)!
>
> On 04.12.20 11:27, Tor Olav Kristensen wrote:
> > Hi Yadgar
> >
> > =?UTF-8?Q?J=c3=b6rg_=22Yadgar=22_Bleimann?= <yaz### [at] gmxde> wrote:
> >> ...
> >> The faces are constructed this way:
> >>
> >> #declare a = 0;
> >> #declare c = 0;
> >> #while (a < ydim-1)
> >>     #declare b = 0;
> >>     #while (b < xdim-1)
> >>       #declare Faces[a*ydim+b]  = <a*res+b, a*res+b+1, (a+1)*res+b>;
> >>       #declare Faces[a*ydim+b+1] = <a*res+b+1, (a+1)*res+b+1, (a+1)*res+b>;
> >>       #declare c = c+2;
> >>       #declare b = b+1;
> >>     #end
> >>     #declare a = a+1;
> >> #end
> >
> > Have you tested if the code above works as you intended ?
>
> With the script I extracted the code from, it works perfectly!

But about all of the calculations you do in this line "#declare
Faces[a*ydim+b+1] = ..." are wasted (i.e. not used), except for in the last
iteration of the "#while (b < xdim-1)" loop. That is because they are
overwritten in the next iteration of the loop.

And if you use c to count the number of vectors defined so far in the Faces
array, then the count will be about twice as high as the actual number of
vectors put into that array.

--
Tor Olav
http://subcube.com
https://github.com/t-o-k


Post a reply to this message

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