We cull our light sources by inserting their light volume into the Umbra::Scene as TARGET objects. Now, when the camera moves inside the light volume Umbra determines the light object to be hidden. Is there a way to get this to work?
There is a very simple solution for this. You should tag the light area object as SceneObject::VOLUME instead of SceneObject::TARGET when creating it. This is an excerpt from the documentation regarding this object type:
"VOLUME objects have a solid interior as well as a solid surface. This is useful for large target objects that may contain the camera, such as lighting volumes. A query will show a large volume target object as visible for a camera in the inside even if the line of sight to the object's surface is occluded, while a similar non-volume target may be occluded. Due to the way the inside volume of the object is determined, volume objects should always have models that have no holes in their surface and have all surface polygons facing towards the outside of the object. If possible, volume object models should be convex."