行进立方体地形

在过去一周里,我一直在研究Marching Cubesalgorithm。 我希望将它用于地形,因为它可以造成地形的破坏。 在查看源代码并阅读了许多文章之后,我决定尝试自己编译一些代码,并尝试制作地形。 但是,这让我很头疼,似乎也找不到有关如何做的好资源。

http://img.ufgame.com/c%2B%2B/BbvJR.png

这是从这里find的例子 – http://www.angelfire.com/linux/myp/MC/

相关的源代码可以在网站上find。

我将源代码添加到我的项目中,并将所有代码转换为与OpenGL 3.2一起使用。 但是,我不想在我的最终项目中使用这个代码。 (这只是我能理解的)。 我无法理解代码。 我觉得我现在理解这个algorithm,但是我似乎无法理解这个对象是如何形成的。

我怎样才能改变这个对象来创建地形? 互联网上有更好的资源吗? 提前致谢。

行进立方体是一种隐式表面多边形化algorithm,即由f(x,y,z)= 0forms的方程定义的algorithm。您可以评估任何你喜欢的函数f(x,y,z),algorithm试图使由函数为零的点形成的曲面的多边形模型。

我没有看过源代码,但是从屏幕截图看,testing对象看起来像一个元球 ,这是一个常用的游动立方体应用程序。 你也许可以雕刻你的地形从元球。

另一种可能更适合地形的方法是使用像柏林噪声这样的噪声函数。 3D噪声本身只会产生3D斑点,但为了使它更像地形,可以使用2D噪声并设置f(x,y,z)= noise(x,y) – z。

您也可以将基于噪音的地形与元球相结合,只需将它们的function加在一起即可。 因此,你可以使用元球来增加额外的地形,或负重元球,以掏空洞穴或摧毁地形。