我正在研究Transvoxel的一个实现,它工作得很好,但我不能继续处理噪声。现在,我正在使用perlin noise生成一个二维高度图,并使用该高度图设置单元格值,但我不知道如何为这些单元格生成值。实际上它们必须在-127和128之间,并且它们必须平滑地增加和减少,但我不能生成这些值。
编辑:
我不再使用3d噪波,而是尝试使用2d噪波。现在,我可以三角测量密度场,因为我使用行进立方体和跨体素已经有半年了。但我唯一不知道的是,如果我生成一个2维的高度图来拥有像山脉这样的地形特征,那么我就不知道我必须使用什么密度。我试着简单地给出所有的实体-127和非实体的127,我还试着在给定的(x,z)处获得一个高度映射值,然后将y添加到它上面,比如:(x,0,z) = 42,(x,1,z) = 43,(x,2,z) = 44等等……但这些变化产生了如下图所示的块状地形:

我该怎么做才能让它顺畅呢?顶点位置是带有非整数值的浮点数,所以这应该不是问题。
发布于 2017-09-11 11:12:41
Transvoxel是Marching Cubes的一个更复杂的实现,我建议你现在就忘记Transvoxel,先研究Marching Cubes。
总而言之,行进立方体接收从0到1的噪波,其中0表示无地形,1表示地形。你只需要在你计划有地形的地方写1。例如,在地图的所有X和Z位置上,生成一个值为1的小地图,其中y< 3。你应该得到一个平坦的地形。
试试看!=)
https://stackoverflow.com/questions/45920021
复制相似问题