Две идеи, которые я имею в виду:
1) Сцена отображается в невидимом буфере с использованием моделей низкого разрешения и низкого количества полигонов (или даже с использованием только ограничивающих объемов, таких как кубы или сферы). Затем проверяется буфер, чтобы узнать, что видно или нет. Перед рендерингом сцены с низким разрешением можно применить отбраковку усеченного конуса, чтобы удалить как можно больше объектов.
2) Инструмент запускается на статической карте и выполняет сложную (и, следовательно, медленную) трассировку лучей, чтобы узнать для некоторых трехмерных позиций на карте, что видно, а что нет. Вся эта информация затем сохраняется эффективным способом, который может быть использован пользователем позднее во время выполнения (например, октавное дерево). Это решение будет работать только для статических сеток (например, для построения), а не для движущихся объектов.