|
|
我生成一个D3D,然后设置渲染参数
m_lpD3DDev->SetRenderState( D3DRS_CULLMODE, D3DCULL_NONE );
m_lpD3DDev->SetRenderState( D3DRS_LIGHTING, FALSE );
m_lpD3DDev->SetRenderState( D3DRS_ZENABLE, TRUE );
m_lpD3DDev->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
m_lpD3DDev->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
m_lpD3DDev->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
从文件中导入一个Surface
D3DXLoadSurfaceFromFile( lpDS, NULL, NULL, sFile, lpRect, D3DX_DEFAULT, dwColorKey, &dxii );
然后
m_lpD3DDev->GetBackBuffer( 0, 0, D3DBACKBUFFER_TYPE_MONO, &m_lpDSTarget );
渲染的时候
m_lpD3DDev->UpdateSurface( lpDS, &rcRSrc, m_lpDSTarget, &ptDes );
但是我发现,ColorKey指定的颜色部分是黑的,也就是说载入的时候ColorKey被过滤掉了,但是渲染的时候并没有进行Alpha过滤,变成了黑色
怎样才能让ColorKey指定的部分透明? |
|