Ну чтож, судя по всему, пора переходить на октодерево. BSP вообще не справляется, да мне он по сути и не нужен.
Единственное, что от него полезное использовалось - в паре с генерацией порталов - обрезание наружних невидимых полигонов. Но народ давно их вручную красит, так что не имеет никакого значения.
Заодно и наличие\отсутствие дырок не будет влиять на процесс сборки.
К тому же октри всегда строится налиту, его незачем хранить в карте.
И это будет универсальное единое дерево, как для мобов, так и для статики.
В квейках приходилось поверх лепить еще одну абстракцию, что было неудобно.
Дядя Миша писал: Но народ давно их вручную красит, так что не имеет никакого значения.
Заодно и наличие\отсутствие дырок не будет влиять на процесс сборки.
Это тот народ который строчки в delta.lst сортирует и моды по 20 лет делает. Так себе пример, короче говоря.
На текущем этапе разработки BSP там скорее как топор в каше.
Для открытых пространств он не годится. Точнее говоря - не годится чтобы с его помощью эффективно находить видимое в пирамиде. Поэтому я его не юзаю. Он щас только для трассы и контентсов используется. Ну опять таки - нам надо два дерева, AABB и BSP. Хотя мы могли бы прекрасно линковать вообще всё в единое дерево, а само дерево строить налиту.
С видимостью\окклюженом тоже самое - это всё через кастомные порталы реализуется. Брашам дерево тоже не нужно. Не ну можно конечно его оставить из принципа. Надо посмотреть сколько памяти octree занимает, так-то бсп тоже прилично весит, если считать все его индексы.
Между прочим в сталкере лайтмаппер считал свои лучи вот как раз на основе октодерева + неэффективный хэшинг по сурфейсу (я его как раз выкинул и заменил на AABB tree). Так что неудивительно что там лайтмапы считались неделями.