HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5297)
Отправлено Aynekko 02-10-2023 в 14:22:
Цитата:
Дядя Миша писал:
Петля всё равно будет 60 герц, это не регулируется.
Кстати, забыл добавить. Почему бы просто не сделать настройку для пользователей, как в ксаше имеется sv_fps. Пусть каждый ставит скорость обновления столько, сколько хочется, в своей игре.__________________
Мой мод на Xash
Отправлено Дядя Миша 02-10-2023 в 15:21:
Такое делать нежелательно по ряду соображений. Но возможно я сделаю этот фпс регулируемым на какое-то время, чтобы найти оптимальное значение.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Дядя Миша 04-10-2023 в 08:32:
Не помню, писал ли я об этом здесь или в ТГ, но в рамках подготовки SDK я принял решение подключить минимальный набор того, без чего не обходится ни один современный движок, а именно:
- бамп
- спекуляр
- параллакс
- динамические тени
- пбр
Поскольку у меня мощная система описания материалов, то это не потребует вмешательства в движок и может быть реализовано прямо на уровне скриптов - достаточно блокнота для редактирования материалов и шейдеров. Разумеется в собственном редакторе будут более наглядные инструменты. Собственно, у меня оставалась пара незавершённых моментов - рассчитать Tangent-Space и сохранить делюкс-мапы. Когда я это сделал, на внедрение бампа потребовалось менее одного часа.

Это классический бамп по формуле
C++ Source Code:
max( dot( delux, normal ), 0.0 ) |
Как видите нижняя часть арки сильно затеняется, что в данном случае некорректно.

А это бамп с оффсетом по формуле
C++ Source Code:
max( dot( delux, normal ) * 0.5 + 0.5, 0.0 ) |
Т.е. именно по ней идёт затенение освещения в лайтмаппере. Это так называемый параметр softangle. Для Quake, где не было отражённого света он позволял получить более мягкое освещение, в противном случае это бы всё выглядело как третий Doom. Как видите, бамп стал менее ярко выраженным, но зато яркость арки подтянулась к изначальному порогу, заданному яркостью самой лайтмапы. Это собственно, основная проблема статичного бампа, чтобы его применение не затемнило картинку сверх меры. В данном случае это условие соблюдено. Да рельеф стал менее заметным, но по правде говоря чистый бамп никогда не давал вау-эффекта. Ему для этого как минимум требовался спекуляр.
Добавлено 04-10-2023 в 11:32:
Поскольку народ по прежнему не понимает с какой именно системой материалов он имеет дело, я поясню. То что я внедряю - это всего лишь один из примеров того как можно организовать рендеринг. Ни в коем случае не часть движка и не дефолтный пайплайн. Просто сэмпл.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 04-10-2023 в 09:01:
Это будет захардкоженный шейдер, или можно будет подключать к материалу свои шейдеры? Можно будет ли наследоваться от твоих шейдеров?
Поддержка ssbump будет? И как дела обстоят с бампом на моделях?
Цитата:
Дядя Миша писал:
- пбр
Кстати серые карты pbr можно расфасовать по RGBA каналам, так для сведений. Могу тебе покидать текстурок для теста.__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено Дядя Миша 04-10-2023 в 09:52:
Цитата:
FiEctro писал:
Это будет захардкоженный шейдер, или можно будет подключать к материалу свои шейдеры?
Не просто можно, а нужно! Своих шейдеров в движке нет, только пользовательские. Какой шейдер сделаешь - так и будет. Движок не предлагает вообще ничего. Иными словами, если пользователь не создал материалов и шейдеров, движок ничего не нарисует.
Цитата:
FiEctro писал:
Можно будет ли наследоваться от твоих шейдеров?
Моих шейдеров там нет 
Цитата:
FiEctro писал:
Поддержка ssbump будет?
Когда я внедрю в лайтмаппер Radiosity Normal Mapping то будет.
Цитата:
FiEctro писал:
И как дела обстоят с бампом на моделях?
Так же как и на статическом уровне. Единственная проблема - у меня нету карт нормалей для этих моделек из ремастера. Не на чем тестировать.
Цитата:
FiEctro писал:
Кстати серые карты pbr можно расфасовать по RGBA каналам, так для сведений. Могу тебе покидать текстурок для теста.
Я уже взял полный пак текстур из Q1Bers. Там же возьму из код из шейдеров. Просто для теста. Т.к. я сейчас тестирую касательное пространство в первую очередь. И надо решить проблемы с зеркальным наложением текстур. Вот это вот дерьмо:

Добавлено 04-10-2023 в 12:52:
FiEctro к тебе кстати вопрос. Насколько я понял в Unity есть четыре режима запекания лайтмап:
Single - ну тут понятно, просто яркость и цвет лайтмапы, как в халфе или кваке.
DualLightmaps - вот это вот я не понял что оно делает. Там какие-то взвешенные значения что ли. Требует твоего комментария.
DirectionalLightmapping - старая-добрая делюкс мапа
Radiosity Normal Mapping - как в Сорсе.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Aynekko 04-10-2023 в 11:35:
Цитата:
Дядя Миша писал:
Моих шейдеров там нет
А зря, было бы неплохо иметь стартовый пак графония, от которого можно отталкиваться и изменять. Хотя бы на уровне п2.__________________
Мой мод на Xash
Отправлено FiEctro 04-10-2023 в 12:10:
Цитата:
Дядя Миша писал:
Single - ну тут понятно, просто яркость и цвет лайтмапы, как в халфе или кваке.
Ага, просто смешивает статичную лайтмапу с материалом.
Цитата:
Дядя Миша писал:
DualLightmaps - вот это вот я не понял что оно делает. Там какие-то взвешенные значения что ли. Требует твоего комментария.
Это как Лоды только для теней. Т.е. вблизи у тебя все тени шадоумапы, а с расстоянием у тебя для теней рисуется отдельная лайтмапа поверх. Прикольная штука.
Есть ещё такой прикол:
https://docs.unity3d.com/2019.1/Doc...RealtimeGI.html
Цитата:
Дядя Миша писал:
DirectionalLightmapping - старая-добрая делюкс мапа
Я не очень понимаю о какой делюкс мапе речь, но в целом да, эта штука позволяет расчитывать отраженный свет и направление нормалей для Енлайтена.
Цитата:
Дядя Миша писал:
Radiosity Normal Mapping - как в Сорсе.
Это из тех исходников? Ну вроде бы как да наверное. По идее оно уже совмещено с DirectionalLightmapping, его я и юзаю.
Вот тут что то есть, в том числе и ssbump.
https://github.com/Geenz/GzRNM
Вообще конечно ты можешь легко на Юнити написать свою логику лайтмап, ведь они не прибиты гвоздями к движку, это всеголишь шейдер. А вот с лайтпробами дела обстоят абсолютно иначе.
Цитата:
Дядя Миша писал:
Не просто можно, а нужно! Своих шейдеров в движке нет, только пользовательские. Какой шейдер сделаешь - так и будет. Движок не предлагает вообще ничего. Иными словами, если пользователь не создал материалов и шейдеров, движок ничего не нарисует.
В Юнити у шейдеров такой прикол, что ты можешь наследоваться от какого то другого шейдера, чтобы не писать всё заново. Это особенно видно если ты откроешь шейдеры URP и HDRP рендера.
Вот тут про графику и освещение много чего есть:
https://docs.unity3d.com/2019.1/Doc...ngOverview.html
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено Дядя Миша 04-10-2023 в 15:38:
Цитата:
Aynekko писал:
А зря, было бы неплохо иметь стартовый пак графония, от которого можно отталкиваться и изменять. Хотя бы на уровне п2.
Так я его приложу в качестве SDK. Я имею в виду что там нет ни одного шейдера, который нельзя было бы полностью переписать, поскольку его бы требовал движок для нормальной работы. Вот такого нет.
Добавлено 04-10-2023 в 18:38:
Ну чтож, баг с касательным удалось побороть, заюзав NvMeshMender для его генерации и передав в вертекс все три компоненты.
Иными словами - сохранять только нормаль, тангенту и знак бинормали - хреновая идея. Может быть для персонажей это и работает, но для уровней - точно нет.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 04-10-2023 в 16:08:
Цитата:
Дядя Миша писал:
Ну чтож, баг с касательным удалось побороть, заюзав NvMeshMender для его генерации и передав в вертекс все три компоненты.
Иными словами - сохранять только нормаль, тангенту и знак бинормали - хреновая идея. Может быть для персонажей это и работает, но для уровней - точно нет.
А освещение в думе можно так же профиксить?
Отправлено FiEctro 04-10-2023 в 16:47:
Цитата:
Дядя Миша писал:
Я уже взял полный пак текстур из Q1Bers.
Там разве PBR?__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено Дядя Миша 04-10-2023 в 16:52:
Цитата:
Crystallize писал:
А освещение в думе можно так же профиксить?
В каком дууме?
Цитата:
FiEctro писал:
Там разве PBR?
Да.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 04-10-2023 в 17:53:
Дядя Миша в третьем конечно.
Отправлено Дядя Миша 04-10-2023 в 17:56:
Не понял.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 04-10-2023 в 18:00:
Будет ли сильно красивее в третьем думе если вместо первой формулы там в шейдерах поставить вторую?
Отправлено Decay 04-10-2023 в 18:02:
Тут есть особо навороченный дуум3, с подсветкой в темноте
https://github.com/RobertBeckebans/RBDOOM-3-BFG