|
|
代码如下
LPDIRECT3DTEXTURE9 m_pColorMap;
LPD3DXRENDERTOSURFACE m_pRenderToSurface;
LPDIRECT3DSURFACE9 m_pCausticSurf;
......
init()
{
......
D3DDISPLAYMODE mode;
g_pd3dDevice->GetDisplayMode( 0, &mode );
// Create texture
D3DXCreateTexture(g_pd3dDevice, 256, 256, 1, D3DUSAGE_RENDERTARGET, mode.Format, D3DPOOL_DEFAULT, &m_pColorMap);
D3DSURFACE_DESC desc;
m_pColorMap->GetSurfaceLevel(0, &m_pCausticSurf);
m_pCausticSurf->GetDesc(&desc);
D3DXCreateRenderToSurface(g_pd3dDevice,256, 256,
desc.Format, FALSE, desc.Format, &m_pRenderToSurface);
......
}
......
renderToEnv(...)
{
g_pd3dDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
g_pd3dDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
if(SUCCEEDED(m_pRenderToSurface->BeginScene(m_pCausticSurf, NULL)))
{
renderScene( camera, pView, pProject, FALSE );
}
m_pRenderToSurface->EndScene( 0 );
}
我用如此方式来RENDER TO TARGET, 而且我做的是一个动画的映射,结果TEXTURE总是残留着一直以前帧的texture,并且在原来的基础上绘制新的target.
无法实现象DXSDK的DEMO那样的动态texture效果;
下面发个图~``

能看见图吗?你会看见上面有很多个小球的轨迹,我要的效果是不存在小球轨迹,那才符合实际情况.~
大侠们指导下吧`` |
|