我正在使用DirectX10来模拟水面,现在我正在使用高度贴图,它是点(x,z)处高度(y)的2D数组。但要在屏幕上绘制它,我必须将其转换为网格或具有绘制三角形拓扑的索引。
但数据太大,无法手动完成。我有什么方法可以在屏幕上绘制它。我希望它很容易实现。如果DirectX10中包含了可以制作的功能,那么它对我来说是最好的。
答案 0 :(得分:2)
创建一个网格,格式化一个正方形网格(每个网格由两个三角形组成)并设置所有顶点 y = 0 。在顶点着色器中对高度图进行采样,并将存储在高度图中的值添加到顶点的 y 。
P.S:如果你想要它覆盖的区域太大,你应该看一下地形LOD技术(水应该是一样的。)
答案 1 :(得分:1)
我相信你可以制作一个网格。我怀疑你能为水面太大而不能“网格化”生成高度图。
你为什么看钻石广场?对于512x512高度图,您需要做的就是定义一组点,然后为它生成三角形。它非常简单。