• 大小: 3.73MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-27
  • 语言: 其他
  • 标签: 地形  

资源简介

地形生成程序 地形渲染DEMO LOD 合适初学者

资源截图

代码片段和文件信息

#include “camera.h“

Camera::Camera()
{
_cameraType = AIRCRAFT;

_pos   = D3DXVECTOR3(0.0f 0.0f 0.0f);
_right = D3DXVECTOR3(1.0f 0.0f 0.0f);
_up    = D3DXVECTOR3(0.0f 1.0f 0.0f);
_look  = D3DXVECTOR3(0.0f 0.0f 1.0f);
}

Camera::Camera(CameraType cameraType)
{
_cameraType = cameraType;

_pos   = D3DXVECTOR3(0.0f 0.0f 0.0f);
_right = D3DXVECTOR3(1.0f 0.0f 0.0f);
_up    = D3DXVECTOR3(0.0f 1.0f 0.0f);
_look  = D3DXVECTOR3(0.0f 0.0f 1.0f);
}

Camera::~Camera()
{

}

void Camera::getPosition(D3DXVECTOR3* pos)
{
*pos = _pos;
}

void Camera::setPosition(D3DXVECTOR3* pos)
{
_pos = *pos;
}

void Camera::getRight(D3DXVECTOR3* right)
{
*right = _right;
}

void Camera::getUp(D3DXVECTOR3* up)
{
*up = _up;
}

void Camera::getLook(D3DXVECTOR3* look)
{
*look = _look;
}

void Camera::walk(float units)
{
// move only on xz plane for land object
if( _cameraType == LANDobject )
_pos += D3DXVECTOR3(_look.x 0.0f _look.z) * units;

if( _cameraType == AIRCRAFT )
_pos += _look * units;
}

void Camera::strafe(float units)
{
// move only on xz plane for land object
if( _cameraType == LANDobject )
_pos += D3DXVECTOR3(_right.x 0.0f _right.z) * units;

if( _cameraType == AIRCRAFT )
_pos += _right * units;
}

void Camera::fly(float units)
{
// move only on y-axis for land object
if( _cameraType == LANDobject )
_pos.y += units;

if( _cameraType == AIRCRAFT )
_pos += _up * units;
}

void Camera::pitch(float angle)
{
D3DXMATRIX T;
D3DXMatrixRotationAxis(&T &_right angle);

// rotate _up and _look around _right vector
D3DXVec3TransformCoord(&_up&_up &T);
D3DXVec3TransformCoord(&_look&_look &T);
}

void Camera::yaw(float angle)
{
D3DXMATRIX T;

// rotate around world y (0 1 0) always for land object
if( _cameraType == LANDobject )
D3DXMatrixRotationY(&T angle);

// rotate around own up vector for aircraft
if( _cameraType == AIRCRAFT )
D3DXMatrixRotationAxis(&T &_up angle);

// rotate _right and _look around _up or y-axis
D3DXVec3TransformCoord(&_right&_right &T);
D3DXVec3TransformCoord(&_look&_look &T);
}

void Camera::roll(float angle)
{
// only roll for aircraft type
if( _cameraType == AIRCRAFT )
{
D3DXMATRIX T;
D3DXMatrixRotationAxis(&T &_look angle);

// rotate _up and _right around _look vector
D3DXVec3TransformCoord(&_right&_right &T);
D3DXVec3TransformCoord(&_up&_up &T);
}
}

void Camera::getViewMatrix(D3DXMATRIX* V)
{
// Keep camera‘s axes orthogonal to eachother
D3DXVec3Normalize(&_look &_look);

D3DXVec3Cross(&_up &_look &_right);
D3DXVec3Normalize(&_up &_up);

D3DXVec3Cross(&_right &_up &_look);
D3DXVec3Normalize(&_right &_right);

// Build the view matrix:
float x = -D3DXVec3Dot(&_right &_pos);
float y = -D3DXVec3Dot(&_up &_pos);
float z = -D3DXVec3Dot(&_look &_pos);

(*V)(00) = _right.x; (*V)(0 1) = _up.x

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3389  2007-01-06 19:13  地形渲染DEMO\代码\Camera.cpp

     文件       1088  2007-01-07 20:54  地形渲染DEMO\代码\Camera.h

     文件       3516  2007-01-07 22:14  地形渲染DEMO\代码\CameraControl.cpp

     文件       1074  2007-01-07 20:54  地形渲染DEMO\代码\CameraControl.h

     文件          0  2000-11-04 09:44  地形渲染DEMO\代码\Common.cpp

     文件        396  2007-01-07 20:54  地形渲染DEMO\代码\Common.h

     文件    1048576  2004-05-31 14:57  地形渲染DEMO\代码\data\heightMap\3.raw

     文件     393778  2006-11-29 17:20  地形渲染DEMO\代码\data\Texture\sky\skybox1.BMP

     文件     394806  2006-11-29 17:23  地形渲染DEMO\代码\data\Texture\sky\skybox2.BMP

     文件     392246  2006-11-29 17:21  地形渲染DEMO\代码\data\Texture\sky\skybox3.BMP

     文件     390714  2006-11-29 17:24  地形渲染DEMO\代码\data\Texture\sky\skybox4.BMP

     文件     786486  2006-11-29 17:22  地形渲染DEMO\代码\data\Texture\sky\skybox5.BMP

    ..A.SH.     17408  2007-01-08 10:40  地形渲染DEMO\代码\data\Texture\sky\Thumbs.db

     文件     787022  2002-06-19 08:37  地形渲染DEMO\代码\data\Texture\terrain\detailMap.tga

     文件     174904  2006-04-18 05:22  地形渲染DEMO\代码\data\Texture\terrain\rock.dds

     文件     196662  2006-12-01 18:47  地形渲染DEMO\代码\data\Texture\terrain\terrain1.tga

     文件     197430  2002-06-19 08:37  地形渲染DEMO\代码\data\Texture\terrain\terrain2.tga

     文件     197659  2002-06-19 08:37  地形渲染DEMO\代码\data\Texture\terrain\terrain3.tga

    ..A.SH.      5632  2007-01-07 22:22  地形渲染DEMO\代码\data\Texture\terrain\Thumbs.db

    ..A.SH.     12800  2007-01-07 22:22  地形渲染DEMO\代码\data\Texture\Thumbs.db

     文件       2384  2007-01-06 22:52  地形渲染DEMO\代码\Font.cpp

     文件        969  2007-01-07 20:54  地形渲染DEMO\代码\Font.h

     文件      69632  2007-04-27 08:12  地形渲染DEMO\代码\Ground.exe

     文件    2362368  2007-05-22 11:44  地形渲染DEMO\代码\Ground.ncb

     文件        901  2006-11-20 23:11  地形渲染DEMO\代码\Ground.sln

    ..A..H.     19968  2007-05-22 11:44  地形渲染DEMO\代码\Ground.suo

     文件       4195  2007-01-06 22:52  地形渲染DEMO\代码\Ground.vcproj

     文件      10481  2007-01-07 22:35  地形渲染DEMO\代码\main.cpp

     文件       6230  2007-01-07 20:08  地形渲染DEMO\代码\SkyBox.cpp

     文件       1309  2007-01-07 20:08  地形渲染DEMO\代码\SkyBox.h

............此处省略38个文件信息

评论

共有 条评论