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

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


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值