地形高度贴图 - C++/顶点着色器具有不同的值

Terrain Height Map - C++/Vertex Shader has different values

本文关键字:顶点 高度 C++      更新时间:2023-10-16

我一直在地形上工作,不得不完全停止。我正在用C++,DirectX9和HLSL编程来创建地形,但我也使用BMP格式的高度图。我正在从C++侧和着色器侧的高度贴图加载信息。在C++端,我使用 D3DXCreateTextureFromFile 和表面 (D3DXSaveSurfaceToFile) 来加载信息,而在着色器方面,我使用 tex2Dlod 加载地形顶点的信息。这两个从高度图中获取不同的值。经过进一步的研究,我发现tex2Drod函数利用mip映射(仍然不能完全理解这些)来加载信息。

有谁知道如何让两个数字匹配?如果您需要更多信息(数字,图片或其他任何信息),请告诉我!

谢谢!

第一个问题是你为什么坚持DX9是什么原因? 我至少会理解DX10。你能给我看HLSL代码吗?

tex2Dlod 是纹理采样函数,它需要两个参数。1. 采样器2D 2.float4(纹理坐标)。

实际上,tex2dlod 是执行纹理 mip 映射(纹理细节)和纹素偏移的功能。 但我完全不明白问题出在哪里? 你能更具体一点吗?

顺便说一下,整个函数至少仅在着色器模型 3.0 中受支持。