如何创建大型地形/景观

How to create large terrain/landscape

本文关键字:景观 大型 何创建 创建      更新时间:2023-10-16

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

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

  • 也许尝试另一种3D渲染软件,如cinema4d?
  • 在搅拌机中逐步创建地形,稍后将其组合在一起?(保持段之间的比率可能有问题)
  • 一些我不知道的方法?

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

编辑

我要做的是:

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

编辑2我正在创建的地图太大了,以至于 Photoshop 使用了我所有的 8GB RAM,所以我必须将所有 3 个高度贴图分成较小的部分,并在地图上移动时即时组装它们。

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

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

如果你想用OpenGL做到这一点,你可以创建一个界面,你可以在其中单击点以提高特定点或区域的高度。

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

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

如果您尝试存储的数据超过内存容量,则需要将大部分数据保存在磁盘上。将地图划分为多个段,根据需要加载较近的段,是该技术。许多组通过四叉树访问地图段,这些四叉树通常不需要太多的遍历即可到达"附近"部分。

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

这是复杂的事情,这就是为什么没有人真正把整个事情放在一起,直到关于GTA:圣安地列斯或遗忘。