如何在DX 9中仅对纹理的某些部分进行alphableble?
例如,Photoshop中的图层(或支持图层的任何其他照片编辑程序) 你可以在一个图层(背景填充alpha)中绘制一些东西,然后将图层放在原始图像上(在屏幕上绘制纹理),这将导致原始图像+仅在图层中绘制的内容。
是的,我知道我的英语不是很“闪亮”。
非常感谢,提前!
P.S。我的纹理背景填充了alpha。
答案 0 :(得分:0)
所以你在你希望叠加的纹理上设置了alpha,使得0是透明的(即显示下面是什么),1是不透明的(即显示叠加纹理)?
如果是这样,那么您只需要设置一个简单的混合模式:
pDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
pDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
确保先画背景!另请注意,0到1之间的值表示背景和叠加纹理之间的线性插值。