开发者

Procedural Planets, Heightmaps and textures

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 displ开发者_JS百科acement(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:

Procedural Planets, Heightmaps and textures

Leaving the tiling obvious.

Could anyone advise me on the best route to take?

Any input would be much appreciated.

Thanks,

Henry.


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.


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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜