+ -
当前位置:首页 → 问答吧 → 设置D3DXMatrixLookAtLH不能达到视图移动的效果呢?

设置D3DXMatrixLookAtLH不能达到视图移动的效果呢?

时间:2011-09-30

来源:互联网

C/C++ code

    D3DXVECTOR3 eyePt = *MyCamera.MyCamera.GetEyePt(); 
    eyePt.z += 10;

    D3DXVECTOR3 lookAt = *MyCamera.MyCamera.GetLookAtPt();
    lookAt.z -= 10;

    eyePt.z += 10;

    MyCamera.MyCamera.SetViewParams(&eyePt, &lookAt);




我想用以上的代码来实现整个camera的移动,但是没达到效果

为什么呢?

作者: WJN92   发布时间: 2011-09-30

据我所知,D3DXMatrixLookAtLH中的“LH”是Left Hand的缩写,因此,这个函数名称的意思是“左手坐标系的观察矩阵”。这个SDK自带的Camera只能设置一些属性:
 1、 观察点:摄象机摆放的位置
 2、 目标点:摄象机对着一个地方
 3、 观察范围:圆锥形状投影范围的夹角大小,单位是弧度。
 4、 可见的最近距离和最远距离:这两个距离中间的观察范围就是可见区域。
 5、 纵横比:显示时候的宽和高比例,一般为1。
所以它只能是固定的……
若要制作一个能够移动的摄像机,只能是自己创建一个摄像机类,通过矩阵变换来移动摄像机……剩下的,楼主可以自己搜索相关资源了……
PS:我也烦这个……

作者: ProsperLee   发布时间: 2011-10-04

不晓得LZ的这个MyCamera.MyCamera是怎样封装的…
一般而言eyePt.z += 10,lookAt.z也会相应的 += 10,LZ这里是 -= 10,没明白是什么意思…

作者: kenkao   发布时间: 2011-10-04

热门下载

更多