Inverse culling?

The default (and normally sensible) behaviour is culling down: removing whatever isn’t visible. But sometimes the inverse behaviour seems more reasonable. Suppose the camera is somewhere in a huge 3D maze with mirrors - by a kind of ray-tracing the program might determine what is visible, and render only that. In that way large mazes could be used with no size penalty, as long as the visible part of it was bounded.

Is this an old idea (maybe even supported by Panda3D)? A stupid or unworkable idea?

Portals have the property you describe: you only have to examine stuff in the room that you’re in, and then adjacent rooms, and it stops pretty quickly. However, portals really only work indoors.

In actuality, traversing the whole scene graph isn’t so bad, if the scene graph is nicely hierarchical. You can cull entire branches.

I should mention that panda contains some very old and probably broken portal code. However, personally, I feel that the whole portals concept is past its prime. It was really useful when games took place mostly in dungeons. But nowadays, almost every game has a few outdoor levels, and portals just don’t work for those. I don’t think it’s worthwhile to learn or fix the portals code in panda.

Instead, if I wanted to do visibility culling in Panda, I would first experiment with the algorithm described here:

gamedev.net/community/forums … _id=153497

Update: actually, I vacillate. Sometimes I think I would like to try out Coherent Hierarchical Culling. The downside is that it entangles the cull and render passes in a complicated way. In panda, these are implemented as separate passes.