首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

设置D3DXMatrixLookAtLH不能达到视图移动的效果呢?该如何处理

2012-02-12 
设置D3DXMatrixLookAtLH不能达到视图移动的效果呢?C/C++ codeD3DXVECTOR3 eyePt *MyCamera.MyCamera.Get

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

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的移动,但是没达到效果

为什么呢?

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

热点排行