UnkleMike VHLT v34 Custom build with shadow from studiomodels
Первый релиз моих кастомных компиляторов на базе VHLT (с поддержкой теней от студиомоделей) вы можете найти здесь. И там же прочитать основные возможности и для чего они вообще нужны. А здесь я расскажу как появился этот апдейт, и что в нём изменилось. Данный апдейт является побочным положительный эффектом, связанным с разработкой полностью своих компиляторов для P2:Savior. Подробнее о процессе разработки тех компиляторов можно прочитать здесь, если кто-то еще не видел. В обсуждении той темы мы пришли к выводу, что во первых мой формат BSP31 уже неактуален, а вот иметь в комплекте с десяток копиляторов под разные форматы - очень неудобно. Было принято решение о доработке BSP30 (стандартного халфовского формата), с возможностью увеличения лимита на клипноды, без нарушения формата. В своих компиляторах я это сделал. Однако во время разработки мне нужен был некий референс, чтобы сравнивать качество работы моих компиляторов с VHLT. Билды собранные под BSP31, уже как вы понимаете для этого не годились, а билды для BSP30 не могли жевать большие карты - падали с ошибкой MAX_MAP_CLIPNODES. Я рассудил что будет полезно доработать мои UMHLT v.34 до актуального формата, т.к. поддержка BSP31 в скором времени исчезнет в движке и нам неплохо бы иметь набор как из моих компиляторов так и из оригинальных VHLT. Собственно это они есть. Кроме поддержки расширенного BSP30 (без лимита на клипноды), были проделаны следующие изменения:
- DEFAULT_NODE_SIZE был изменён с 65536 на 2048.
- Внедрён ZHLT_PLANETYPE_FIX2 (то что мы обсуждали, когда глубина рекурсии построенного дерева произвольно гуляет от компиляции к компиляции).
- Исправлен баг в коде трассы HLRAD, который я туда посадил в прошлой версии (влияло только на рассчёт лиф амбиент лайтов, так что не особо критично.
- Поправлено несколько макросов для компиляции в различных вариантах (китаец кое-где не уследил).
В дальнейшем этот билд можно использовать как референсный при отладке моих собственных компиляторов, а можно просто использовать как и преведущую версию. Единственное что - в архиве нету бинарников под 64 бита, но если вы мне их скомпилите, то я включу.
Версия движка, которая полностью совместима с этими компиляторами доступна тут. Теперь, начиная с этой и все последующие версии совместимы с этими компиляторами.
Update at 11.05.2018
- архив с компиляторами помещён в аттач этой темы. Сам архив не изменился.
Update at 24.05.2018
- в архив включены исполнительные файлы под 64-х битную платформу. Compiled by MaSTeR.
ВНИМАНИЕ!
Данный архив ничем не отличается от архива в теме на CSM. Проект действительно завершён и я не планирую возвращаться к нему больше. Однако, здесь я могу реагировать на ваши некоторые багрепорты, если кто-то захочет разобраться самостоятельно, т.к. я получал некоторые репорты о пропадающих решётках, отдельному лайтстилю солнца и прочему. Скорее всего надо просто закомментировать какой-то параметр в cmdlib.h и пересобрать компиляторы заново. Так же я не несу ответственности за 64-х битную версию, её собирал форумчанин с CSM MaSTeR. Но он не выходит на связь уже больше месяца.
Дядя Миша, возможно ли добавить поддержку компиляторами параметра _maxlight? И есть ли возможность сделать несколько black_hidden текстур?(для реализации некоторых вещей)
Есть ли возможность добавить func_areahint, который а) имеет список имен таких же func_areahint для видимости из этого блока контента другого (из блока 1 я вижу блок 2). Причем влияние оказывать на все листья внутри блока. Вторая функция: из блока 1 я вижу следующие энтити: "их имена". В ориджинах этих энтити можно создать дополнительный виз блок.
Очень полезная вещь, мапперы будут признательны за такую возможность
Еще использую info_sunlight для яркого(почти фуллбрайт) освещения модели в игре(поскольку fullbright нету в кс). Хотел пойти дальше, но вот тут проблемы имеются:
Не хватает ключа targetname. Ключ target странно работает(толи для энтити отдельный скайбокс нужен? Но оно как-то и не работает почти) Предполагается, что эффект от энтити будет применен только к объекту в поле "target", но он может примениться абсолютно ко всем моделям. Также, изменять прозрачность выбранной модели невозможно, поскольку будет дефект отображения.
После компиляции, info_sunlight превращается в light_environment и добавляется ключ "_fake" "1", но что есть он, что нет его, ничего не меняется.
Возможно починить данную энтить?
Скомпилил карту с выключаемыми светотекстурами, и получил то, что в аттаче. Правда, компилил я с помощью p2 тулзов. Перепробовал три набора, лишь на zhlt 2.5.3 увидел кучу строчек с варнингом.
Расклад такой: p2rad варнинг пишет, но я его проглядел, там всего 2 строчки, они не бросаются в глаза. hlrad30 ничего не пишет. zhlt 2.5.3 заспамляет всю консоль сотней строк с варнингом. Может быть, будет полезно знать тем, кто ещё юзает кастом билд vhlt v34.
В оригинальных компиляторах выключаемые источники:
1. имели cutoff 1 (вместо 0.04)
2. игнорировали радиосити
отсюда и возможность их налепить по 10 штук на квадратный метр, не выходя за лимиты. Сейчас достаточно одну лампочку сделать выключаемой и всё. Этож не Метро.
Ku2zoff ну что, напишешь тутор, как ты "без прочей шняги" управился?
Дядя Миша писал: напишешь тутор, как ты "без прочей шняги" управился?
Мне осталось разобраться с выделением студиомоделей. Способ из pm_debug для них на клиенте не работает (у них mins/maxs имеют относительные значения, а не абсолютные, я так понял). Надо пячить код StudioDrawHulls, и использовать его. Как с этим закончу, можно считать, что работа готова.
Дядя Миша перестала запускаться карта, сервер падает с ошибкой FATAL ERROR (shutting down): Cache_TryAlloc: 13223712 is greater then free hunk.
С полностью отключенными плагинами, сервер по-прежнему падает. Насколько мне известно, это из-за большого количества текстур, веса, на карте.
Карта компилируется только данными компиляторами(Влузакн и другие не могут скомпилировать).
Для чего в bsp вшиты более 140 текстур, закрашенных сплошным черным цветом? В них есть смысл? Существует ли возможность исправить эту ситуацию?
Дядя Миша писал: Что и мои p2st не берут? Да быть такого не может.
Но там некоторые энтити игнорируются, нужные мне или я заблуждаюсь. (возможно спутал с LightBaker3000).info_sunlight/light_surface
Цитата:
Дядя Миша писал: стёкла с освещением типо. Это китаец придумал.
Это при наличии параметра zhlt_embedlightmap? Тогда это объясняет наличии текстур, ибо раньше я не использовал этот ключ. Хотя нет, я тут вспомнил, что черные текстуры появлялись и без этого ключа. Есть ли возможность отключения этой функции?
Сейчас с товарищем выяснил, что сервер крашится не из-за новой версии карты, а из-за новой версии модельки со 150+ сабмоделями, весом 12 мб. При весе в 10 мб, сервер не падает.
Прощу прощения за беспокойство), было несколько карт, которые использовали много текстур размера 512x512 и на них была данная ошибка. Сократив количество текстур, проблема была решена, думал и здесь также(
chakki.skrip писал: Но там некоторые энтити игнорируются, нужные мне или я заблуждаюсь.
light_surface и info_sunlight у меня действительно нету. Но ведь карта-то собирается?
Цитата:
chakki.skrip писал: Это при наличии параметра zhlt_embedlightmap?
да
Цитата:
chakki.skrip писал: а из-за новой версии модельки со 150+ сабмоделями, весом 12 мб. При весе в 10 мб, сервер не падает.
в халфе студиомодели не проверяются ни на какие лимиты. Даже если ничего не упало, это еще не значит, что память не испорчена. Возможно упадёт чуть позже.