首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

关于改变物体位置的有关问题

2012-03-20 
关于改变物体位置的问题我现在是使用这种方法来改变一个物体的位置和状态但是我想每一次渲染一帧的时候都

关于改变物体位置的问题
我现在是使用这种方法来改变一个物体的位置和状态

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

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

C/C++ code
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 );    }


[解决办法]
只是改变坐标位置并不会太影响效率

热点排行