用dx8开发了个2d小游戏 用的是 LPD3DXSPRITE pD3DSprite; pD3DSprite->Draw(pD3DTex[10], NULL, &sc, NULL, rot, &diag, D3DCOLOR_ARGB(255, 255, 255, 255)); 没有用到3D的操作,听说在dx8中可以方便的实现纹理的混合操作 是不是用3D中的纹理混合必须要画一个三角形再给它贴图使用多重纹理才能混合 这样纯粹的2D小游戏中能用dx8中的纹理混合功能吗? 通过LPD3DXSPRITE 的draw()方法显示有没有办法使用dx8中的纹理混合功能呢?
g_pD3DDevice->BeginScene(); pD3DSprite->Begin();
g_pD3DDevice->SetTexture( 0, pD3DTex[10] );
g_pD3DDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE ); g_pD3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); g_pD3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE ); g_pD3DDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_DISABLE );
pD3DSprite->Draw(pD3DTex[9], &rect, &sc, NULL, rot, NULL, D3DCOLOR_ARGB(255, 255, 255, 255)); pD3DSprite->Draw(pD3DTex[10], NULL, &sc, NULL, rot, &diag, D3DCOLOR_ARGB(255, 255, 255, 255)); pD3DSprite->End(); g_pD3DDevice->EndScene();
以上是我的代码,可是没有效果,我用的是sdk9.0,VC6++请帮我看一下 |