相当基本:如果我在Alpha中用0.2f绘制两个多边形(线条看起来很三角形,但它们是三角形的三角形),我希望它们重叠的地方更亮。
目前,无论我尝试过哪种混合操作,结果都有所不同,但我无法做到这一点。我已经确认它们都使用0.2f绘制,我只是希望它们重叠的地方会变得“更亮”]
我以为这两个人应该做类似的事情,但无济于事。我知道blendstate受到尊重(如果更改操作会产生不同的结果),但是我错过了其他设置或此处的src / dst / ops错误。
const static struct D3D11_RENDER_TARGET_BLEND_DESC BlendAlpha =
{
/* BlendEnable */ TRUE,
/* SrcBlend */ D3D11_BLEND_SRC_ALPHA,
/* DestBlend */ D3D11_BLEND_INV_SRC_ALPHA,
/* BlendOp */ D3D11_BLEND_OP_ADD,
/* SrcBlendAlpha */ D3D11_BLEND_ONE,
/* DestBlendAlpha */ D3D11_BLEND_ONE,
/* BlendOpAlpha */ D3D11_BLEND_OP_ADD,
/* RenderTargetWriteMask */ D3D11_COLOR_WRITE_ENABLE_ALL
};
或
const static struct D3D11_RENDER_TARGET_BLEND_DESC BlendAlphaAdditive =
{
/* BlendEnable */ TRUE,
/* SrcBlend */ D3D11_BLEND_SRC_ALPHA,
/* DestBlend */ D3D11_BLEND_ONE,
/* BlendOp */ D3D11_BLEND_OP_ADD,
/* SrcBlendAlpha */ D3D11_BLEND_ONE,
/* DestBlendAlpha */ D3D11_BLEND_ONE,
/* BlendOpAlpha */ D3D11_BLEND_OP_ADD,
/* RenderTargetWriteMask */ D3D11_COLOR_WRITE_ENABLE_ALL
};
但是结果不是我想要的:
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9lYThqYi5qcGcifQ==” alt =“在此处输入图像描述”>
结果是深度模板阻止了顶部像素均匀绘制到后缓冲区;一旦禁用深度模具,我就可以继续操作。