关于改变物体位置的问题

WJN92 2011-09-20 11:44:21
我现在是使用这种方法来改变一个物体的位置和状态

但是我想每一次渲染一帧的时候都要这样做一次,这样的话不会影响效率的吗?

有没有一种方法是直接改变它的世界坐标,这样的话应该不会每帧都要渲染一次,效率可能会有所提高吧


void CALLBACK OnFrameRender( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext )
{
HRESULT hr;
pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB( 0,255,255 ), 1.0f, 0 );

pd3dDevice->SetRenderState(D3DRS_LIGHTING, false);


if (SUCCEEDED(pd3dDevice->BeginScene()))
{

model.Render(pd3dDevice);

pd3dDevice->SetTransform(D3DTS_WORLD, &m) ;

room.Render(pd3dDevice);


D3DXMatrixRotationY( &m, -45 );

MyCamera.SetWorldMatrix(m);

//*****************************************************
D3DXMATRIX world = *MyCamera.GetWorldMatrix() ;
pd3dDevice->SetTransform(D3DTS_WORLD, &world) ;

// Set view matrix
D3DXMATRIX view = *MyCamera.GetViewMatrix() ;
pd3dDevice->SetTransform(D3DTS_VIEW, &view) ;

// Set projection matrix
D3DXMATRIX proj = *MyCamera.GetProjMatrix() ;
pd3dDevice->SetTransform(D3DTS_PROJECTION, &proj) ;
//*****************************************************


pd3dDevice->EndScene();

}

}


void CALLBACK OnFrameMove( double fTime, float fElapsedTime, void* pUserContext )
{
MyCamera.FrameMove( fElapsedTime );
D3DXMatrixRotationY( &m, 45 );


}
...全文
126 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
WJN92 2011-09-22
  • 打赏
  • 举报
回复
自己顶一下
wuhuwy 2011-09-21
  • 打赏
  • 举报
回复
只是改变坐标位置并不会太影响效率
WJN92 2011-09-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuhuwy 的回复:]

只是改变坐标位置并不会太影响效率
[/Quote]

我是说现在的方法会不会影响效率

8,324

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧