我有一个2D纹理,格式为DXGI_FORMAT_R32_FLOAT。在我的像素着色器中,我从中采样:
float sample = texture.Sample(sampler, coordinates);
这导致以下编译器警告:
警告X3206:向量类型的隐式截断
我对此感到困惑。不应该Sample返回单个通道,因此是标量值,而不是向量?
我正在使用着色器模型4级9_1。
答案 0 :(得分:3)
将纹理声明为具有一个通道,或指定所需的通道。没有<float>
位,它会假设它是一个4通道纹理,因此Sample将返回一个float4。
Texture2D<float> texture;
或
float sample = texture.Sample(sampler, coordinates).r;