-5

我需要生成地形。你可能会说很简单,但如果你愿意的话,我需要创建生物群系(想不出另一个名字)和湖泊、树木和所有高度图。

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

4

1 回答 1

2

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

http://youtu.be/lBGPupldGz0

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

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

至于 perlin 噪声……这是一种程序技术,您可以使用 L3DT(甚至 paint.net)之类的工具将其烘焙到地图本身中,或者您可以在着色器中实时进行。太宽泛的问题。

我建议你查看 gamedev.net 论坛……那里肯定有很多关于地形的开放式问题。Stackoverflow 对于含糊的问题来说是一个糟糕的地方。查看本教程系列...它是用 XNA 编写的,但这些想法适用于任何语言...

http://www.riemers.net/eng/Tutorials/XNA/Csharp/Series1/Terrain_from_file.php

于 2013-05-21T04:25:19.310 回答