D3DXMatrixLookAtLH
来源:互联网 发布:网络数据抓取 编辑:程序博客网 时间:2024/05/22 06:11
D3DXMATRIX *WINAPI D3DXMatrixLookAtLH( D3DXMATRIX *pOut,
CONST D3DXVECTOR3 *pEye,
CONST D3DXVECTOR3 *pAt,
CONST D3DXVECTOR3 *pUp
);
这个函数用来控制摄影机,用来控制视图矩阵的。
pEye眼睛的位置,观察的方向。
pAt是摄影机的前进和后退,向左或向右。向上或向下。
pUp是向上的方向。
详细说明
参数:
pOut
[in, out] 指向D3DXMATRIX 结构的返回结果的矩阵。
pEye
[in] 指向D3DXVECTOR3 结构的眼睛所有在位置向量。这个值会用来作平移。
pAt
[in] 指向D3DXVECTOR3结构的摄像机观察目标位置向量。
pUp
[in] 指向D3DXVECTOR3结构的当前世界坐标系向上方向向量。通常用[0, 1, 0]向量。
返回值:
指向D3DXMATRIX 结构的左手坐标系观察矩阵。
说明:
返回值是跟参数pOut 返回值是一样的。通过这样方式,可以让D3DXMatrixLookAtLH 函数成为其它函数的参数。
这个函数用下面的公式来计算返回的矩阵:
zaxis = normal(At - Eye)xaxis = normal(cross(Up, zaxis))yaxis = cross(zaxis, xaxis)xaxis.x yaxis.x zaxis.x 0xaxis.y yaxis.y zaxis.y 0xaxis.z yaxis.z zaxis.z 0-dot(xaxis, eye)-dot(yaxis, eye)-dot(zaxis, eye)1相关函数:
D3DXMatrixLookAtRH
使用说明:
一台摄象机有以上画面中的一些属性:
1、观察点:摄象机摆放的位置
2、目标点:摄象机对着一个地方
3、观察范围:圆锥形状投影范围的夹角大小,单位是弧度。
4、可见的最近距离和最远距离:这两个距离中间的观察范围就是可见区域。
5、纵横比:显示时候的宽和高比例,一般为1。
明白了摄象机的原理后,我们来看D3D中是怎么设置它的,有两个矩阵是用来设置摄象机的,一个是观察矩阵,一个是射影矩阵,程序说明一切。
首先是设置摄象机的观察矩阵:
m_vEyePt = D3DXVECTOR3( 0.0f, 3.0f,-5.0f ); // 视点坐标
m_vLookatPt = D3DXVECTOR3( 0.0f, 0.0f, 0.0f ); // 目标点坐标
m_vUpVec = D3DXVECTOR3( 0.0f, 1.0f, 0.0f ); // 当前世界的向上方向,通常是(0,1,0)
// 根据上面给出的3个值建立一个基于左手坐标系的观察矩阵
D3DXMatrixLookAtLH( &m_matView, &m_vEyePt, &m_vLookatPt, &m_vUpVec );
// 设置该矩阵为D3D的当前观察矩阵
pd3dDevice->SetTransform( D3DTS_VIEW, &m_matView );
- D3DXMatrixLookAtLH
- D3DXMatrixLookAtLH
- D3DXMatrixLookAtLH
- D3DXMatrixLookAtLH
- D3DXMatrixLookAtLH
- D3DXMatrixLookAtLH
- D3DXMatrixLookAtLH 函数
- D3DXMatrixLookAtLH 函数
- D3DXMatrixLookAtLH函数
- D3DXMatrixLookAtLH视图变换函数详解
- D3D 的D3DXMatrixLookAtLH矩阵的计算过程
- 棋盘覆盖问题
- 浅谈ado.net 五大对象
- 简单的的SimpleTron(C语言实现,程序内部实现体验)
- Java中this用法小结
- 关于GPL版权的思考
- D3DXMatrixLookAtLH
- Android 应用开发笔记 - 状态栏提示(Notification、NotificationManager)
- oSIP协议栈(及eXoSIP、Ortp等)使用入门(转)
- 11 java 王少飞-Java SE 加强 内省小节
- 寻找质数
- Linux How to forge 官方使用手册
- 埋藏
- int转换成长度为4的byte数组,长度为4的byte数组合成一个int.
- 最简单linux-3.5.4搭建nfs文件系统