DirectX 11 Blend - PullRequest
       4

DirectX 11 Blend

0 голосов
/ 22 марта 2019

Я использую смеси, но я не уверен, удалит ли этот код цвет всех текстур в прозрачной области или перекрасит цвет фона.

введите описание изображения здесь

Как мне это решить?

    {
    D3D11_BLEND_DESC desc;
    ZeroMemory(&desc, sizeof(D3D11_BLEND_DESC));
    desc.AlphaToCoverageEnable = false;
    desc.IndependentBlendEnable = false;
    desc.RenderTarget[0].BlendEnable = true;

    desc.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA;
    desc.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA;
    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;

    HRESULT hr = graphics->GetDevice()->CreateBlendState(&desc, &blendState);
    assert(SUCCEEDED(hr));

    graphics->GetDeviceContext()->OMSetBlendState(blendState, nullptr, 0xff);
}
...