我正在尝试实现一个简单的效果:在屏幕上绘制具有透明背景的图像。我正在使用 SpriteBatches 来执行此操作。
这是我创建混合状态的代码:
D3D11_BLEND_DESC descBlend;
ZeroMemory(&descBlend, sizeof(descBlend));
descBlend.RenderTarget[0].BlendEnable = true;
descBlend.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD;
descBlend.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD;
descBlend.RenderTarget[0].DestBlend = D3D11_BLEND_INV_SRC_ALPHA;
descBlend.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_INV_SRC_ALPHA;
descBlend.RenderTarget[0].SrcBlend = D3D11_BLEND_SRC_ALPHA;
descBlend.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE;
m_d3dDevice->CreateBlendState(&descBlend, &m_Blend);
我开始绘制我的精灵:
m_SpriteBatch->Begin(SpriteSortMode_BackToFront, m_Blend);
屏幕上什么都没有!我错过了什么吗?
我确定我的图像是正确的,因为当我在未启用混合的情况下进行绘制时,除了透明部分变为纯白色之外,所有内容都会显示出来。
任何帮助,将不胜感激。