坐标系转换

如何让物体看起来在桌面

在这里插入图片描述

  • 黑色轴是桌面的坐标系,绿色的是深度相机坐标系。对于两个坐标系而言,两者之间有一个转换关系。
  • 在数学上,我们知道深度相机那里才是坐标原点,我们也可以通过平面检测算出来桌面的法向量(以深度相机坐标系为参考),也知道桌面相对应相机的距离。此时可以计算从相机坐标系到桌面坐标系的旋转,我们用rot_matrix表示。

其中rot_matrix =
R,t
0T,1

  • 这里的R指的是从相机坐标系到桌面坐标系的旋转,t表示中心点的平移
  • 此时的rot_matrix,就是从相机坐标系到桌面坐标系的旋转。
  • 那么rot_matrix-1,桌面坐标系到相机坐标系的转换。

关键来了

  • 其实仔细想一下,我们让虚拟世界中的virtural_camera和虚拟坐标轴,也拥有rot_matrix-1这样的关系,也就是让m_camera = rot_matrix-1.block<3,4>(0,0)这样的关系,那物体看起来,就会像是在桌面上咯。

如何让物体沿着自身的中轴转

上面我们讲到,从相机坐标系到桌面坐标系的旋转是rot_matrix。rot_matrix-1,桌面坐标系到相机坐标系的转换。
那么在虚拟世界中,m_camera=rot_matrix-1.block<3,4>(0,0),简化成m_camera=rot_matrix-1此时的m_camera的物理含义就是:从虚拟坐标原点转到虚拟相机的转换,我们将其称为Lc_w,也就是虚拟相机看虚拟原点的感觉。那么相对的rot_matrix就是虚拟相机到虚拟坐标原点的转换,我们称之为Lw_c,其实就是从虚拟世界看相机的意义。

在进行下一步的讲解之前,我们先讨论下虚拟世界中的物体,是怎么渲染出来的。在这个过程中,物体是不变的,虚拟坐标也不变,唯一变的只有虚拟相机也就是m_camera。通过调整m_camera的值,实现不同的效果。
我们知道m_camera是3*4的矩阵,其实前3列是旋转,最后一列是平移。我们分别称其为R何T,注意:这里的R和T和上面的没关系,只是称呼。
这里的T,是虚拟相机在虚拟坐标系中的位置,R指的是虚拟相机在虚拟世界中的指向。对于虚拟相机而言,它自身也有个坐标轴,它的Z轴其实就是虚拟相机的视角朝向 view_dir。

  • 我们知道,所谓的旋转其实都是绕着某个轴在转动,比如传统的旋转在空间中有某点X,那么经过旋转会得到X'=RX,这里的旋转其实是绕着(0,0,0)坐标原点的转动。
  • 那如果我们围绕着空间中某点C做旋转,那X'=R(X-C)+C,我们如果任务C是坐标原点的话,其实公式是成立的。
  • 之前的虚拟物体,它如果旋转的话,会沿着虚拟原点转动,如果我们想让它沿着虚拟空间的(0.5,0.5,0.5)转动,也就是物体的中心转,那此时的旋转矩阵rot=
    R (I-R)C
    0T 1
  • 那么(Lw_c*rot)-1 = rot-1*Lc_w,就是看起来,物体在绕轴旋转的样子。
  • 在这里我的理解是,Lc_w是虚拟相机在虚拟世界中的位置和朝向,再此基础上再做个rot-1的操作,让相机绕轴转动。

在这里插入图片描述

总结:我这里很多地方,写的还是有问题,希望后面能把这里吃透。
计划:看Rodrigues formula

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值