Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 使用holotoolkit FOV always 16.97196的统一全息透镜_Unity3d_Hololens - Fatal编程技术网

Unity3d 使用holotoolkit FOV always 16.97196的统一全息透镜

Unity3d 使用holotoolkit FOV always 16.97196的统一全息透镜,unity3d,hololens,Unity3d,Hololens,我正在使用unity和holotoolkit为hololens开发应用程序。问题在于,无论输入什么值,主摄像机的视野(FOV)始终为16.97196。我甚至添加了一个脚本,故意将FOV值设置为60,但它会重置为16.97196。FOV值是否可以根据用户要求进行设置 实际的hololens设备在~17视场下运行,Holotoolkit将摄像头的视场设置为~16.97,以便在统一开发和测试时获得相同的输出 当你们为全息镜头开发应用程序时,并没有任何理由改变视场,在unity中测试时,输出与实际全息镜

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


实际的hololens设备在~17视场下运行,Holotoolkit将摄像头的视场设置为~16.97,以便在统一开发和测试时获得相同的输出

当你们为全息镜头开发应用程序时,并没有任何理由改变视场,在unity中测试时,输出与实际全息镜头设备不同


此外,您还可以获得问题的详细信息。

实际的hololens设备在~17 FOV上运行,Holotoolkit将摄像头FOV设置为~16.97,以便在unity中开发和测试时获得相同的输出

当你们为全息镜头开发应用程序时,并没有任何理由改变视场,在unity中测试时,输出与实际全息镜头设备不同


此外,您还可以获得问题的详细信息。

您可以通过脚本将另一个投影矩阵直接设置到相机,从而缩短视野。例如,如果您需要60度视场,您可以写:

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);
    }
}
公共类SetCameraProjectionMatrix:MonoBehavior
{
公共浮动视野覆盖=60.0f;
void Start()
{
摄像头摄像头=GetComponent();
AssertFormat(cam!=null,“名为{1}的游戏对象上没有预期的{0}组件。”,typeof(Camera),gameObject.name);
cam.projectionMatrix=Matrix4x4.Perspective(视野覆盖、cam.aspect、cam.nearClipPlane、cam.FarcClipplane);
}
}
Camera.projectonMatrix属性文档:


然后忽略视野,直到调用摄影机方法ResetProjectionMatrix。

您可以通过脚本将另一个投影矩阵直接设置到摄影机来缩短视野。例如,如果您需要60度视场,您可以写:

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);
    }
}
公共类SetCameraProjectionMatrix:MonoBehavior
{
公共浮动视野覆盖=60.0f;
void Start()
{
摄像头摄像头=GetComponent();
AssertFormat(cam!=null,“名为{1}的游戏对象上没有预期的{0}组件。”,typeof(Camera),gameObject.name);
cam.projectionMatrix=Matrix4x4.Perspective(视野覆盖、cam.aspect、cam.nearClipPlane、cam.FarcClipplane);
}
}
Camera.projectonMatrix属性文档:


在调用camera方法ResetProjectionMatrix之前,视场将被忽略。

感谢您的回复。我之所以想改变FOV,是因为我需要在一个球体中播放360度视频。视频看起来非常接近,无法获得所需的结果。360 sphere的标准FOV为60,谢谢您的回复。我之所以想改变FOV,是因为我需要在一个球体中播放360度视频。视频看起来非常接近,无法获得所需的结果。360 sphere的标准FOV为60No。它没有更改FOV。FOV属性本身不会随另一个投影矩阵更改。是它还是你看到的平截体没有改变?FOV值保持不变,与16.97相同。不,它没有改变FOV。FOV属性本身不会随着另一个投影矩阵而改变。是它还是你看到的平截体不变?FOV值保持不变,与16.97相同