upvote
Dynamic occlusion culling is pretty common these days now that the GPU can do its own filtering of the draw list. I think it goes like:

Start with a list of objects that were visible last frame. Assume they are visible this frame. Go ahead and draw them.

Then, for the list of things that were Not visible last frame, draw bounding box queries to build a conservative list of objects that might actually not be occluded this frame. This is expected to be a short list.

Take that short list and draw the probably-newly-visible objects.

Have queries attached to all of those draws so you end up with a conservative list of all of the actually-visible objects from this frame.

This obviously has problems with camera cuts. But, it works pretty well in general with no preprocessing. Just the assumption that the scene contents aren’t dramatically changing every frame at 60 FPS.

reply
Douglas little has a neat trick for dynamic voxels, see the ‘sparse voxel octree’ demo:

https://youtu.be/nHsgdZFk22M?si=Yt_m0W6OozSm4TkW

Allows Minecraft on a 16mhz Falcon

reply
Roblox just gave a talk at this exact intersection of topics (user generated content and high performance culling) last month at GDC.

https://schedule.gdconf.com/session/optimizing-a-large-time-...

reply
Yes, although the GDC paper is paywalled.

But see Roblox's own summary at: [1]

[1] https://devforum.roblox.com/t/occlusion-culling-now-live-in-...

reply
I was thinking about this problem a few days ago, imagining a semi-online game where players could create a collective city by plotting buildings. The "grid" would be some kind of pre-determined voronoi pattern, in theory making occlusion culling easier.
reply
If the main goal is to limit sight lines, there are a lot of potential tessellations that will give that effect, while also being predictable and infinitely repeatable. For example, imagine a regular city grid, except every roads is a wavy S-curve.

I bet there is a special math term for "tilings that do/don't contains infinite lines", but I wasn't able to find it quickly. It's not the same as (a)periodic, since a periodic tiling could block the lines, and an aperiodic tiling could have one giant seam down the middle.

reply