首页 > 解决方案 > ARKit:更改渲染内容的 FOV

问题描述

我希望在我的 AR 会话中更改渲染内容的视野。显然我们无法更改原始相机 FOV,但我认为应该可以更改渲染的 SceneKit 内容的视野。

在原始 SceneKit SCNCamera 中更改相机视野是微不足道的......但我不知道如何在 ARSCNView 中执行此操作。

标签: arkit

解决方案


此代码将从以下位置检索相机(ARSCNView如果有):

sceneView.scene.rootNode.childNodes.first(where: { $0.camera != nil})

请注意,这将返回相机的关联节点,如果您想直接控制其位置或角度,您可能需要该节点。SCNCamera本身存储在节点的属性camera中。

如果可以避免的话,最好不要触摸 AR 相机,因为它会打乱世界模型和场景之间的关联。如果我想要一个可以选择性地使用 AR 来跟踪设备运动和角度但不必转换为真实世界坐标的控制系统(即不显示摄像头馈送的 VR 应用程序),我偶尔会使用这种技术。

本质上,我只会在您使用AROrientationTrackingConfiguration或类似的情况下这样做。

编辑我可能应该提到 ARKit 会覆盖相机的projectionTransform属性,因此您可能无法fieldOfView手动设置。我已经取得了一些成功的设置xFovyFov,但由于这些已被弃用,你不应该依赖它们。


推荐阅读