Even without Quill3D, if you construct an indoor level by using a single mesh per room it is then simple to make your own occlusion system.
I always use the method which is the simplest BUT one that also achieves the required performance.
A simple 'occlusion' system can be achieved by keeping a list of which rooms are visible to each other can be effective enough.
Sometimes all you need is a list of which rooms are possibly visible from the one the camera is in and just render those in near to far order, to take advantage of the z buffer.
Other times this may not be enough and you may need to use portals to check which rooms are actually visible, it all depends on how many surfaces/meshes you are having to render.
The two methods above I suppose could be called generic methods so I agree that a generic method may suffice for many games.
I always use the method which is the simplest BUT one that also achieves the required performance.
A simple 'occlusion' system can be achieved by keeping a list of which rooms are visible to each other can be effective enough.
Sometimes all you need is a list of which rooms are possibly visible from the one the camera is in and just render those in near to far order, to take advantage of the z buffer.
Other times this may not be enough and you may need to use portals to check which rooms are actually visible, it all depends on how many surfaces/meshes you are having to render.
The two methods above I suppose could be called generic methods so I agree that a generic method may suffice for many games.