資源簡介
用C++編寫的LOD實例源碼。
有3種情況,包括四叉樹部分實例。
C++游戲編寫者。
代碼片段和文件信息
//#include?“..\..\GameEngine\GameEngine_Common.h“
#include?“Camera.h“
CCamera::CCamera()
{
m_pos???=?D3DXVECTOR3(0.0f?0.0f?0.0f);
m_right?=?D3DXVECTOR3(1.0f?0.0f?0.0f);
m_look??=?D3DXVECTOR3(0.0f?0.0f?1.0f);
m_up????=?D3DXVECTOR3(0.0f?1.0f?0.0f);
}
CCamera::~CCamera(){}
void?CCamera::InitCamera(D3DXVECTOR3&?CameraPosD3DXVECTOR3&?LookAtPosD3DXVECTOR3&?UpPos){
D3DXVECTOR3?vLookAt=LookAtPos-CameraPos;
D3DXVECTOR3?vUp=UpPos;
D3DXVec3Normalize(&vLookAt?&vLookAt);
D3DXVECTOR3?vRight;
D3DXVec3Cross(&vRight?&vUp?&vLookAt?);??//DirectX可使用左手判斷叉積方向?
D3DXVec3Normalize(&vRight&vRight);
D3DXVec3Cross(&vUp?&vLookAt?&vRight);
D3DXVec3Normalize(&vUp&vUp);
m_pos=CameraPos;
m_right=vRight;
m_look=vLookAt;
m_up=vUp;
}
void?CCamera::SetCameraPos(D3DXVECTOR3*?pos)
{
m_pos?=?*pos;
}
D3DXVECTOR3*?CCamera::GetCameraPos()
{
return?&m_pos;
}
void?CCamera::GetViewMatrix(D3DXMATRIX?*pViewMat)
{
float?PosRight?=?-D3DXVec3Dot(?&m_right??&m_pos);
float?PosUp?=?-D3DXVec3Dot(?&m_up??&m_pos);
float?PosLook?=?-D3DXVec3Dot(?&m_look??&m_pos);
(*pViewMat)(00)?=?m_right.x;
(*pViewMat)(01)?=?m_up.x;
(*pViewMat)(02)?=?m_look.x;
(*pViewMat)(03)?=?0.0f;
(*pViewMat)(10)?=?m_right.y;
(*pViewMat)(11)?=?m_up.y;
(*pViewMat)(12)?=?m_look.y;
(*pViewMat)(13)?=?0.0f;
(*pViewMat)(20)?=?m_right.z;
(*pViewMat)(21)?=?m_up.z;
(*pViewMat)(22)?=?m_look.z;
(*pViewMat)(23)?=?0.0f;
(*pViewMat)(30)?=?PosRight;
(*pViewMat)(31)?=?PosUp;
(*pViewMat)(32)?=?PosLook;
(*pViewMat)(33)?=?1.0f;
}
void?CCamera::RotateRightAxis(float?angle)
{
D3DXMATRIX?M;
D3DXMatrixRotationAxis(&M?&m_rightangle);
D3DXVec3TransformCoord(&m_look&m_look&M);
D3DXVec3TransformCoord(&m_up&m_up&M);
}
void?CCamera::RotateUpAxis(float?angle)
{
D3DXMATRIX?M;
D3DXMatrixRotationAxis(&M?&m_upangle);
D3DXVec3TransformCoord(&m_right&m_right&M);
D3DXVec3TransformCoord(&m_look&m_look&M);
}
void?CCamera::RotateLookAxis(float?angle)
{
D3DXMATRIX?M;
D3DXMatrixRotationAxis(&M?&m_lookangle);
D3DXVec3TransformCoord(&m_right&m_right&M);
D3DXVec3TransformCoord(&m_up&m_up&M);
}
void?CCamera::MoveAlongY(float?yAdd){
Move(0.0fyAdd0.0f);
}
void?CCamera::MoveAlongZ(float?zAdd){
Move(0.0f0.0fzAdd);
}
void?CCamera::MoveAlongX(float?xAdd){
Move(xAdd0.0f0.0f);
}
void?CCamera::Move(float?xAddfloat?yAddfloat?zAdd){
m_pos.x=m_pos.x?+?xAdd;
m_pos.y=m_pos.y?+?yAdd;
m_pos.z=m_pos.z?+?zAdd;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2571??2012-04-23?13:51??LOD\LOD1\Camera.cpp
?????文件????????781??2005-11-12?17:03??LOD\LOD1\Camera.h
?????文件??????10882??2012-04-23?13:51??LOD\LOD1\Debug\BuildLog.htm
?????文件???????2048??2012-04-23?13:50??LOD\LOD1\Debug\LODTerrainDemo.exe.em
?????文件??????19456??2012-04-23?13:51??LOD\LOD1\Debug\vc80.idb
?????文件??????36864??2012-04-23?13:51??LOD\LOD1\Debug\vc80.pdb
?????文件???????5271??2005-11-12?17:03??LOD\LOD1\Frustum.cpp
?????文件????????536??2005-11-12?17:02??LOD\LOD1\Frustum.h
?????文件????1048576??2005-07-30?11:40??LOD\LOD1\heightmap.raw
?????文件??????42851??2012-04-23?13:50??LOD\LOD1\LODTerrain.cpp
?????文件???????1901??2005-11-12?17:04??LOD\LOD1\LODTerrain.h
?????文件???????4874??2005-07-21?22:07??LOD\LOD1\LODTerrainDemo.dsp
?????文件????????551??2005-07-13?10:19??LOD\LOD1\LODTerrainDemo.dsw
?????文件?????274514??2005-12-16?19:48??LOD\LOD1\LODTerrainDemo.exe
?????文件??????68608??2012-07-15?08:24??LOD\LOD1\LODTerrainDemo.ncb
?????文件??????60928??2005-12-16?19:49??LOD\LOD1\LODTerrainDemo.opt
?????文件???????1361??2005-12-16?19:48??LOD\LOD1\LODTerrainDemo.plg
?????文件???????4608??2012-07-15?08:24??LOD\LOD1\LODTerrainDemo.suo
?????文件???????8026??2012-04-23?13:50??LOD\LOD1\LODTerrainDemo.vcproj
?????文件??????42281??2005-11-14?11:31??LOD\LOD1\LODTerrainDemo2.jpg
?????文件???????6429??2005-12-16?19:48??LOD\LOD1\main.cpp
?????文件?????196652??2005-11-13?23:26??LOD\LOD1\mountainTex.tga
?????文件?????366159??2001-09-28?11:17??LOD\LOD2\Grass2.jpg
?????文件???????4194??2005-11-19?14:00??LOD\LOD2\Halo3.gif
?????文件???????6045??2005-11-19?14:47??LOD\LOD2\HardGrow3.gif
?????文件???????6808??2005-11-19?12:54??LOD\LOD2\LensFlare.gif
?????文件?????303174??2007-03-15?09:22??LOD\LOD2\LODTerrainDemo.exe
?????文件??????18083??2002-11-16?22:36??LOD\LOD2\negx.jpg
?????文件??????32047??2002-11-16?22:36??LOD\LOD2\negz.jpg
?????文件??????22724??2002-11-16?22:36??LOD\LOD2\posx.jpg
............此處省略110個文件信息
評論
共有 條評論