我正在尝试实现基于GPU的几何剪裁映射,并且在将一个简单的高度图应用到我的地形时遇到了问题。对于高度图,我使用了一个表面格式为“single”的简单纹理。我从Catalinz's XNA blog中获取了这个纹理。
我想做的事情就是从顶点世界坐标中获取单个浮点值,并将该值应用于顶点的Y值。我通过着色器应用高度图,因为没有固定的网格可以在代码中应用它。到目前为止,我尝试使用了
我想做的事情就是从顶点世界坐标中获取单个浮点值,并将该值应用于顶点的Y值。我通过着色器应用高度图,因为没有固定的网格可以在代码中应用它。到目前为止,我尝试使用了
tex2Dlod
函数,但似乎没有输出或输出为0。Direct X顶点着色器的代码如下:float4 worldPos = mul(float4(pos.x,0.0f,pos.y, 1.0f), worldMatrix);
float elevation = tex2Dlod(HeightmapSampler, float4(worldPos.x, worldPos.z,0,0));
worldPos.y = elevation * 128;
这里使用的是高度图纹理的点对称采样器 HeightmapSampler
。以下是输出结果,实际上没有获得任何高程信息:
这是我正在使用的高度图: