我需要生成地形。你可能会说很容易,但如果你愿意(不能想到另一个名字)和湖泊,树木以及所有高度地图,我需要创建生物群落。
所以我真的不知道如何使用高度图甚至是perlin噪音。如果你能帮助我的话。我需要3D和2D帮助。如果你能解释它背后的数学,真的能帮助我理解这一点。
答案 0 :(得分:2)
这是一个广泛的问题,几乎不可能回答。关于地形生成有很多不同的方法,也有很多方法可以实现它们。根据您所针对的图形硬件和您的需求,您可以使用可编程着色器或旧的固定功能管道来实现。它可以在DirectX或OpenGL中实现。我假设这大致是你要找的......
这是通过所谓的高度图完成的。我拍了一张黑白图像,黑色斑点代表低海拔,较亮的斑点代表高。然后我将图像转换为单个颜色通道(在我的情况下为红色,认为它与您选择的无关)。我开始制作一个三角形网格。我浏览了图像并使用了0-255范围内的像素差来改变'y'顶点位置。
遇到的最大问题是使法线正确,以便照明工作。使用高度图的另一个问题是它们在大地形下无法很好地扩展...图像大小快速失控。
至于perlin噪音......这是一种程序技术,你可以使用像L3DT(甚至paint.net)这样的工具烘焙到地图本身,或者你可以在着色器中实时进行。问题太广了。
我建议你查看gamedev.net论坛......那里肯定会有很多关于地形的开放式问题。 Stackoverflow是模糊问题的一个可怕的地方。查看本教程系列...它是用XNA编写的,但这些想法适用于任何语言......
http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/Terrain_from_file.php