Вот вам для понимания картинка виздерева, циферками обозначены номера лифов. Красной циферкой - аутсайд лиф, общий. Как видите тут очень много ссылок на второй номер лифа виздерева. В реальном дереве там конечно был какой-то свой уникальный лиф, но это неважно, потому что у всех этих уникальных лифов была ссылка на один и тот же указатель виздаты. Мой оптимизатор дерева исходит из очевидных предпосылок - если у ноды ссылки на детей оканчиваются одним и тем же лифом - такую ноду можно выкинуть. Если у ноды дальше по дереву всего два уникальных лифа, причём один из них общий, то такую ноду тоже можно безболезненно выкинуть, оставив только ссылку на ненулевой лиф. Почему - понятно, этож дерево видимости, за пределами уровня, оно всё равно значения не имеет, так что на его целостность это не влияет. Но вот иногда бывают такие мерзкие случаи как накартинке. С которыми я решительно не знаю чего делать. Да и нужно ли с ними что-то делать вообще. Время покажет.
Добавлено 03-11-2019 в 15:18:
Результаты для быстрого построения визтри и для медленного.
Конечно далеко не на каждой карте такая разница большая.
Добавлено 03-11-2019 в 17:06:
У меня тут еще появилось вот какое соображение. Дубликаты проявились только на картах, собранных промежуточной версией p2st. Возможно там что-то неоптимальное было. Надо будет пересобрать и проверить заново.
Ну плане, какие фэйсы получаются из брашей, сформированных из не-аксиально ориентированных плоскостей. Помнишь вот те гнутые тоннели у меня на карте и сколько с ними проблем было (а часть до сих пор осталась), как оно с новым подходом? Мне ведь чому кутришный формат симпатичен -- в силу его предсказуемости: как в джеке браши порежу, так и буду уверен что в игре оно будет идентично (а если уж алгоритм всё таки слажает, то детайл спасёт). А в случае с хлбсп -- половина времени уходит на поиск компромисного варианта, на котором не будет микрофэйсов и дырявых клипнод.
Та бсп-ж её корёжит. Вот тут nocsg=1, а тем не менее всё равно микрофэйсы есть, и чем геометрия сложнее, тем эта проблема острее вылезает*. В результате, в джеке всё выглядит ок, а в игре потом приходится эти места запоминать, переделывать, проверять, снова переделывать и пр. Ты-ж не представляешь даже насколько это отнимает время и силы при создании карты. Не говоря уже о времени компиляции**.
*гротто2 так вообще проще снуля будет сделать, видимо -- моделью.
**гротто2, если память не отшибло, минут 40 собирается (бсп+виз), на кутришном -- 2-4 минуты вместе с освещением.
ну почему это не представляю? очень даже хорошо представляю.
Это ведь ещё на самом деле приводит к тому, что приходится очень заморачиваться над неаксиальными конструкциями, задумываться как бы так изловчиться, сколько граней делать, с хинтбрашами эксперементировать. Т.е. создаёт огромное количество совершенно бестолковой экспериментальной активности призванной как-то скомпенсировать принципиальные недостатки алгоритма с помощью ручного тюнинга, вместо, собственно художественного процесса.
Цитата:
бсп может ну максимум некоторые микрофейсы выбросить поидее. Ну что еще?
Ну разрезы же делает он? Выкидывание да, это ещё одна головная боль -- приходится осматривать карту, а потом долго и упорно пытаться найти такую конфигурацию, где их не будет. p2st выкидывает меньше конечно, но там тоже проблема бывает, когда все эти микробраши оказываются очень тонкими, то на них лайтмэпа плохо ложиться, ну и клипноды лажают -- то дыра, то застревание. Ну и опять же, чем сложнее конструкция -- тем всё это сильнее вылезать начинает.
Цитата:
да там такое асвищенее, лучшеб его не было.
Ну не настолько прямо что совсем плохое, хотя грязи немного есть, да. А с чем вот эта плохость, кстати, связана? Я помню, что там дело, вроде, в трассе, но это какое-то принципиальное ограничение, или возможно ли это качество улучшить пусть даже если время расчёта финального освещения возрастёт раз в 10?
Но вот то что подбор оптимальной геометрии и bsp+vis компиляция растягиваются -- это очень нехорошо, на самом деле, особенно, с увеличением размера карты. Если для черновой компиляции можно было-бы посчитать освещение уровня даже хуже чем ку3, а для финальной оставить компилироваться на пару-тройку часов -- это было бы удобней, по моему.
Я вот что понять-то не могу. Вот взять сипульчер. Ну хорошо может там не прямо сложная геометрия. Но всё компилится, микродырок нет. Что родными компиляторами, что моими. Далее. Не скажу за p2st, но XashNT Tools прекрасно собирают родные кутришные карты - q3dm1, q3dm7. Со светом. Опять таки - некоких дырок, выпадающих полигонов там нет и близко. Достаточно простые карты? Ну хорошо Edge Of Forever достаточно сложная? А там снова идеальный результат. Но почему-то у Тхамбса проблемы на простейших скруглённых тоннелях вылезают, я этого решительно не могу понять. Гротто - там да, неисключено, такое вообще никто не рисковал компилировать в BSP. Но чтобы тоннели?
Дядя Миша писал: Гротто - там да, неисключено, такое вообще никто не рисковал компилировать в BSP. Но чтобы тоннели?
Ты говорил что и Сепульчер, и карты в Ку3 все держатся в рамках кубика +-8192 юнита, и что q3map2 за этими пределами начинает дивным образом плющить. Может в этом проблем и thambs где-то на границе сетки мапает?
Ну точность флоата как бы никто не отменял, это правда. Но во первых в компиляторе даблы, а во вторых точность сохраняется до диапазона +\- 16384 примерно. Если гротто выходит за рамки, там возможны какие-то проблемы с генерацией порталов, да собсно всё упирается в эти долбаные порталы, там ОЧЕНЬ важна точность. Альтернатива вам хорошо известна - вручную расставлять окклюдеры у каждого дверного проёма.
Так, ну штож. С брашами подразобрались, настала очередь моделей. Может показаться, что я просто беру и копироваю код из паранои, но параноя писалась с учётом особенностей Xash3D, многие вещи нуждаются в переработке, можно сделать гораздо оптимальнее. Да и вообще в халфе эта дурь с сетапом костей в рендерере очень сильно вставляет палки в колёса. Вот зачем рендереру заниматься сетапом костей? Зачем ему вообще это нужно? Ему это никак не нужно. Ему просто надо получить кости из энтити и всё.
Я правильно понял из вашей беседы, что в ку3 компилятор на нарезает геометрию на куски как, например, на скриншоте Тхамбса (обратите внимание на тоненькую полосочку, отрезанную от прямоугольного фейса на стене)? При этом там нормально строится и работает бсп-дерево и всё такое?
Выходит, вся эта канитель с кучей лишних треугольников, микрофейсами, корявой геометрией и швами нужна только чтобы трассу легко строить по дереву? При условии, что Кармак справился с этим 20 лет назад?
Дядя Миша писал: Но почему-то у Тхамбса проблемы на простейших скруглённых тоннелях вылезают, я этого решительно не могу понять.
Т.е. скруглённый тоннель из world-брашей как у thambs должен переезжать в игру 1-в-1 без всяких дополнительных разбиений типа тех что мы видим на картинке?