OSG carmeamanipulator解析(1)

OSG carmeamanipulator解析(1)
1.坐标变换采用MVPW即可把物体的三维坐标转换为屏幕坐标。 即M屏幕·=MlocalMmodelMviewMprojectionMwindow  其中

2.通过模型变换和试图变换之后所得的矩阵是相机的视点矩阵,若想改变相机的位置需要重写操作器才可。操作器中 
 /** get the position of the manipulator as 4x4 Matrix./
        virtual osg::Matrixd getMatrix() const = 0;
   /** get the position of the manipulator as a inverse matrix of the manipulator, typically used as a model view matrix.
/
        virtual osg::Matrixd getInverseMatrix() const = 0;
这两个纯虚函数负责传递观察矩阵和位置姿态矩阵,getmatrix()传递的是相机的位置姿态矩阵,即相机坐标系下的顶点向世界坐标系转换的变换矩阵,getInverseMatrix() 得到的是观察矩阵。比如设置了设置了观察方向是朝向z轴负方向,每前进一次相机坐标系会沿z轴负方向平移一定距离,而模型则相对的沿z轴正方向平移一样的距离,对于模型来说是乘以观察矩阵得到了在相机坐标系的坐标,而对相机坐标系来说是改变了位置姿态。两者相互对应,也就有了下图的互逆关系和两个getmatrix,得到位置姿态的变化和getInversematrix()得到的是观察矩阵。

3…
4.
.https://blog.csdn.net/popy007/article/details/5120158
4. Fusion Distance:  
he other parameter is the distance from the eyes where the lines of sight for each eye converge. This distance is called the fusion distancet

5.操作器导致相机发生移动,也就是导致相机坐标系发生移动,相应的物体在相机坐标系下的坐标也会发生移动,而物体的世界坐标却不会发生改变,改变的是物体的Mview矩阵,当前相机在坐标系下会有一个位置,是世界坐标系经过旋转平移缩放得到的旋转评议缩放的矩阵叫相机的位置姿态矩阵Mworld,(这就像我们测绘学的坐标变换似的,一个点在不同坐标系下的坐标是不相同的)所以当相机发生移动时,在世界坐标系的点的相机坐标也会发生变化,这个变化发生在MVPW的View中,因为MVPW中M是模型在动导致的,View代表摄像机在动,PW是在界定视线所看的范围。可以想象,相机运动(坐标系移动)的矩阵相当于物体移动的矩阵的逆矩阵,例如坐标系向左移动,则物体则相当于往右移动

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值