Java-Gaming.org Hi !
 Featured games (84) games approved by the League of Dukes Games in Showcase (575) Games in Android Showcase (154) games submitted by our members Games in WIP (623) games currently in development
 News: Read the Java Gaming Resources, or peek at the official Java tutorials
Pages: [1]
 ignore  |  Print
 Coordinate conversion and sphere mapping.  (Read 1681 times) 0 Members and 1 Guest are viewing this topic.
JCollie

Junior Newbie

 « Posted 2012-07-06 13:42:04 »

Hey,

I have some issues with mapping converted coordinates to a sphere. I'm using libnoiseforjava and the jMonkeyEngine.
First my conversion methode:

 1  2  3  4  5  6  7  8  9 `   public Vector2f cartesianToGeo(Vector3f position, float sphereRadius)   {           sphereRadius = FastMath.sqrt((position.x*position.x)+(position.y*position.y)+(position.z*position.z));                 float lat = (float)Math.asin(position.z / sphereRadius) * FastMath.RAD_TO_DEG; //theta           float lon = (float)Math.atan2(position.y, position.x) * FastMath.RAD_TO_DEG; //phi           return new Vector2f(lat, lon);   }`

This is the mapping method from libnoiseforjava:

 1  2  3  4  5  6  7  8  9  10  11 `   public double getValue (double lat, double lon)   {      assert (module != null);      double x, y, z;      double r = Math.cos(Math.toRadians(lat));      x = r * Math.cos (Math.toRadians(lon));      y = Math.sin (Math.toRadians(lat));      z = r * Math.sin (Math.toRadians(lon));      return module.getValue (x, y, z);   }`

And here is what I get (using sphere approximation from octahedron):

It looks like two spheres into one another and on the right is the transition between them with a high count of points. My assumption is, that the getValue method expects latitude and longitude in an area from -90 to 90 degrees. My conversion method only returns values from -180 to 180 degrees. That's probably the reason why I get two spheres. First: does anybody agree? Or is there another mistake? Second: Is there an easy way to also convert the new geo coordinates to an area from -90 to 90 degrees. Or a better method that gives values in this area from the beginning? My math skills kinda suck

Greetings

JCollie
Roquen
 « Reply #1 - Posted 2012-07-06 13:49:09 »

What are you trying to do?
JCollie

Junior Newbie

 « Reply #2 - Posted 2012-07-06 13:51:23 »

I want to map noise to a sphere. (The module.getValue(x, y, z) method in the mapping method refers to a perlin noise. This function should be fine)
Roquen
 « Reply #3 - Posted 2012-07-06 20:14:26 »

If you're not trying to "warp" noise, then simply sample in cartesian space.  If you want to correct for imperfect spheres (because of tris) then a normalization map will do...or simply compute the correction in the shader.
JCollie

Junior Newbie

 « Reply #4 - Posted 2012-07-10 20:00:00 »

What I found out so far about my problem is that ( I didn’t know that) perlin noise creates negative values. Thats why the two objectes ( it’s actually on object, explanation follows) are into one another. The area with the accumulation of points might be the result of small input values to the perlin noise. So it could be the equator or the zero meridian?!
Pages: [1]
 ignore  |  Print

You cannot reply to this message, because it is very, very old.

 BurntPizza (28 views) 2015-04-23 03:42:11 theagentd (32 views) 2015-04-22 16:23:07 Riven (45 views) 2015-04-16 10:48:47 Duke0200 (55 views) 2015-04-16 01:59:01 Fairy Tailz (39 views) 2015-04-14 20:13:12 Riven (42 views) 2015-04-12 21:36:37 bus hotdog (58 views) 2015-04-10 02:39:32 CopyableCougar4 (63 views) 2015-04-10 00:51:04 BurntPizza (62 views) 2015-04-06 22:06:58 ags1 (62 views) 2015-04-02 10:58:48
 theagentd 23x BurntPizza 16x wessles 15x alwex 11x 65K 11x kingroka123 11x Rayvolution 8x kevglass 8x Roquen 7x chrislo27 7x Hanksha 7x Riven 7x Olo 7x ra4king 7x Ecumene 7x KevinWorkman 7x
 How to: JGO Wikiby Mac702015-02-17 20:56:162D Dynamic Lighting2015-01-01 20:25:42How do I start Java Game Development?by gouessej2014-12-27 19:41:21Resources for WIP gamesby kpars2014-12-18 10:26:14Understanding relations between setOrigin, setScale and setPosition in libGdx2014-10-09 22:35:00Definite guide to supporting multiple device resolutions on Android (2014)2014-10-02 22:36:02List of Learning Resources2014-08-16 10:40:00List of Learning Resources2014-08-05 19:33:27
 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