Question

I am currently working on an OpenGL procedural planet generator. I hope to use it for a space RPG, that will not allow players to go down to the surface of a planet so I have ignored anything ROAM related. At the momement I am drawing a cube with VBOs and mapping onto a sphere as shown here.

I am familiar with most fractal heightmap generating techniques and have already implemented my own version of midpoint displacement(not that useful in this case I know).

My question is, what is the best way to procedurally generate the heightmap. I have looked at libnoise which allows me to make tilable heightmaps/textures, but as far as I can see I would need to generate a net like:

this

Leaving the tiling obvious.

Could anyone advise me on the best route to take?

Any input would be much appreciated.

Thanks,

Henry.

Was it helpful?

Solution

It looks like you understand the problem with generating a flat, seamless surface and then trying to map it onto a sphere.

How about using a 3D noise function instead? A 3D noise function takes 3 coordinates instead of 2 as its input, so imagine a 3D array full of generated numbers (instead of a 2D array). Thus, once you have a 3D noise function, you can generate a 2D texture, but instead of using 2D coordinates for each pixel, use the 3D coordinates of where that pixel would be on the sphere. (I hope that convoluted sentence made sense!)

Take a look at halfway-down this page about Perlin noise: https://web.archive.org/web/20120829114554/http://local.wasp.uwa.edu.au/~pbourke/texture_colour/perlin/

I think it describes exactly what you want with regards to spheres.

OTHER TIPS

You may also want to check out this article from 2004 on how to 'split' up a sphere into manageable parts.

http://www.gamedev.net/reference/articles/article2074.asp

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top