|
|

楼主 |
发表于 2006-11-22 22:02:00
|
显示全部楼层
Re:如何绘制镂空纹理
这是我的整个绘制函数,你可以指出怎么改吗?
void AlphaMap: raw(void)
{
// 设置变换矩阵
D3DXMATRIX matId;
D3DXMatrixIdentity(&matId);
g_alpha3d.m_d3d_device->SetTransform(D3DTS_WORLD, &matId);
// 设置纹理
g_alpha3d.m_d3d_device->SetTexture(0, m_texture);
g_alpha3d.m_d3d_device->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
g_alpha3d.m_d3d_device->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
// 绘制地图网格
m_map_mesh->DrawSubset(0);
// 设置透明
g_alpha3d.m_d3d_device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
g_alpha3d.m_d3d_device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
g_alpha3d.m_d3d_device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_DESTCOLOR);
// 绘制射程区域
if (m_range_mesh)
m_range_mesh->DrawSubset(0);
// 绘制光标区域
if (m_cursor_mesh && m_selected)
m_cursor_mesh->DrawSubset(0);
// 取消透明
g_alpha3d.m_d3d_device->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
}
|
|