【问题标题】:Unity hololens using holotoolkit FOV always 16.97196Unity hololens 使用 holotoolkit FOV 始终为 16.97196
【发布时间】:2017-04-24 23:19:12
【问题描述】:

我正在使用 unity 和 holotoolkit 开发用于 hololens 的应用程序。问题是无论输入什么值,主摄像机的视野 (FOV) 始终为 16.97196。我什至添加了一个脚本来故意将 FOV 值设置为 60,但它会重置为 16.97196。 FOV值可以根据用户要求设置吗?

【问题讨论】:

    标签: unity3d hololens


    【解决方案1】:

    实际的 hololens 设备在 ~17 FOV 上运行,Holotoolkit 将相机 FOV 设置为 ~16.97,以便在统一开发和测试时获得相同的输出。

    当您为 Hololens 开发应用程序时,没有任何理由更改 FOV 并且在统一测试时具有与实际 hololens 设备不同的输出。

    另外,您可以获取问题详情here

    【讨论】:

    • 感谢您的回复。我之所以要更改 FOV,是因为我需要在球体中播放 360 度视频。视频看起来非常接近,无法获得预期的结果。 360 球体的标准 FOV 为 60
    【解决方案2】:

    您可以通过脚本直接为相机设置另一个投影矩阵来缩短 FOV。例如,如果你需要 60 度 FOV,你可以这样写:

    public class SetCameraProjectionMatrix : MonoBehaviour
    {
        public float fieldOfViewOverride = 60.0f;
    
        void Start()
        {
            Camera cam = GetComponent<Camera>();
            Debug.AssertFormat(cam != null, "No {0} component on game object named {1} as expected.", typeof(Camera), gameObject.name);
            cam.projectionMatrix = Matrix4x4.Perspective(fieldOfViewOverride, cam.aspect, cam.nearClipPlane, cam.farClipPlane);
        }
    }
    

    Camera.projectonMatrix 属性文档:https://docs.unity3d.com/ScriptReference/Camera-projectionMatrix.html

    在调用相机方法 ResetProjectionMatrix 之前,视野将被忽略。

    【讨论】:

    • 不,它没有改变 FOV。
    • FOV 属性本身不会随着另一个投影矩阵而改变。是它还是你看到的平截头体没有改变?
    • FOV值不变,还是16.97
    猜你喜欢
    • 2017-05-27
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 2019-09-24
    • 2022-08-12
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多