Уважаемый, а у вас umbra в каком-то скомпилированном виде (dll) или там есть что то типа исходника ?
Читал тут случайно про них. Очень интересно как они строят и вроде еще хешируют для поиска области. На картинке в презентации для 2Д случая - вроде еще как-то понятно, но для 3Д (не карта вид сверху, а дома и стены с окнами и дырами) получается что-то типа octree или что вообще ?
Вот описание
http://www.gamasutra.com/view/feature/164660/sponsored_feature_next_generation_.php?print=1, которое нашел, но как это делается - там не написано и как эти данные хранятся - тоже не понятно.
И судя по тому, что сначала делается предварительный расчет, а потом уже на основе этих данных определяется что видимое что нет - с подвижными и разрушаемыми объектами это в прямом виде не работает. По крайне мере - требуется перерасчет видимых областей после разрушения и удаления или перемещения объектов.