我有一个使用AR
创建的小型SceneKit
引擎。与ARKit
相比,我不是很轻巧,因此它可以在较旧的设备上运行,这就是为什么我仍在开发它。最近,我注意到显示的objects sizes
中存在一个小错误-它们看起来有点太大(距离80厘米距离30厘米大约1厘米)。我想解决此问题,但我不知道如何解决。我曾经将SceneKit camera
fieldOfView
设置为camera device
fieldOfView
的值,并在AspectFill
中显示视频。还调整了SceneView
框架以适合video
的宽高比,但是我正在16x9设备(iPhone 6s)上对此进行测试,因此我们可以忽略它。有人可以向我解释为什么这些对象看起来比应该的大一些吗?我还注意到,对于我的设备相机fieldOfView
来说,它的寿命超过了58岁,而在类似的设置中,ARKit
使用的是60-不知道为什么,我认为它应该等于相机设备的读数。
什么会引起尺寸上的差异?
实际上没有很多代码可以解决这个问题
cameraNode.camera?.fieldOfView = sceneInformation.fieldOfView.vertical // Read from captureDevice.activeFormat.videoFieldOfView
sceneView.layer.frame = sceneInformation.frame // view bounds with aspect fill to fit camera preview - almost exactly the same of 16x9 device