DirectX 9 3D游戏设计入门

拿正在看的书名做标题算了 — slowhand

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  6 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 高兴,实现RenderToTexture。

 

先是看SDK的CubeMap实例,人家的实时镜面效果 
原来才用了6张图,场景渲染了6+1遍 。

有些地方错误郁闷了好几天,终于实现RTT了。 
再搞明白那6张图是咋贴的,就离镜面不远了。

贴几行关键代码:
IDirect3DTexture9* pRenderTexture;
//创建纹理。以前是D3DFMT_R8G8B8这个地方老是编译通过,运行出错,郁闷了我好半天。
Device->CreateTexture(640, 480, 1, D3DUSAGE_RENDERTARGET, D3DFMT_X8R8G8B8,
D3DPOOL_DEFAULT, &pRenderTexture, NULL);
//=======Render()=======
// Store the current render target
LPDIRECT3DSURFACE9 pBackBuffer = 0;
Device->GetRenderTarget(0, &pBackBuffer);

LPDIRECT3DSURFACE9 pRenderSurface = 0;
pRenderTexture->GetSurfaceLevel(0, &pRenderSurface);//建纹理并绑定一个surface
Device->SetRenderTarget(0,pRenderSurface);//渲染目标不是屏幕,surface存放纹理数据
SAFE_RELEASE(pRenderSurface);

Device->Clear(……);
Device->BeginScene();
//RenderScene
Device->EndScene();

// Restore render target
Device->SetRenderTarget(0, pBackBuffer);
SAFE_RELEASE(pBackBuffer);

//之后就可以用这个纹理了。
Device->Clear(……);
Device->BeginScene();
//RenderScene
Device->EndScene();

/Files/slowhand/RTT.rar

posted on 2008-08-31 16:47 宁涛 阅读(1115) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理