SceneKit计算可视界限?

时间:2014-07-03 20:16:17

标签: ios scenekit

因此,根据标题,我试图弄清楚是否有一种很好的方法来计算场景的边界,因为通常的框架/边界属性在上下文中确实不起作用。

我基本上需要一种方法来检查对象是否已根据xFov / yFov / zNear / zFar的相机设置移出可视屏幕。到目前为止,我还没有找到一个好方法。我是否忽略了这里的任何API方法,还是需要手动计算?

我希望我在这里有意义,如果没有请告诉我,我会进一步澄清。

1 个答案:

答案 0 :(得分:7)

SCNView符合SCNSceneRenderer,后者又有一个名为isNodeInsideFrustum:withPointOfView:的方法,这就是您要寻找的方法。根据{{​​3}},它返回:

  

YES如果测试节点的边界框与pointOfView节点定义的视锥体相交;否则,NO


使用它看起来像这样:

BOOL isInside = [sceneView isNodeInsideFrustum:nodeToTest
                               withPointOfView:sceneView.pointOfView];
if (!isInside) {
    // the bounding box of nodeToTest is not in the viewport ...
}