Java-Gaming.org Hi !
Featured games (81)
games approved by the League of Dukes
Games in Showcase (513)
Games in Android Showcase (119)
games submitted by our members
Games in WIP (576)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Algorithm for Equirectangular projection (Plate Carre) ?  (Read 2878 times)
0 Members and 1 Guest are viewing this topic.
Offline Addictman

Senior Duke


Medals: 3
Projects: 1


Java games rock!


« Posted 2011-06-01 12:54:58 »

Hi.

I'm dabbling with a spacegame, and I'm working with texturing planets at the moment. I have some tools to create decent-looking planet surfaces, - however they're the typical flat kind based off heightmaps etc. (Square shaped, - 512*512 pixels as an example).

To wrap around spheres seamlessly, I'd like to convert these images into an equirectangular projection so that they map very nicely around spheres. Does anyone have any code that does this, or perhaps can explain the algorithm to me?

Thanks.
Online Roquen
« Reply #1 - Posted 2011-06-01 14:42:58 »

You're asking for a sampling method for encoding/decoding (roughly) equal area per texel when mapped to a sphere?

If so HEALPix is one method.  I can think of some others if this is the kind of thing that you're looking for.

(EDIT)
Or the easy solution is to just use cubemaps.  I think that Spore just used cubemaps, but don't quote me on it.
Offline Addictman

Senior Duke


Medals: 3
Projects: 1


Java games rock!


« Reply #2 - Posted 2011-06-01 15:07:39 »

Oh dear, I'm not even sure of what I am looking for, - there are so many terms and topics I know next to nothing about.


Let's say I have an image A, which is some fractal generated "world map" that I made. It can for instance be 512*512 pixels, with no distortions of any kind.

I want to get to image B, which would be a 1024*512 pixels image, with distortions near the poles, in a equirectangular (or plate carree, equidistant cylindrical, I guess it has many names) projection.

Does that explain better what I am looking for? (Because honestly, I did not understand half what the HEALPix page said).

Thanks for [your attempt] to help ;-)
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Online Roquen
« Reply #3 - Posted 2011-06-02 15:09:06 »

My reply proves that I have the memory of a may-fly (and that I want to overcomplicate stuff).  I'd forgotten the title of the thread before I reached the end of your post.  Completely ignore my HEALPix comment.  And yeah, the wikipedia page is pretty unreadable.

I'd suggest not doing what you describe.  I (assume) that you'd be grabbing a 2D slice of noise into the 512x512, which is they warped to a 1024*512, which is then rolled into a cylinder and shrink-wrapped to a sphere.  What I'd suggest doing use cube mapping and when calculating the texture faces, project the normal that maps to the given texel back to the surface of the sphere and calculate the 3D noise function at that point.  (But, re-read my first sentence)

(I am trying to help..I promise!)
Offline Addictman

Senior Duke


Medals: 3
Projects: 1


Java games rock!


« Reply #4 - Posted 2011-06-02 18:11:54 »

Now we seem to be on the same page Wink Excellent.

Cube mapping, - check. I'll definitely look further into that. Thanks!

Online Roquen
« Reply #5 - Posted 2011-06-02 20:19:36 »

BTW: The mapping of a texel to the normal of the sphere should be easy to find.  Search for "normalization map" or cube map (or something of the sort).  Nvidia's SDK used to have code for it.  That'll give you a normalized vector, which you can multiple by some value to get various frequencies plus any offset value you want, etc. etc. when sampling 3D noise.
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

Longarmx (38 views)
2014-10-17 03:59:02

Norakomi (28 views)
2014-10-16 15:22:06

Norakomi (24 views)
2014-10-16 15:20:20

lcass (28 views)
2014-10-15 16:18:58

TehJavaDev (53 views)
2014-10-14 00:39:48

TehJavaDev (54 views)
2014-10-14 00:35:47

TehJavaDev (43 views)
2014-10-14 00:32:37

BurntPizza (64 views)
2014-10-11 23:24:42

BurntPizza (36 views)
2014-10-11 23:10:45

BurntPizza (78 views)
2014-10-11 22:30:10
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!