Unity3d 在Unity中禁用SteamVR摄像头上的头部跟踪?

Unity3d 在Unity中禁用SteamVR摄像头上的头部跟踪?,unity3d,steam,virtual-reality,openvr,Unity3d,Steam,Virtual Reality,Openvr,我正在尝试使用两个摄像头为我的VR播放器开发一个HUD。一个是指向深度为1的HUD对象的静止摄像头,另一个是深度为0的主摄像头,它跟踪HMD并将HUD覆盖在其上 然而,Unity、SteamVR或OpenVR迫使我的相机跟踪播放器的HMD。在我彻底搜索之后,我找不到任何方法来阻止这种行为。然后我尝试将我所有的HUD对象设置为我的HUD相机的父对象,并希望得到最好的结果 这会导致所有HUD对象出现不希望出现的抖动运动: 项目层次结构: 这导致相机指向一个方向,但仍有一点平移。然而,我注意到,事情似

我正在尝试使用两个摄像头为我的VR播放器开发一个HUD。一个是指向深度为1的HUD对象的静止摄像头,另一个是深度为0的主摄像头,它跟踪HMD并将HUD覆盖在其上

然而,Unity、SteamVR或OpenVR迫使我的相机跟踪播放器的HMD。在我彻底搜索之后,我找不到任何方法来阻止这种行为。然后我尝试将我所有的HUD对象设置为我的HUD相机的父对象,并希望得到最好的结果

这会导致所有HUD对象出现不希望出现的抖动运动:

项目层次结构:

这导致相机指向一个方向,但仍有一点平移。然而,我注意到,事情似乎更加动荡,我觉得我要么用错了,要么就是不够

我现在又开始寻找在某些摄影机上禁用头部跟踪的方法,以便能够在场景中定位它们

有人知道SteamVR/OpenVR是如何控制这些相机的变换的吗?有没有办法禁用或覆盖此行为


谢谢。

所以,我们花了一整晚的时间开发了一个功能性的解决方案,并整合了一个项目,它使用了一点后期处理的魔力,基本上“欺骗”了一台静止的相机。我的想法是从一个自定义的立体相机设置中生成两个渲染器,该设置由两个不被跟踪的独立相机组成(允许控制位置、旋转、会聚平面.fov等)。然后,在OnRenderImage()函数中,我将这些摄影机的(左和右)渲染纹理传递给其中一个“跟踪”摄影机的左眼和右眼。它的效果比我预期的要好,所以我决定把所有东西都放到GitHub上,并为其他需要这样做的人编写一个简短的教程


或者您可以更改相机组件中的目标显示和目标类型(至主显示)。(也可以在脚本中完成)

当我这样做时,效果会很好,但相机视图会变得更糟。左图像和右图像不能正确聚合,因此视图中的对象不能视为一个。例如,一个校准点显示为两个,等等。如何解决该问题?
[WorldHUD]
    |__ Container (HUD) 
        |__ Camera (eye)
            |__ TextMesh (Status) <- Is child of camera

[CameraRig]
    |__ Camera (Head) 
        |__ Camera (eye)

[SteamVR]