资源简介
地形生成程序 地形渲染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个文件信息
- 上一篇:live555Camera摄像头直播
- 下一篇:TTS文字变语音朗读DEMO
相关资源
- 实时地形引擎 完全版,有目录
- Ferr2D Terrain Tool - 快速制作2D卡通地形
- opengl 三维地形模拟含纹理贴图
- 地形可视化三维可视化
- opengl 生成三维地形
- 数字地形分析ArcGis中的窗口分析
- 地形渲染的动态LOD四叉树算法
- OSG载入地形和模型文件
- OpenGL绘制三维地形图184196
- DEM 规则格网 插值、地形生成
- osg 海量数据处理
- DirectX地月系+高度图地形源代码
- OpenGL实践二:基于分形的山地地形绘
- Prefab Painter 2 2.1
- cass绘制地形图学习资料.zip
- Cesium生成离线terrain地形数据所需所有
- CTB地形切片生成器
- 曾涛地形模型和NeHeOpenGL教程
- Unity3D真实地形提取插件
- 地形数据tif格式
- 1:400万全国基础地形数据
- T4M地形的插件
- 北京市14级高程数据tif文件可提取等高
- Unity3D官方地形包,TerrainAsset.unitypac
- unity3d 地形资源
- Opengl 蘑菇、萤火虫、地形三维建模
- 全中国dem数据
- Terrain Slicing Dynamic Loading Kit V4.4.0.uni
- 地形分割、动态加载 Terrain Slicing Dy
- 三维地形生成算法源码
评论
共有 条评论