• 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

  • 相关阅读:
    Silverlight 2中实现文件上传和电子邮件发送
    Silverlight结合Web Service进行文件上传
    silverlight DataGrid 内嵌ComboBox 实现加载和保存
    silverlight 使用IValueConverter 转换
    检测场所条件查询
    代码中的坏味道
    Prism初研究之Bootstrapper
    Prism初研究之简介
    编写可读代码的艺术
    ffmpeg怎么样处理网络流
  • 原文地址:https://www.cnblogs.com/breezemist/p/14548146.html
Copyright © 2020-2023  润新知