如题,说白了就是在VR模式下,随时随地的显示某个东西在视角特定距离的正前方位置。
名词解释:
HMD 指的是VR头盔设备
数学原理公式:A = B + C + C.r.f * V
公式解释:
A 最终3DUI显示在世界中的位置(FVector)
B 摄像机的位置(FVector)
C HMD位置(FVector)
C.r.f HMD(Vive头盔)的旋转的正前方分向量()
V 特定数值(用于放大前向量,用来控制3DUI和HMD视口的距离)
以上公式能够正确显示,说明了在VR模式下最终的视口空间中的物体位置是由摄像机和HMD二者叠加在一起的
代码示例:FVector Cur3DUIPos = myCamera->GetCameraLocation() + HMDCameraPos + HMDCameraRot.GetForwardVector() * 100;
说明: Player和摄像机始终是绑定在一起的,所以摄像机的位置也就是Player的位置(第一人称)。而在VR模式下,HMD的位置和旋转则是独立于摄像机的,戴着头盔在
场景中移动,Player的位置并没有发生改变,它还在原来的位置。改变的只是HMD在世界中的位置和旋转。
所以,不管Player是否发生位移,在计算HMD正前方东西的位置的时候,加上摄像机的位置向量,就永远是对的。