|
我初始化RGBA纹理时,先lock,逐行拷贝位图数据,然后unlock这样。
alpha混合设置应该也没问题
dev->SetRenderState(D3DRS_ALPHABLENDENABLE,1);
dev->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
dev->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
但是渲染结果总是有些本来是透明的区域没有透明显示。
用PhotoShop检查了一下RGBA位图,alpha通道是没有问题的。
问下造成这个问题的原因会是什么呢?
另,如果加上
dev->SetRenderState(D3DRS_ALPHATESTENABLE,1);
dev->SetRenderState(D3DRS_ALPHAREF,128);
dev->SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATER);
渲染效果似乎就正常了......... |
|