0

我正在研究 Transvoxel 的实现,它工作正常,但我无法继续处理噪音。现在我正在使用 perlin 噪声生成一个 2d 高度图,并使用我正在设置单元格值的高度图,但我不知道如何为单元格生成值。实际上它们必须在 -127 和 128 之间,并且它们必须平滑地增加和减少,但我无法生成这些值。

编辑:

我停止使用 3d 噪声,我正在尝试用 2d 噪声做一些事情。现在,我可以对密度场进行三角测量,因为我使用行进立方体和体素大约半年了。但我唯一不知道的是,如果我生成一个 2d 高度图以具有像山脉这样的地形特征,那么我不知道我必须使用什么密度。我尝试只是简单地给所有实心-127和所有非实心127,我还尝试在给定的(x,z)处获取高度图值,然后将y添加到它,例如:(x,0,z)= 42, (x, 1, z) = 43, (x, 2, z) = 44 等等......但是这些变化会产生如下图所示的块状地形:

在此处输入图像描述

我应该怎么做才能使它顺利?顶点位置是具有非整数值的浮点数,因此应该不是问题。

4

1 回答 1

0

Transvoxel 是 Marching Cubes 的更复杂的实现,我建议你暂时忘记 Transvoxel,先学习 Marching Cubes。

综上所述,Marching cubes 接收到的噪声从 0 到 1,其中 0 为无地形,1 为地形。您只需要在计划有地形的地方写 1 即可。例如,在地图的所有 X 和 Z 位置上生成一个 y < 3 的 1 值小地图。你应该得到一个平坦的地形。

试用!=)

于 2017-09-11T03:12:41.350 回答