我目前正在开发一个OpenGL过程行星生成器。我希望将它用于太空RPG,不允许玩家进入行星表面,所以我忽略了任何与漫游相关的东西。此时,我正在使用VBO绘制一个立方体,并将其映射到一个球体上,如here所示。
我熟悉大多数分形高度图生成技术,并且已经实现了我自己版本的中点位移(我知道在这种情况下没有那么有用)。
我的问题是,什么是程序化生成高度图的最佳方法。我看过libnoise,它允许我制作可倾斜的高度贴图/纹理,但据我所知,我需要生成一个网络,如下所示:
让瓦片看起来很明显。
有人能建议我走哪条最好的路线吗?
任何意见都将非常感谢。
谢谢,
亨利。
发布于 2010-11-03 07:12:46
看起来您理解了生成一个平坦、无缝的曲面,然后尝试将其映射到球体上的问题。
使用3D噪波功能如何?3D噪声函数接受3个坐标而不是2个坐标作为其输入,因此设想一个充满生成数字的3D数组(而不是2D数组)。因此,一旦有了3D噪波函数,就可以生成2D纹理,而不是为每个像素使用2D坐标,而是使用该像素在球体上所在位置的3D坐标。(我希望这个令人费解的句子有意义!)
看一下这个关于Perlin noise的页面:https://web.archive.org/web/20120829114554/http://local.wasp.uwa.edu.au/~pbourke/texture_colour/perlin/
我认为它准确地描述了你想要的关于球体的东西。
发布于 2010-11-28 21:06:25
您可能还想查看2004年的这篇文章,该文章介绍了如何将一个球体“分割”成可管理的部分。
http://www.gamedev.net/reference/articles/article2074.asp
https://stackoverflow.com/questions/4082832
复制相似问题