求大神帮忙~关于D3D中的坐标变换问题!
求大神帮忙~关于D3D中的坐标变换问题!
如果我定义的坐标是 D3DXVECTOR3(-1.0f, 1.0f, 0.0f)
D3DXVECTOR3( 1.0f, 1.0f, 0.0f)
D3DXVECTOR3( 1.0f, -1.0f, 0.0f)
D3DXVECTOR3(-1.0f, -1.0f, 0.0f)
就是x-y构成的平面上的正方形。
第一:这个正方形变换到世界坐标系的坐标应该和我定义的4个坐标应该是同一个坐标吧?对吗?
第二:如果我定义的摄像机的D3DXVECTOR3 eye(0.0f, 0.0f, -3.0f)lookat(0.0f,0.0f,0.0f)然后求出取景变换矩阵.
这个时候我摄像机的位置就是eye(0.0f, 0.0f, -3.0f),然后取景变换后把摄像机坐标系移到世界坐标系,这个时候世界
坐标系的基向量就是摄像机的基向量,我想问的就是:1.上面我的表述对吗?2.取景变换的过程中,物体会随着世界坐标系
的变换而产生变化吗?由于现在摄像机坐标与世界坐标重合,为什么还会能看到物体呢?3.在变换过程中lookat向量具体
起到什么作用呢?
D3DXMatrixLookAtLH,这个变换矩阵会把摄像机的坐标系与世界坐标系重合吗??
如果有好的解释这个问题的帖子发个链接也行哦,谢谢大神们帮忙了啊
[解决办法]
第一:这个正方形变换到世界坐标系的坐标应该和我定义的4个坐标应该是同一个坐标吧?对吗?
你定义的坐标本身就是世界坐标, 不存在变换不变换的问题
你可以想象这就是放在现实世界的物体
第二:如果我定义的摄像机的D3DXVECTOR3 eye(0.0f, 0.0f, -3.0f)lookat(0.0f,0.0f,0.0f)
这个坐标也是世界坐标
你可以对比这个坐标和物体的坐标想象成为你自己和物体之间的位置关系
2.取景变换的过程中,物体会随着世界坐标系的变换而产生变化吗?
物体不会变化的,放在哪里,除非你用 world变换矩阵去处理他,否则他就不动
“取景”变换, 是view矩阵作用的结果,是根据你设置的相机的参数来的
物体摆在你面前,你从左面看还是右面看他,看起来自然不同,可是物体还是物体,在那儿没有动
动的是你自己(相机)
3 LookAt函数当中的up向量代表的是你的头顶朝向
现实世界当中,你和物体的位置关系不同,你还可以面对着物体歪头(up向量)看,结果自然不同
4 D3DXMatrixLookAtLH, 控制的就是相机或者你的脑袋和物体的关系
物体时物体,你的脑袋是你的脑袋,重合不了