|
|
发表于 2003-12-30 14:35:00
|
显示全部楼层
Re:DirectX中 如何为一个模型设置透明贴图??
alpha test或者alpha blend。如果图片没有alpha通道,可以用CreateTextureFromFileEx()创建纹理。这样可以把颜色值为关键色的象素点的alpha值设为你指定的值(假设你指定为0x00000000)。
然后用alpha test:
pd3ddv->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE);
pd3ddv->SetRenderState(D3DRS_ALPHAREF,(DWORD)0x00000001);
pd3ddv->SetRenderState(D3DRS_ALPHAFUNC,D3DCMP_GREATEREQUAL);
就ok了,函数的具体意义请参照sdk。
用alpha blend也可以:
pd3ddv->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);
pd3ddv->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
pd3ddv->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
但是test比blend快。
如果贴图本身就有alpha通道,那就更容易了。
|
|