0

我正在开发一个基于着色器的地形。使用 VTF 获取顶点着色器中的高度数据。我的问题是当我在顶点着色器中对高度图进行采样时,返回的值总是为零。

Texture2D texture;
SamplerState sampleType;
float height = texture.SampleLevel(sampleType, float4(input.tex, 0, 0), 0);

使用 D3DX11CreateShaderResourceViewFromFile(device, heightmap, NULL, NULL, &texture) 函数从 BMP 文件 (256x256x24bit) 加载纹理,并使用 deviceContext->PSSetShaderResources(0, 1, &texture) 传递给顶点着色器。功能级别为 D3D_FEATURE_LEVEL_10_0,着色器配置文件为 vs_4_0。

4

1 回答 1

0

您正在调用 deviceContext->PSSetShaderResources(0, 1, &texture),

这意味着您将纹理传递给像素着色器。您需要将纹理和采样器绑定到顶点着色器,使用

VSSetSamplersVSSetShaderResources

反而。

于 2013-10-01T08:36:09.680 回答