zoukankan      html  css  js  c++  java
  • iOS14 SceneKit Camera 的视角

    fieldOfView 是什么

    在SceneKit里,我们需要可以调整相机的视角,显示不同内容。看下图很好理解:
    image

    但是iOS14里, SCNCamera的xFov,yFov属性都被废弃了,用 fieldOfView 和projectionDirection代替:当projectionDirection为水平方向时,设置fieldOfView就代表设置了xFov,而yFov会根据scene view的长宽比例,自动计算。

    调整fieldOfView的作用

    当摄像机和物体的距离不变时,把摄像机的视角 调大,相机看到的范围就变大,而视野里的物体就会变小,这个物体看起来更远。这个效果和把相机在自己z轴方向前后移动的效果类似,可以根据实际情况,选择一种方法。
    下面是2副截图,调整了fieldOfView:
    image
    image

    这个角度可以无限趋近于180度,但是当过大时,摄像机近处物体根据透视法则,形变地厉害,人无法识别图像。
    image

    sensorHeight,focalLength 和 fieldOfView 的关系

    下图是一个成像原理图,其中 Angle of View 就是 ios的Field of View,通过这个图,可以知道如何使用sensorHeight,focalLength 计算 fieldOfView
    image

    另外,apple 的官方说明对于他们3者的计算,好像是说错了,见下图:
    image
    这里说 sensorHeight 为24, focalLenght为50的时候,fieldOfView是60度,和我们上面的计算方法不符合。之后我用xcode的工具计算了一下,证明确实是文档说错了。
    image

  • 相关阅读:
    AWS Redshift 采坑记
    EF Core 小工具
    Setup .net core EF
    Bat 使用MSBuild 制作发布包 (更新20180713)
    Https web Api 拉取数据踩坑记录
    C# 后台程序 通过批处理进行监控
    C#计算日期步进
    IIS 预热 (8.0及8.0以上版本)
    MSBuild 执行文档,关于使用命令行编译
    基于Bamboo的CI配置汇总(.Net Web及Api)
  • 原文地址:https://www.cnblogs.com/breezemist/p/14548146.html
Copyright © 2011-2022 走看看