1
我正在尝试将纹理图像应用于正交平面,以便它可以用作'U.I.装饰'。如何使用DirectX11着色器将纹理应用于正交平面
飞机由D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP格式的两个tri组成。当我尝试使用着色器渲染飞机时,它会以白色显示(或者如果我将混合状态设置为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;
}
当我将此着色器我目前渲染场景中的高度图,它工作正常,但它不能正常工作,上正交平面。
任何人都可以帮助我正确地将这种纹理应用到正交平面吗? (如果需要,我可以提供当前场景的截图)
你能提供您创建顶点和绘制代码?截图也会很有趣:) – Gnietschow