Javascript 等轴测柏林噪声中的固定高度问题

Javascript 等轴测柏林噪声中的固定高度问题,javascript,canvas,perlin-noise,Javascript,Canvas,Perlin Noise,我一直在使用柏林噪波生成基于瓷砖的等距景观。到目前为止,我一直在使用噪波值作为瓷砖本身的高度贴图:Math.floor(noise*10),基本上。这将生成非常好看的线性贴图。然而,我发现“山”看起来很无聊,所以我应用了一个指数:Math.floor(Math.pow((noise/4),2.3))。这会将较高的值向上推,从而生成附加的图像 这些高度值是存储在二维网格中的高度值,为我提供了将地图绘制到屏幕所需的x、y和z 缺点有点明显:我的山上有一些缺口需要填补。我只是不确定从哪里开始,因为我不

我一直在使用柏林噪波生成基于瓷砖的等距景观。到目前为止,我一直在使用噪波值作为瓷砖本身的高度贴图:
Math.floor(noise*10)
,基本上。这将生成非常好看的线性贴图。然而,我发现“山”看起来很无聊,所以我应用了一个指数:
Math.floor(Math.pow((noise/4),2.3))
。这会将较高的值向上推,从而生成附加的图像

这些高度值是存储在二维网格中的高度值,为我提供了将地图绘制到屏幕所需的
x
y
z

缺点有点明显:我的山上有一些缺口需要填补。我只是不确定从哪里开始,因为我不能再将这些信息存储在二维网格中。我想我可以用“更长”的瓷砖作弊,但那有点蹩脚。有什么建议吗

如果你需要更多的信息,我很乐意解释。也许我找错人了


在绘制背面较远的第一块瓷砖之前,请先查看左侧和右侧更靠近观看者的两块相邻瓷砖。获取它们的最低高度,并检查该高度是否低于背面瓷砖减去一个高度。(因为这会造成一个缺口)。现在,您可以开始在后面的桩上绘制,从这个“低高度”开始,并在其上堆叠瓷砖,直到达到所需的高度。然后,您可以使用相同的算法绘制下一个更靠近查看器的平铺


编辑:但我只是想知道,如果有这么多堆叠的瓷砖,可能看起来会很尴尬。也许最好将土层拉伸到“低高度”。

因此,你的建议是回填土瓦,直到缝隙消失。我可能会求助于此,但我仍然希望我能以某种方式将其转化为3d网格。如果有一天我想用实际的3D绘制它,这会变得更容易是的,这就是我建议的,实际上它已经以某种方式呈现3D了!;)好吧,这更像是3d的幻觉,但我要说:)只是数据已经是3d的:)。顺便说一句,我真的很喜欢美学。用这种方式展示黑白图像也很有趣。这里还有一些其他的,它实际上在移动。。。