DirectX11 でテキストを他のオブジェクトの上にレンダリングしているときに、奇妙な結果が得られました。各キャラクターは黒背景(マイクリアカラー)となります。テキストが背景に直接レンダリングされる場合は、すべて問題ありません。imgui lib を使用してレンダリングしています。これは、ブレンディングの設定が間違っていることが原因だと思います-これらは私の設定です:
D3D11_BLEND_DESC desc;
desc.AlphaToCoverageEnable = false;
desc.IndependentBlendEnable = false;
desc.RenderTarget[0].BlendEnable = false;
desc.RenderTarget[0].SrcBlend = D3D11_BLEND_ONE;
desc.RenderTarget[0].DestBlend = D3D11_BLEND_ZERO;
desc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD;
desc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE;
desc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ZERO;
desc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD;
desc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
これは問題を示すイメージです:
更新 #1:
これは、文字列を描画するために使用する方法です:
私のクリアカラーは:
ImVec4 clearColor = ImVec4(0.f, 0.f, 0.f, 0.f);
ErnieDingo の設定により、次の結果が得られます 。 良い点: 各キャラクターの周りのボックスがなくなりました。悪い点: テキストが非常にぼやけている/不鮮明なテキストは、特にテキストが暗い背景/背景なしでレンダリングされる場合に発生します。
更新 #2: この画像は問題を簡単に示しているようです:正方形の重なっている部分は黄色で、上の部分のように緑色ではありません。最初の画像は、フォントの透明な背景のみが考慮されていることも示しており、各文字の後ろに奇妙なバーが表示されています。