我有一个以DXGI_FORMAT_R32_FLOAT格式化的2D纹理。在我的像素着色器中,我这样对它进行采样:
float sample = texture.Sample(sampler, coordinates);
这会导致以下编译器警告:
我对此感到困惑。根据示例,应该返回单个通道,因此是标量值,而不是向量吧?警告 X3206: 向量类型的隐式截断
我使用的着色器模型为4级9_1。
要么将您的纹理声明为单通道,要么指定您想要的通道。没有 <float>
部分,它会假设它是一个四通道纹理,因此 Sample 将返回 float4。
Texture2D<float> texture;
或者
float sample = texture.Sample(sampler, coordinates).r;