|
IDirect3DSurface9 *pOldFace = NULL;
IDirect3DSurface9 *pDstFace = NULL;
pd3dDevice->GetRenderTarget(0, &pOldFace);
g_pTexDst->GetSurfaceLevel(0, &pDstFace);
IDirect3DTexture9 *pTex = NULL;
//D3DXCreateTexture(pd3dDevice, 256, 256, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8B8G8R8, D3DPOOL_DEFAULT, &pTex);
D3DXCreateTextureFromFile(pd3dDevice,L"tex.bmp", &pTex);
pd3dDevice->SetRenderTarget(0, pDstFace);
g_pTextSprite->Begin(0);
pd3dDevice->SetPixelShader(g_pPixCalc);
pd3dDevice->SetTexture(0, pTex);
pd3dDevice->SetTexture(1, g_pTexSrc);
g_pTextSprite->Draw(g_pTexDst, 0, 0, 0, 0xffffffff);
g_pTextSprite->End();
pd3dDevice->SetPixelShader(NULL);
pd3dDevice->SetRenderTarget(0, pOldFace);
大致的代码如上,这里用到了PixShader,我想问下,PixShader运算完后得到的结果每个像素的颜色值m,这个m是不是还要与 g_pTextSprite->Draw(g_pTexDst, 0, 0, 0, 0xffffffff);的g_pTexDst进行运算啊,它的运算是怎样的?还有这个函数的最后一个颜色参数值感觉没啥作用啊,怎么修改都不影响最后产生的纹理?
望各位大牛指点迷津,偶感激不尽~~ |
|