所以,
我一直在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米似乎有意义吗?
1 回答
unprojectPoint
功能使用与相机相同的投影 . 如果您想知道相机投影的近距离和远距离平面是什么,请向视图询问其pointOfView节点,向该节点询问其camera,然后向摄像机询问其zNear和zFar设置 .