首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

DX多纹理有关问题

2012-02-10 
DX多纹理问题//打开Alpah测试m_pDevice-SetRenderState(D3DRS_ALPHABLENDENABLE,true)//设置透明度来源

DX多纹理问题
//打开Alpah测试
m_pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,true);
//设置透明度来源 ---由纹理得到alpha值
m_pDevice->SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_TEXTURE);
m_pDevice->SetTextureStageState(1,D3DTSS_ALPHAOP,D3DTOP_SELECTARG1);

//透明度设置
m_pDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
m_pDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);

怎么理解这几句话,以前没看懂现在还是没看懂,大家帮忙解答一下.


[解决办法]
不是已注释了吗~~~
第一句先设置渲染打开AlphaBlending
下面取Alpha做Blending, 注意操作完后再设置关闭AlphaBlending
加上
//关闭Alpah测试 
m_pDevice-> SetRenderState(D3DRS_ALPHABLENDENABLE,FALSE); 

[解决办法]
m_pDevice-> SetRenderState(D3DRS_ALPHABLENDENABLE,true); //打开Alpah测试

//设置透明度来源 ---由纹理得到alpha值 

m_pDevice-> SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_TEXTURE); // 设置渲染阶段0输出的Alpha部分使用输入的纹理
m_pDevice-> SetTextureStageState(1,D3DTSS_ALPHAOP,D3DTOP_SELECTARG1); // 设置渲染阶段1的输出的Alpha采用渲染阶段0输出的纹理

//透明度设置 
m_pDevice-> SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA); // 这两句的意思就是设置这个公式:
m_pDevice-> SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA); // 目标颜色=源颜色*alpha+目标颜色*(1-alpha)

[解决办法]
这是ALPHA混合,跟ALPHA测试不一样.
D3DRS_ALPHABLENDENABLE
D3DRS_ALPHATESTENABLE
意思很简单,这些在D3D自带的帮助文档都有

热点排行