Наиболее проницательные товарищи уже наверняка догадались, что новый формат карт подоспел аккурат ко дню рождения движка и это далеко не случайность .
Итак, технические характеристики и описание:
Формат карт BSP31 является расширенной версией формата BSP30 (Half-Life), призванный убрать "узкие места" текущего формата не затрагивая бинарной совместимости с уже имеющимися модами. Поясню что это значит: расширение лимитов как правило осуществляется заменой 16-битных переменных на 32-битные, что влечёт за собою изменение структур хранения данных в самом движке и является крайне нежелательным, поскольку эти структуры доступны из игрового кода и могут активно использоваться некоторыми модами (например XashXT).
В данном случае бинарная совместимость была сохранена полностью. Но обо всём по порядку.
Номер версии - 31. Это сделано специально, дабы GoldSrc не пытался грузить такие карты, ну а мы имели маркер, который точно указывал что мы имеем дело с новой версией. Тем не менее, если сменить номер обратно на 30, то карта будет успешно загружена, хотя и будет некорректно выглядеть (съедут лайтмапы, возиться и.т.д).
Основные отличия от BSP30 - увеличен лимит на клипноды в 3 раза.
Технически это реализовано следующим образом. Как мы понмним клипноды для трёх хуллов сохраняются в один и тот же массив что приводит к его быстрому израсходованию. Я распределил деревья для разных хуллов в три отдельных лумпа. Таким образом LUMP_CLIPNODES у нас содержит только клипноды для первого хулла, LUMP_CLIPNODES2 - клипноды для второго хулла и LUMP_CLIPNODES3 - соответственно для третьего. Это означает автоматическое увеличение лимита в три раза, однако не всё так просто, как вы понимаете - достаточно хотя бы одному дереву исчерпать свой запас клипнодов и карта уже не скомпилится. Однако практика показывает что это крайне проблематично.
Второе отличие - это соотношение кол-ва текселей на люксель (пикселей текстуры на пиксель лайтмапы). В кваке да и в халфе тоже это значение равно 16. Это означает что на 16 текстурных пикселей (с учётом текстурной матрицы, настроенной мапперов в редакторе) нам достанется ровно 1 люксель. Максимальный размер такой лайтмапы никогда не превысит 16х16 (с учётом разбиения поверхностей с шагом 240 юнитов).
Порой этого бывает явно недостаточно, поэтому было принято решение уменьшить кол-во текселей на люксель до 8 штук. Это дало более чёткие тени без обычных мапперских ухищрений с уменьшением скейла основной текстуры (и как следствие - вырождению кучи полигонов, лежащих в одной плоскости). Максимальный размер лайтмапы вырос до 64х64, что даёт вполне себе чёткие и красивые тени. Естественно при увеличенной лайтмапе вполне логично было бы увеличить и размер субдивайда фейсов.
Текущий вариант предполагает разбиение с шагом 512. Технически это не совсем корректно, т.к. идёт слабое наполнение лайтмап в движке что приводит к их перерасходу (результирующие блоки могут иметь размер немного более 64х64). Однако это всего лишь тестовая версия и в дальнейшем можно будет что-либо подкорректировать.
Компиляторы карт построены на базе VHLT 30 (это который финальный), также, чтобы не нарушать гармонию все сделанные изменения заключены в #ifdef ZHLT_NEW_BSP_VERSION который можно заккоментировать и вернуться к обычному BSP30.
Исходники компиляторов будут доступны одновременно с ксаш-модом версии 0.61, когда всё окончательно устаканится.
На данный момент я предлагаю вам протестировать то, что уже имеется, возможно поискать какие-то ошибки, но помнить при этом, что моё вмешательство минимально, а компилятор базируется на VHLT версии 30.
www.hlfx.ru/xash/newformat.7z - 34 Mb мод с двумя картами-тяжеловесами, как мы помним - арканос и кнот. Падение фпс на кноте обусловлено динамическим освещением: лайтмапы стали больше по размеру и их обновление занимает больше времени.
В аттаче - новая версия движка с поддержкой нового формата карт.
Официальный билд с исходниками будет доступен к концу года после основательной ревизии исходников, которой никто не делал уже больше двух лет.
Жду ваших комментариев и предложений.
Вложение: xash_build2136.7z (477.5 кб)
Этот файл был скачан 558 раз.
Дядя Миша
Мне вот интересно, лайтстили это только 1 доп карта в состоянии офф/он которую сам интерполирует движек, или анимация из нескольких кусков где одно и тоже освещение записывается с разной интенсивностью для кажого кадра анимации?
Так же заметил что фонарик в таком случае очень маленький рисуется, нельзя ли в движке сделать доп. проверку на версию бсп для фонарика?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Ну что сказать... На DM_Knot жуткое падение фпс. В норме у меня не падает ниже 50, тут же проседает до 20. Неиграбельно. На Арканосе всё норм, выжимает положенные 60, которые позволяет всинк.
Кстати, на ноуте (GeGurda 9300M GS, Core 2 Duo 2 ГГц) - ниже 50 не падает никогда.
__________________
Владелец восьмиструнного монстра Schecter Omen-8 Vintage White (VWHT)
Бывал на концертах этих групп: Rashamba, 7000$, Louna, Molecul, Project Revolution, Headsource, Digimortal и многих других. Куча автографов.
Я член возлагаю на сраный геймдев.
FiEctro писал: Мне вот интересно, лайтстили это только 1 доп карта в состоянии офф/он которую сам интерполирует движек, или анимация из нескольких кусков где одно и тоже освещение записывается с разной интенсивностью для кажого кадра анимации
FiEctro писал: Так же заметил что фонарик в таком случае очень маленький рисуется, нельзя ли в движке сделать доп. проверку на версию бсп для фонарика?
Я тебя разочарую. Большие лайтмапы никоим образом не влияют на зависимость скейла для длайтов, она как была так и осталась, никуда не делась. Тут только "фонарик из паранои" спасёт. Да, собственно, формат задумывался для ксаш-мода, где нет этой проблемы.
Цитата:
Ku2zoff писал: На DM_Knot жуткое падение фпс
Лайтстили + неоптимальное размещение кусков лайтмап из-за субдивайда 512 + неоптимальное дерево, которое строит VHLT, вполне закономерный результат. Набери в консоли r_dynamic 0 и фпс упрётся в потолок.
может имеет смысл добавить квар r_dynamic 2, который разрешает обычное переключение лайтстайлей по триггеру, но запрещает все мигающие и пульсирующие лампочки, или оно всё в коде мода?
В старом ксаше был у тебя лайтмаповый фонарик который независил от размера лайтмап. Зачем вообще нужна такая зависимость от скейла?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
thambs писал: может имеет смысл добавить квар r_dynamic 2, который разрешает обычное переключение лайтстайлей по триггеру, но запрещает все мигающие и пульсирующие лампочки, или оно всё в коде мода?
А смысл? Сами по себе мигающие лампочки фпс едят не особенно сильно. Это просто на кноте "удачное" стечение обстоятельств - 4 лайтстиля, которые затрагивают большие области и видны с определенных точек разом. А так-то фпс даже подрос (попробуй скомпилить свой monorail1a, кстати).
Добавлено 13-12-2012 в 20:42:
Цитата:
FiEctro писал: В старом ксаше был у тебя лайтмаповый фонарик который независил от размера лайтмап
мля. Это был точно такой же проективный фонарик как длайт в ксаш-моде. Просто он выглядел так интересно.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Погонял, арканос вполне себе играбельный даже (я только застрял там в паре мест), кнот местами садится до неиграбельных фпс, как и ожидалось.
Цитата:
Дядя Миша писал: Это просто на кноте "удачное" стечение обстоятельств - 4 лайтстиля, которые затрагивают большие области и видны с определенных точек разом.
Это стресс-тест ) Ну, и попутно мощное доказательство того, что не полигоном единым, так как пара-тройка тыщ wpoly будут рисоваться быстрее, чем тыща с несколькими лайтстилями разом.
Цитата:
FiEctro писал: Тени от солнышка шикарны
Похожи на кутришные с выскоим разрешением лайтмап.
Михаил, у тебя ж остались исходники кустайла? Чота там с освещением все совсем плохо, кинь мне rmf в личку, поправлю. А то стыдно за.
Вот кстати да. На кустайле всё как-то однотонно и серо.
Новый формат сделал карты красивее, да. Если починить фпс - будет не только классно выглядеть, но и нормально играться.