因此,根据标题,我试图弄清楚是否有一种很好的方法来计算场景的边界,因为通常的框架/边界属性在上下文中确实不起作用。
我基本上需要一种方法来检查对象是否已根据xFov / yFov / zNear / zFar的相机设置移出可视屏幕。到目前为止,我还没有找到一个好方法。我是否忽略了这里的任何API方法,还是需要手动计算?
我希望我在这里有意义,如果没有请告诉我,我会进一步澄清。
答案 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 ...
}