我目前正在开发一个OpenGL程序行星发生器。我希望将它用于太空RPG,这将不允许玩家下到行星表面,所以我忽略了与ROAM相关的任何事情。在momement我正在绘制一个带有VBO的立方体并映射到球体上,如图here所示。
我熟悉大多数分形高度图生成技术,并且已经实现了我自己的中点位移版本(在我知道的情况下这不是很有用)。
我的问题是,在程序上生成高度图的最佳方法是什么。我看了libnoise,它允许我制作tilable高度图/纹理,但据我所知,我需要生成一个像:
留下明显的瓦片。
有人可以告诉我最佳路线吗?
非常感谢任何意见。
谢谢,
亨利。
答案 0 :(得分: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/
我认为它完全描述了你对球体的要求。
答案 1 :(得分:1)
您可能还想查看2004年的这篇文章,了解如何将球体“拆分”为可管理的部分。