Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (405)
games submitted by our members
Games in WIP (289)
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  
  Coordinate conversion and sphere mapping.  (Read 1047 times)
0 Members and 1 Guest are viewing this topic.
Offline JCollie

Junior Newbie





« Posted 2012-07-06 15: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 Smiley

Greetings

JCollie
Offline Roquen

JGO Ninja


Medals: 66



« Reply #1 - Posted 2012-07-06 15:49:09 »

What are you trying to do?
Offline JCollie

Junior Newbie





« Reply #2 - Posted 2012-07-06 15: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)
Games published by our own members! Check 'em out!
Play the free demo of Revenge of the Titans!
Offline Roquen

JGO Ninja


Medals: 66



« Reply #3 - Posted 2012-07-06 22: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.
Offline JCollie

Junior Newbie





« Reply #4 - Posted 2012-07-10 22: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.

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars and Titan!

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

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (60 views)
2013-05-17 21:29:12

alaslipknot (69 views)
2013-05-16 21:24:48

gouessej (99 views)
2013-05-16 00:53:38

gouessej (96 views)
2013-05-16 00:17:58

theagentd (107 views)
2013-05-15 15:01:13

theagentd (98 views)
2013-05-15 15:00:54

StreetDoggy (144 views)
2013-05-14 15:56:26

kutucuk (166 views)
2013-05-12 17:10:36

kutucuk (165 views)
2013-05-12 15:36:09

UnluckyDevil (175 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
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!
Page created in 0.145 seconds with 21 queries.