使用PNG图片,怎么让D3D处理他的透明度信息?
一般情况下,如果什么都不处理,那么png这个透明度将无法发挥作用,程序会当白色处理。
如果不用关键色,也不修改顶点颜色,那要怎么处理,才能使程序正确处理透明度???
[解决办法]
常用的一种设置是这样的
HLSL:
AlphaBlendEnable = true;
SrcBlend=SrcAlpha;
DestBlend=InvSrcAlpha;
固定流水线:
device->SetRenderState(D3DRS_ALPHABLENDENABLE, true);
device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);