UE4 怎样在VR模式下摄像机的正前方显示某个东西,譬如3DUI?

来源:互联网 发布:一钻淘宝店铺多少钱 编辑:程序博客网 时间:2024/05/16 08:17

如题,说白了就是在VR模式下,随时随地的显示某个东西在视角特定距离的正前方位置。

名词解释:

HMD 指的是VR头盔设备


数学原理公式:A = B + C + C.r.f * V

公式解释:

A  最终3DUI显示在世界中的位置(FVector)

B  摄像机的位置(FVector)

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正前方东西的位置的时候,加上摄像机的位置向量,就永远是对的。