地形高度贴图 - C ++ / Vertex Shader具有不同的值

时间:2016-03-05 03:40:15

标签: c++ hlsl terrain mipmaps heightmap

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

Actualy tex2dlod是执行纹理mip maping(纹理细节)和纹理元素偏移的函数。但完全我不明白问题出在哪里?你可以更具体一点吗?

顺便说一句,整个函数至少只支持着色器模型3.0。