When occlusion culling is enabled, the engine culls shapes according to the following -
If the shape was visible in the previous frame - or its (invisible) bounding box was “visible”, then it is rendered as usual in the current frame.
If the shape was not visible in the previous frame - then only its invisible bounding box is “rendered”. This acts as a placeholder and does not produce anything in the colour buffer - but serves to allow the occlusion culling to work.
I would find 2 additional features added to this extremely useful - if they are possible!
Firstly, I would like to be able to define an empty (null) shape - which contains no allocated resources to store graphics. But I want to be able to define a bounding box for this null shape which serves the same purpose as in the ordinary occlusion query. I think currently this bounding box is determined automatically by the engine for a given shape. But if a method could be added allowing to override this bounding box with a user defined one then this would serve the purpose.
Secondly, I would like to be able to read whether or not only the bounding box of a shape was “visible” - irrespective of whether any graphics in the shape were visible in the last frame.
The purpose of these features would be to facilitate dynamic loading of shapes based on the visibility of their bounding boxes. And, if the bounding box is defined bigger than the graphics, then this would give a retrieval system advanced warning that graphics will be required. Also, if the bounding box is not visible, then the management system has information to decide if it wants to deallocate the shape.