• 大小: 15.3MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-04
  • 语言: C/C++
  • 标签:

资源简介

用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.embed.manifest

     文件      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个文件信息

评论

共有 条评论

相关资源