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