0

我正在使用 DirectX10 模拟水面,我现在使用高度图,它是点 (x,z) 处高度 (y) 的二维数组。但是要把它画在屏幕上,我必须把它变成一个网格或者有一个索引来绘制三角形拓扑。

但是数据太大,无法手动完成。有什么方法可以让我在屏幕上绘制它。我希望它很容易实现。如果 DirectX10 中包含可以实现的功能,那对我来说是最好的。

4

2 回答 2

2

创建一个网格,格式化一个正方形网格(每个由两个三角形组成)并设置所有顶点y = 0。在顶点着色器中对高度图进行采样,并将高度图中存储的值添加到顶点的 y 上

这可能会帮助你。

PS:如果你想要覆盖的区域太大,你应该看看地形 LOD 技术(应该同样适用于水)。

于 2011-09-01T12:22:48.013 回答
1

我相信你可以用它做一个网格。我怀疑您是否可以为太大而无法“网格化”的水面生成高度图。

你为什么看钻石广场。对于 512x512 高度图,您需要做的就是定义一组点,然后为其生成三角形。它真的很简单。

于 2011-08-30T21:30:23.937 回答