HLFX.Ru Forum Страницы (6): [1] 2 3 4 5 » ... Последняя »
Показать все 85 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- Новая версия VHLT с поддержкой теней от студиомоделей (https://hlfx.ru/forum/showthread.php?threadid=4910)


Отправлено Дядя Миша 17-12-2016 в 20:21:

Новая версия VHLT с поддержкой теней от студиомоделей

Вначале немного истории, как эти компиляторы вообще образовались.
Как вы наверное помните, изначально я вообще не собирался копаться в китайских компиляторах. Точнее я добавил поддержку BSP31, и попросил китайца, чтобы он включил её в официальные билды. Ну и заодно поддержку делюксмапы. Он всё это сделал, примерно с 32-й версии это попало в релиз и я думал, что на этом больше их трогать не понадобится.
А потом, как вы наверное помните я приступил к разработке второй паранои.
В процессе работы над ней понадобилась доп. информация, тангент-спейс для бампа, кубемапы, и самая интересная фича - поддержка теней от студиомоделей. Это всё было оформлено в виде некоего расширения формата (ну примерно так же Ксерокс сохранял новую инфу в HLFX 0.6) и я забыл об этом почти на год. Но в этом году произошли некоторые изменения приоритетов, в частности остановка разработки XashNT и возобновление работ над новым рендерером паранои, который будет включать в себя такие интересные вещи, как например ландшафты. Тогда я уже всеръез задумался о том, что мне нужен некий универсальный формат-надстройка, который не будет отменять старые наработки, не будет ломать совместимость и будет работать во всех модах под ксаш без исключения, а не только в параное. Важным моментом было еще и то, что мне надо было сохранить совместимость со старым расширением уровней паранои, которая уже была зарелижена (интересно вот эту херню, которую я щас написал вообще читает кто-то или сразу тыкают скачать?).
Так или иначе, я выполнил все эти условия и получил на выходе тотальное обновление компилятора. Забегая вперёд скажу, что совместимость с халфой никуда не делась и тени от моделей будут работать и под голдсорсом тоже. На данном этапе мне хотелось бы протестировать баги нахождения рабочей директории игры (и соответственно возможность загружать модельки для отбрасывания от них теней). Возможно всплывут и какие-то другие баги, посмотрим. Когда мы всё это оттестируем, я выложу исходники компилятора и вы наконец-то сможете собрать его в 64 бита, дать товарищам с форума свенкупа итак далее. Я единственно чего боюсь, чтобы они меня не приняли за второго китайца и не начали задалбывать реквестами.
Теперь немного расскажу об изменениях в новой версии (сравнивая с VHLT34).
1. расширение формата. Расширение это набор новых лумпов, который может будет как в версии для халфы (халфа его игнорирует), так и BSP31.
В основном для использования различными модами. Но частично используется и самим движком, например для регулировки качества лайтмапы.

2. возможность регулирования качества лайтмапы на отдельно взятом браше, а так же возможность изменения субдивайда на отдельно взятом браше. Это масштабируемый механизм, вы можете задавать как глобальные параметры для всей карты (в настройках worldspawn), так оверрайдить для отдельно взятого браша\энтити (для браша, который часть уровня его следует поместить в func_group).
Настройки:
zhlt_texturestep - определяет кол-во текселей на люксель. От 2 до 64.
2 - сверхчёткая лайтмапа, 64 - больше похоже на вертексное освещение.
Для халфы дефолтное значение 16, для BSP31 - 8.
zhlt_maxextent - шаг субдивайда. От 8 до 128. Работает в паре с zhlt_texturestep, поэтому субдивайд считается по простой формуле:
(zhlt_texturestep * zhlt_maxextent) - zhlt_texturestep
Пример для халфы
(16 * 16) - 16 = 240;
Пример для BSP31
((8 * 64) - 8 = 504;
получившееся значение - это через сколько юнитов будет следующий разрез. Легко догадаться, что чем реже разрезы, тем меньше полигонов и тем быстрее скорость отрисовки уровня. В халфе работать не будет, только лайтмапа съедет. Работает в Xash3D и будет работать в XashXT и Paranoia (но на данный момент обновления еще не вышли).

3. Тени от моделей. Эта фича работает везде, но с небольшими оговорками. Во первых надо понимать, что модель берёт освещение с пола, а если на полу будет тень, то она может сильно затемнить модель. Из этой ситуации умеет выходить только параноя с очень сложным лайтменеджером, но в других модах возможны косяки освещения. Будьте бдительны. В крайнем случае юзайте effects 16, чтобы модель брала освещение с потолка. Этот лайфхак годится и для ксаша и для халфы. ну опытные мапперы про него и так в курсе.
Настройки:
Для env_static в ксаш-моде и параное тени включаться автоматически, а для всех остальных модов есть параметр
zhlt_studioshadow (0\1)
самое главное, чтобы у энтити в поле model был прописан путь к модели.
Остальное уже на ваше усмотрение. Можете даже монстра заставить отбрасывать статичную тень, но помните, что он уйдет, а тень останется.
zhlt_shadowmode (0\1\2). Баланс качества\скорости рассчёта. По дефолту еденичка. Для моделей с транспарентными текстурами надо использовать именно еденичку, поскольку тени от дырявых текстур есть только в этом режиме. Режим 0 самый похабный, режим 2 самый точный. На точность еще влияет разрешение лайтмапы, но для пользователей халфы это недоступно, как понимаете.

4. Ускорение работы HLCSG (хэширование планесов)

5. Поддержка ландшафтов (для новой паранои). Пока что бесполезно для вас, хотя уже в рабочем состоянии.

6. Новая система прогресс-бара (как в сорсе). Теперь ползёт каждая точечка, а не три точки + цифра процента - удобнее наблюдать за динамикой компиляции.

7. Поддержка прозрачной мировой воды (на данный момент отключена, т.к. вызывает вылеты в раде из-за выключения HLRAD_WATERBLOCKLIGHT). Можете отключить его на чистой версии VHLT34 и покомпилить карты. Если всё равно будет вылетать - это уже не моя вина.

Остальные изменения вам вряд ли будут интересны, они скорее технические и для меня.
В архиве два комплекта - bsp30 под халфу, bsp31 - под ксаш. Ну ессно ксаш и bsp30 тоже загрузит.

Если обнаружили ошибку - обязательно прикладывайте лог компиляции.

Update at 21.12.2016
1. Переработан механизм определения игровой директории мода. Сейчас единственное требование это наличие карты в папке maps, расположение компилятора уже не столь критично. Можете так же держать его в папке maps, если кто-то так раньше делал. Однако не советую держать его на другом диске.
2. Механизм симплификации моделей отключен для zhlt_shadowmode 0 и 1, оставлен только для режима 2. В первых двух режимах он всё равно не давал особого прироста, а в тени появлялись дырки.
3. Устранено зависание компилятора, когда процент сделаной работы равен 99.9% (иногда бывает).
4. для студиомоделей выключены тени от additive мешей.

Update at 23.12.2016
Несколько мелких исправлений.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Дядя Миша 17-12-2016 в 20:22:

Ну и пожалуй приложу тестовую карту с тенями от моделек для халфы

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ncuxonaT 17-12-2016 в 20:29:

Читает.
Скорость рада как-то изменилась по сравнению с прошлой версией?


Отправлено Дядя Миша 17-12-2016 в 20:42:

ncuxonaT что за прошлая версия?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ncuxonaT 17-12-2016 в 22:23:

Дядя Миша ну старые паранойевские компиляторы

Добавлено 18-12-2016 в 01:23:

В старой версии еще тени были только от солидных env_static. В этой так же?


Отправлено ***FantoM*** 18-12-2016 в 11:26:

Цитата:
Дядя Миша писал:
3. Тени от моделей.

ошибка
Warning: LoadStudioModel: couldn't load models/box_floor.mdl
Что не так?


Отправлено Дядя Миша 18-12-2016 в 13:17:

карты надо компилить там где они будут лежать в моде
mymod\maps
иначе никак. Все кваки так компилят и только хаммер как самый умный предлагает почему-то в левую папку сохранять. Или какой-то идиот в туторе написал, а за ним уже 16 лет дружно повторяют.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 18-12-2016 в 13:33:

Цитата:
Дядя Миша писал:
Или какой-то идиот в туторе написал, а за ним уже 16 лет дружно повторяют.

Не только повторяют, но и потребовали изменить поведение джекхаммера, чтобы он сохранял в папку с исходником, а не в папку maps по дефолту. Мне пришлось пойти у народа на поводу, и вот результат.

__________________

xaerox on Vivino


Отправлено KiQ 18-12-2016 в 13:40:

Ну я обычно завожу папку имя_мода/SDK/mapsrc, это ж удобнее, чем если компилятор будет гадить всякими темп-файлами в релизную папку

__________________
-Brain is dead-


Отправлено XaeroX 18-12-2016 в 13:59:

KiQ
Проблема в том, что в таком случае компилятор должен гадать, где находятся прочие нужные ему файлы игры - в частности, модели. Обычным компиляторам-то ничего не нужно, кроме вадов - а пути к ним сохраняются в мап.

__________________

xaerox on Vivino


Отправлено FiEctro 18-12-2016 в 14:16:

Ждём 64битную версию хлрад

Цитата:
XaeroX писал:
KiQ
Проблема в том, что в таком случае компилятор должен гадать, где находятся прочие нужные ему файлы игры - в частности, модели. Обычным компиляторам-то ничего не нужно, кроме вадов - а пути к ним сохраняются в мап.




Т.е. пути к папке мода в настройках редактора существуют только для красоты? Это я про джек, к компиляции батником оно конечно никак не относится.
Для батника наверное нужно вводить отдельный ключ к ресурсам игры.

Это всё последствия концепции то что программа должна всё делать за пользователя. ДМ помню очень не приветствовал такой подход.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 18-12-2016 в 14:19:

Цитата:
KiQ писал:
это ж удобнее, чем если компилятор будет гадить всякими темп-файлами в релизную папку

code:
del /f /q *.prt del /f /q *.pln del /f /q *.p0 del /f /q *.p1 del /f /q *.p2 del /f /q *.p3 del /f /q *.b0 del /f /q *.b1 del /f /q *.b2 del /f /q *.b3 del /f /q *.log del /f /q *.hsz del /f /q *.err del /f /q *.lin del /f /q *.pts rem del /f /q *.ent del /f /q *.wa_

называешь cleanup.bat и переодически очищаешь папку maps.
нашли проблему на ровном месте.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено mittorn 18-12-2016 в 14:47:

Но... Ведь чисто там, где не мусорят!


Отправлено Дядя Миша 18-12-2016 в 15:08:

Цитата:
FiEctro писал:
Это всё последствия концепции то что программа должна всё делать за пользователя. ДМ помню очень не приветствовал такой подход.

Смотря что делать.
Вообще говоря проблема с определением путей к моду для компилятора это такая фундаментальная головная боль. В очень старом ксаше, я пробывал это разрулить путём введения команд компилятору, как у движка, ну что-то вроде: -game cs1.5 +map cs_italy
а саму папку с игрой, компилятор уже искал через переменные окружения и прочие способы. ну и все помнят к чему это привело - юзеры себе наклонировали по стопитцот версий, а механизм был рассчитан на одну.

Цитата:
mittorn писал:
Но... Ведь чисто там, где не мусорят!

в квартире с открытыми окнами пыль наносит ветром с улицы. Ну такая уж у нас планета грязная. Езжай на Марс, там нет воды и атмосферы, там чисто.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 19-12-2016 в 04:27:

Цитата:
XaeroX писал:
Проблема в том, что в таком случае компилятор должен гадать, где находятся прочие нужные ему файлы игры - в частности, модели. Обычным компиляторам-то ничего не нужно, кроме вадов - а пути к ним сохраняются в мап.

Ну значит надо это дело как-то в коде компилятора оформить. И через командную строку указывать, какие файлы оставлять в конечной папке мода, а какие нет.
Меня, например, очень огорчает, что VHLT удаляют сами часть временных файлов, в частности файлы хуллов. Так ни разу и не воспользовался фичей просмотра хуллов в джеке, т.к. хуллфайлов после компиляции не остаётся.
Цитата:
Дядя Миша писал:
del /f /q *.prt
del /f /q *.pln
del /f /q *.p0
del /f /q *.p1
del /f /q *.p2
del /f /q *.p3
del /f /q *.b0
del /f /q *.b1
del /f /q *.b2
del /f /q *.b3
del /f /q *.log
del /f /q *.hsz
del /f /q *.err
del /f /q *.lin
del /f /q *.pts
rem del /f /q *.ent
del /f /q *.wa_

Фу-фу-фу так делать вручную. И, кстати, pts и lin можно опционально дублировать в папку мода. Не помню, какой из них может грузить движок, чтобы искать дырку на карте непосредственно в игре.


Временная зона GMT. Текущее время 07:46. Страницы (6): [1] 2 3 4 5 » ... Последняя »
Показать все 85 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024