0

Introduction_to_3D_Game_Programming_with_Directx_11 から dx11 を学んでいます。msaa がなくても大丈夫です。有効にすると、.fx および C++ コードがうまく機能しなくなります。誰かがそれを経験し、この状況に対処する方法はありますか?

コードの前:

Texture2D gTexture1;
float4 BLEND_PS(VertexOut_SV pin) :SV_TARGET
{
    float4 texColor = float4(0.0f, 0.0f, 0.0f, 0.0f);
    texColor = gTexture1.Sample(SamAnisotropic, pin.Tex);
    return texColor;
}

msaa で作成したテクスチャを texture2D にバインドできないため、msaa を常に ON にしています。

コードの後:

Texture2DMS<float4> gTexture1;
float4 BLEND_PS(VertexOut_SV pin) :SV_TARGET
{
    float4 texColor = float4(0.0f, 0.0f, 0.0f, 0.0f);
    texColor = gTexture1.Load(int2(pin.Tex.x*1400, pin.Tex.y*900), 0);
    return texColor;
}

しかし、texColor は私が望む正しいピクセルではありません。msaa で SRV をサンプリングするにはどうすればよいですか? msaa のない UAV を msaa のある SRV に変換する方法は?

また、対応する hlsl コードを使用して C++ ゲーム コードで msaa を有効または無効にする方法を教えてください。互いに異なる hlsl を保持する必要がありますか?

4

1 に答える 1