设置D3DXMatrixLookAtLH不能达到视图移动的效果呢?该如何处理
设置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,没明白是什么意思…