D3DXMatrixLookAtRH 函数

D3DXMatrixLookAtLH 函数


--------------------------------------------------------------------------------


创建左手坐标系的观察矩阵。

定义:

D3DXMATRIX *WINAPI D3DXMatrixLookAtLH(


D3DXMATRIX *pOut,
CONST D3DXVECTOR3 *pEye, CONST D3DXVECTOR3 *pAt, CONST D3DXVECTOR3 *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 0 xaxis.y yaxis.y zaxis.y 0 xaxis.z yaxis.z zaxis.z 0-dot(xaxis, eye) -dot(yaxis, eye) -dot(zaxis, eye) 1函数信息:

Header
d3dx9math.h

Import library
d3dx9.lib

Minimum operating systems
Windows 98


相关函数:

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 );
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值