Java 高级地形生成

Java 高级地形生成,java,lwjgl,perlin-noise,Java,Lwjgl,Perlin Noise,我需要生成地形。你可能会说,这很简单,但如果你愿意(想不出另一个名字),我需要创造生物群落,湖泊,树木,以及高度图上的所有东西 所以我真的不知道如何使用高度图,甚至柏林噪音。如果你能帮我的话。我需要3D和2D帮助。如果你能解释它背后的数学原理,真的能帮我永远理解这一点。这是一个如此宽泛的问题,几乎不可能回答。地形生成有很多不同的方法,也有很多实现它们的方法。根据您的目标图形硬件和您的需要,您可以使用可编程着色器或旧的固定功能管道来完成。它可以在DirectX或OpenGL中实现。我想这大概就是你

我需要生成地形。你可能会说,这很简单,但如果你愿意(想不出另一个名字),我需要创造生物群落,湖泊,树木,以及高度图上的所有东西


所以我真的不知道如何使用高度图,甚至柏林噪音。如果你能帮我的话。我需要3D和2D帮助。如果你能解释它背后的数学原理,真的能帮我永远理解这一点。

这是一个如此宽泛的问题,几乎不可能回答。地形生成有很多不同的方法,也有很多实现它们的方法。根据您的目标图形硬件和您的需要,您可以使用可编程着色器或旧的固定功能管道来完成。它可以在DirectX或OpenGL中实现。我想这大概就是你想要的

这是通过所谓的高度图完成的。我拍了一张黑白照片,深色点代表低海拔,浅色点代表高海拔。然后我将图像转换为单一颜色通道(在我的例子中是红色,认为您选择的颜色与此无关)。我从制作三角形网格开始。我浏览了一下图像,并使用0-255范围内的像素差来更改“y”顶点位置

遇到的最大问题是获得正确的法线,以便照明工作。使用高度图的另一个问题是,它们不能很好地与大地形进行缩放…图像大小很快就会失控

至于柏林噪声…这是一种程序技术,你可以使用L3DT(甚至是paint.net)之类的工具将其烘焙到贴图本身中,也可以在着色器中实时烘焙。这个问题太宽泛了

我建议你去gamedev.net论坛看看……那里肯定有很多关于地形的开放式问题。Stackoverflow是一个很难回答模糊问题的地方。检查本教程系列…它是用XNA编写的,但其思想适用于任何语言


请不要在没有解释的情况下投票否决……是的,我已经探讨了其他选择。我需要有人给我解释。请一个家庭教师给你解释。