|
|
今天主要是为了解决这个问题,结果花了半天在纹理上(见另外一帖)
我想通过是用TGA的图片来达到去底色(比如黑色)同时可以实现ALPHA混合的效果,但是不尽人意的是我始终只能2者取一,不过以前曾试成功过一次,但是没有搞的很明白,这次算是特地想搞搞清除,
前面设定了相关的alpha设置代码。。。
关于我的渲染部分的代码:
// -- 纹理 -- //
m_pd3dDevice->SetTexture( 0, m_pTexture );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_ADD);
以下部分是目前的办法,就是如果不要ALPHA渲染的话就跳过
// -- alpha渲染 -- //
if ( sprite->m_blend )
{
m_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
m_pd3dDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE);
}
// -- 物体反射效果 -- //
m_pd3dDevice->SetMaterial ( &m_material ) ; 用了灯光所以添加这个语句
看得出我目前只能是2者选一啊,或者哪里有问题,或者有没有更好地做法呢?
谢谢帮忙^^ |
|