ARKit 会话中的远平面有多远?

How far is the far plane in an ARKit session?

所以,

我一直在使用 SCNSceneRenderer 上的 unproject 功能:

public func unprojectPoint(_ point: SCNVector3) -> SCNVector3

当我想取消投影屏幕点时,我传入 Z = 1。

为了检查情况,我还在场景中的未投影矢量位置放置了一个节点。事情似乎已经结束了。

在这个过程中,我想知道 ARKit 是如何处理近平面和远平面的。

记录时远平面上的未投影点给了我这个,这是我指向相机的时候(世界坐标中尽可能直的停机时间-Z):

SCNVector3(x: 121.191811, y: -176.614227, z: -1111.88794)

鉴于ARKit中的单位是米,-1111是不是表示远平面在1K左右?

我想了解近平面和远平面在 ARKit 会话中是如何定位的,具体来说,远平面是否处于固定位置,也就是说,它是否始终与相机保持固定距离?它改变了吗?大约 1K 米似乎有意义吗?

unprojectPoint函数使用与相机相同的投影。如果您想知道相机投影的近平面和远平面是什么,请询问视图的 pointOfView node, ask that node for its camera, and ask the camera for its zNear and zFar 设置。