摄像机
来源:互联网 发布:淘宝店铺头像去哪改 编辑:程序博客网 时间:2024/06/11 19:43
Directx c++实现一个灵活的第三人称camera(角色跟随)
class CameraClass
{
private:
//成员变量的声明
D3DXVECTOR3 m_vRightVector; // 右分量向量
D3DXVECTOR3 m_vUpVector; // 上分量向量
D3DXVECTOR3 m_vLookVector; // 观察方向向量
D3DXVECTOR3 m_vCameraPosition; // 摄像机位置的向量
D3DXVECTOR3 m_vTargetPosition; //目标观察位置的向量
D3DXMATRIX m_matView; // 取景变换矩阵
D3DXMATRIX m_matProj; // 投影变换矩阵
LPDIRECT3DDEVICE9 m_pd3dDevice; //Direct3D设备对象
D3DXVECTOR3 m_vNewXAxis;
D3DXVECTOR3 m_vNewZAxis;
public:
//一个计算取景变换的函数
VOID CalculateViewMatrix(D3DXMATRIX *pMatrix); //计算取景变换矩阵
//三个Get系列函数
VOID GetProjMatrix(D3DXMATRIX *pMatrix) { *pMatrix = m_matProj; } //返回当前投影矩阵
VOID GetCameraPosition(D3DXVECTOR3 *pVector) { *pVector = m_vCameraPosition; } //返回当前摄像机位置矩阵
VOID GetLookVector(D3DXVECTOR3 *pVector) { *pVector = m_vLookVector; } //返回当前的观察矩阵
//四个Set系列函数,注意他们参数都有默认值NULL的,调用时不写参数也可以
VOID SetTargetPosition(D3DXVECTOR3 *pLookat = NULL); //设置摄像机的目标观察位置向量
VOID SetCameraPosition(D3DXVECTOR3 *pVector = NULL); //设置摄像机所在的位置向量
VOID SetViewMatrix(D3DXMATRIX *pMatrix = NULL); //设置取景变换矩阵
VOID SetProjMatrix(D3DXMATRIX *pMatrix = NULL); //设置投影变换矩阵
void ThirdPersonRotationX(float angle);//第三人称摄像头绕右分量向量旋转
void ThirdPersonRotationY(float angle);//第三人称摄像头绕上分量向量旋转
public:
// 沿各分量平移的三个函数
VOID MoveAlongRightVec(FLOAT fUnits); // 沿right向量移动
VOID MoveAlongUpVec(FLOAT fUnits); // 沿up向量移动
VOID MoveAlongLookVec(FLOAT fUnits); // 沿look向量移动
// 绕各分量旋转的三个函数
VOID RotationRightVec(FLOAT fAngle); // 绕right向量旋转
VOID RotationUpVec(FLOAT fAngle); // 绕up向量旋转
VOID RotationLookVec(FLOAT fAngle); // 绕look向量旋转
//返回一个
public:
//构造函数和析构函数
CameraClass(IDirect3DDevice9 *pd3dDevice); //构造函数
virtual ~CameraClass(void);
http://www.cnblogs.com/shit/archive/2013/05/13/3075825.html
- 摄像机
- 摄像机
- 摄像机
- 摄像机
- 摄像机
- 摄像机
- 摄像机
- 摄像机
- 摄像机
- 网络摄像机
- OGRE摄像机
- 工业摄像机
- 网络摄像机
- 网络摄像机
- 网络摄像机
- 摄像机位置
- 摄像机原理
- android3D摄像机
- 物化视图在物流系统中的应用
- C# 10点半扑克牌游戏程式码
- Google Protocol Buffer持久化框架分析
- Memcached Redis Membase性能测试对比分析
- DBMS_STATS分析表 (zt) dbms_stats.set_table_stats 手工设置统计信息
- 摄像机
- C/C++:在不使用第三个变量的情况下实现两个变量的交换
- Oracle将多个查询结果以列的形式合并在一起
- Android的所有权限说明
- 1.小试牛刀--1
- 跳转到已安装的apk&&获取Android应用包名package和入口activity名称
- xliff XML本地化数据交换格式
- [hdu 2023] 求平均成绩
- [W001]Windows 超大文件夹winsxs 目录压缩方法(适用于 7,2008,vista)