You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DirectX 12渲染带纹理三角形显示黑色的问题及解决方法

带纹理三角形显示黑色的问题与解决

我尝试渲染带纹理的三角形,但结果显示为黑色三角形。已关闭背面剔除(Back-face culling),MVP投影功能可正常工作。

将片段着色器中采样纹理的代码替换为直接输出红色(outRGB = float4(1, 0, 0, 1);)时,三角形能正常显示为红色,但无法实现预期的纹理效果。

顶点着色器代码

#pragma vertex VSMain

cbuffer MatrixList : register(b0)
{
    float4x4 model;
    float4x4 view;
    float4x4 projection;
}

void VSMain(in float3 inPosition : POSITION, in float2 inUV : TEXCOORD,
            out float2 outUV : TEXCOORD, out float4 outPosition : SV_Position) : SV_Position
{
    outPosition = mul(projection, mul(view, mul(model, float4(inPosition.xzy, 1))));
    outUV = inUV;
}

片段着色器代码

#pragma fragment FSMain

Texture2D texture : register(t0);
SamplerState linearSampler : register(s0);

void FSMain(in float2 inUV : TEXCOORD,
        out float4 outRGB : SV_Target) : SV_Target
{
    outRGB = float4(texture.Sample(linearSampler, inUV).rgb, 1);
}

问题解决

将纹理资源视图格式从DXGI_FORMAT_R8G8B8A8_UINT修改为DXGI_FORMAT_R8G8B8A8_UNORM(与交换链格式一致)后,问题解决,三角形可以正常显示纹理。

内容的提问来源于stack exchange,提问作者Kalen Clark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:56:08