我目前正在尝试将纹理图像应用于正交平面,以便它可以用作一种“UI 装饰”。
该平面由 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP 格式的两个 tri's 组成。当我尝试使用着色器渲染平面时,它只是显示为白色(如果我将混合状态设置为 true,则它是不可见的)。我相信这是因为我只在正交平面上采样纹理的四个角,因为我只在顶点着色器中采样。
这是我的着色器中的当前代码:
void VSMain( const VSInput input, out PSInput output) {
output.pos = input.pos;
output.pos = mul( output.pos, g_WVP);
float2 tex_pos;
float4 Tex;
tex_pos.x = ( input.pos.x + 512) / 1024;
tex_pos.y = (-input.pos.z + 512) / 1024;
Tex = g_materialMap.SampleLevel( g_sampler, tex_pos, 0);
output.colour = Tex;
}
void PSMain( const PSInput input, out PSOutput output) {
output.colour = input.colour;
}
当我将此着色器应用于当前在场景中渲染的高度图时,它可以正常工作,但是在正交平面上不能正常工作。
谁能帮我把这个纹理正确地应用到正交平面上?(如果需要,我可以提供当前场景的截图)