如何创建大型地形/景观

时间:2012-04-21 22:49:21

标签: c++ opengl blender

我在徘徊如何在opengl中创建一个大型地形。我的第一个想法是使用搅拌机并创建一个平面,提供它,创建地形并将其导出为.obj。在看了一下搅拌机之后,我认为这应该是可能的,但很快我就意识到我的六核+ 8GB RAM不能保持subdeviding以支持非常大的地形所需的精度。

所以我的问题是,最好的方法是什么?

  • 也许正在尝试像cinema4d这样的3D渲染软件?
  • 在搅拌机中逐步创建地形并将其放在一起? (维持段之间的比例可能有问题)
  • 我不知道的一些方法?

我可以使用随机生成算法创建一个大型景观,但我不想要随机景观我需要一个具有许多细节的自定义景观。 (高度,深度,路径)

修改

我要做的是:

  • 创建3个不同的高度图(1.洞穴地面(+可能是墙高的一半),2。洞穴天花板倒置高度图,3。标准表面高度图)
  • 合并所有三个高度图
  • 将它们保存为obj文件或任何所需格式
  • 在3D编辑工具中进行一些微调(如果它太大而无法处理我将使用LOD算法创建一个可以编辑一些小东西的应用程序)
  • 再次保存它,无论需要什么(可能做一些优化)
  • 快乐

EDIT2 我正在创建的地图非常大,以至于Photoshop正在使用我所有的8GB Ram,所以我必须将所有3个高度图分成较小的部分,并在地图上移动时动态组装它们。

2 个答案:

答案 0 :(得分:1)

我相信你只想制作高度图。制作图像越大,它就越伸展。也许如果你让接缝匹配,你就可以对它进行平铺,但如果你想要一个无尽的地形,那么生成地形可能是值得的。

要制作高度贴图,您将制作一个图像,其中每个像素代表一个设定的高度(您实际上不必将其表示为图像,但它使其非常容易可视化),这将成为一个灰色 - 缩放的颜色。然后,您可以将此值缩放到所需的最大高度(精度取决于图像的位深度)。

如果您想使用OpenGL执行此操作,您可以创建一个界面,点击点以提高特定点或区域的高度。

获得此图像后,渲染图像并不太难,因为X和Y坐标是为您的空间设置的,图像将为您提供Z坐标。

这将有不允许洞穴和类似特征的缺点(因为给出一个点只有一个高度)。如果您需要这些功能,可能会添加网格或第二个

答案 1 :(得分:0)

如果您尝试存储的数据多于内存中的数据,则需要将大部分数据保留在磁盘上。将地图划分为多个段,根据需要加载较近的段是技术。许多组通过四叉树访问地图段,这​​通常不需要太多的转换就可以到达“附近”的部分。

变体包括创建较大分辨率版本的较大块地图以用于渲染长视图,因此您将保留整个地图的真正低分辨率版本,这是此Valley Valley的中等版本,以及我正在看的这树林的高分辨率副本。

这是复杂的事情,这就是为什么没有人真正把整个事情放在一起,直到关于GTA:San Andreas或Oblivion。