1

我目前正在开发一个 OpenGL 程序行星生成器。我希望将它用于太空 RPG,不会让玩家下到行星表面,所以我忽略了任何与 ROAM 相关的内容。目前,我正在绘制一个带有 VBO 的立方体并映射到一个球体上,如此处所示

我熟悉大多数分形高度图生成技术,并且已经实现了我自己的中点位移版本(我知道在这种情况下没那么有用)。

我的问题是,程序生成高度图的最佳方法是什么。我查看了libnoise,它允许我制作可平铺的高度图/纹理,但据我所知,我需要生成一个像这样的网络:

这

让瓷砖明显。

谁能告诉我最好的路线?

任何输入将不胜感激。

谢谢,

亨利。

4

2 回答 2

3

看起来您理解生成平坦、无缝表面然后尝试将其映射到球体上的问题。

改用 3D 噪声函数怎么样?3D 噪声函数将 3 个坐标而不是 2 作为其输入,因此想象一个充满生成数字的 3D 数组(而不是 2D 数组)。因此,一旦有了 3D 噪声函数,就可以生成 2D 纹理,但不是为每个像素使用 2D 坐标,而是使用该像素在球体上的位置的 3D 坐标。(我希望这个复杂的句子是有道理的!)

看看这个关于 Perlin 噪声的页面的中途:https ://web.archive.org/web/20120829114554/http://local.wasp.uwa.edu.au/~pbourke/texture_colour/perlin/

我认为它准确地描述了你想要的关于球体的东西。

于 2010-11-02T23:12:45.763 回答
1

您可能还想查看 2004 年的这篇文章,了解如何将球体“拆分”为可管理的部分。

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

于 2010-11-28T13:06:25.370 回答