SceneKit – Occlusion culling

I’ve played with SceneKit on iOS 8 for quite a while, and recently, I run into a situation in which I need to detect if a node does not appear on the viewport. Occlusion culling might be a possible solution. Therefore, is there any occlusion culling option available from SceneKit, and if not, what are other suggestions that I might wanna try? Thanks!

OpenTK Graphics Card Crashing During Occlusion Culling

I recently implemented Frustum culling in my game, and in an attempt to squeeze every last drop out of my render cycle I also decided to implement Occlusion Culling. It works brilliantly, however, I w

Most efficient algorithm for mesh-level, optimal occlusion culling?

I am new to culling. On a first glance, it seems that most occlusion culling algorithms are object-level, not examining single meshes, which would be practical for game rendering. What I am looking fo

3d Occlusion Culling

I’m writing a Minecraft like static 3d block world in C++ / openGL. I’m working at improving framerates, and so far I’ve implemented frustum culling using an octree. This helps, but I’m still seeing m



Occlusion with octrees

I just started learning opengl and writing a first person shooter but I’m getting horrible framerates when I draw 5000 cubes. So now I’m attempting to perform occlusion and culling using an octree. Wh

XNA, occlusing culling and collision detection

I’ve put together a quadtree/BSP hybrid prototype to test collision detection and occlusion culling in the engine for an XNA game I’m putting together. As I understand it, one of the optimizations tha

OPENGL ARB_occlusion_query Occlusion Culling

for (int i = 0; i < Number_Of_queries; i++) { glBeginQueryARB(GL_SAMPLES_PASSED_ARB, queries[i]); Box[i] glEndQueryARB(GL_SAMPLES_PASSED_ARB); } I’m curious about the method suggested in GPU GEMS

Occlusion algorithms collection

The occlusion algorithm is necessary in CAD and game industry. And they are different in the two industries I think. My questions are: What kind of occlusion algorithms are applied respectively in th

C/C++ OpenGL Occlusion Culling

I’m trying out raw OpenGL, so I decided to code very, very simple game based on 3d blocks, something a’la retarded Minecraft game, just to improve my skills. Last problems I’ve met with were cullings.

SceneKit basics

I am just starting to experiment with SceneKit. Trying a very simple code to create an object, assign physics to it give it a velocity with a tap. So far I was able to create it, apply physics. I was

Extracting vertices from scenekit

I’m having a problem with understanding scenekit geometery. I have the default cube from Blender, and I export as collada (DAE), and can bring it into scenekit…. all good. Now I want to see the vert

Answers

SCNView, via the SCNSceneRenderer protocol implements isNodeInsideFrustum:withPointOfView:

It let you test if a node is visible from a given camera.

https://developer.apple.com/library/mac/documentation/SceneKit/Reference/SCNSceneRenderer_Protocol/Reference/SCNSceneRenderer.html#//apple_ref/occ/intfm/SCNSceneRenderer/isNodeInsideFrustum:withPointOfView:

The isNodeInsideFrustum:withPointOfView: method tells you if a node is inside the camera’s field of view, but it won’t tell you whether it’s occluded by other scene geometry.

If you need occlusion testing, a frustum test is a good place to start. Once you know a node is in the view frustum, you can do hit tests to see if there are any nodes in between. If the results of a hit test include nodes other than your target, it may be at least partially obscured.

Hit testing won’t get you extreme detail (like whether any rendered pixels of one node would be visible behind those of other nodes), but it might be enough for what you need. You can refine the sensitivity of hit testing a bit with the options parameter and by choosing which points to test — e.g. just the center of a target node or the corners of its bounding box. Hit testing has a CPU performance cost, too, so you’ll have to find the right tradeoff between the functionality you want and your target frame rate.