-1

我目前正在尝试使用虚幻引擎蓝图中的单纯形噪声插件生成 3D 行星地图,就像《无人深空》所做的那样。如何为各个行星生成坐标?

我已经尝试创建 3 个 for 循环并获取特定坐标上的噪声值。当噪声值超过阈值时,就会生成一个行星。这很好用,但是资源非常密集,并且会将它们分组为非随机模式。有没有更好的方法来使用噪声获得一个/多个坐标?就像输入阈值并输出坐标的反向噪声函数一样?或者也许是不同的方式?

非常感谢

4

1 回答 1

0

没有这样的事情可以直接从噪声函数中获取顶点。噪声函数产生单个噪声值而不是顶点。

No Man's Sky 正在使用体素来生成关卡。

体素基本上是统一的 3 维网格中的单点值。

例如,在我的世界中,每个立方体都是一个体素。值为 1 的体素是表面,值为 0 的每个体素是空气。

它们使用多层噪声函数生成 0.0-1.0 之间的浮点值。事实上,它是一个非常复杂的系统,并且能够以足够快的速度运行游戏是一项相当大的成就。

假设 0.0 表示没有表面,1.0 表示固体表面。

然后他们从体素场中提取多边形和顶点,使用诸如表面网或行进立方体之类的东西。我会研究其中一种算法。关于这个主题有很多资源。

但是,与无人天空中的细节和规模相比,你们目前在这个主题上的所有技术都相当缓慢。

于 2019-07-16T10:58:56.173 回答