HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Освещение в Source Engine
разные вопросы, связанные с запечённым освещением
Страницы (22): [1] 2 3 4 5 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12885
Возраст: 32

Рейтинг



Такой вопрос, насколько разумно запекать что нибудь в вертекс колор? Например если есть какой нибудь мультяшный персонаж с жутко размытой текстурой, может лучше будет как раз запечь её в вертекс колор? Ну или освещение на карте, чтобы лайтмапу не таскать, уж какой нить индирект вполне можно в вертексколор запечь, а всё остальное сделать динамикой? Насколько оно прожорливо, и целесообразно? В теории вроде всё ровно, а вот на практике даже не знаю.

Сообщить модератору | | IP: Записан
Сообщение: 204454

Старое сообщение 11-10-2021 17:27
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Если это уместно, и устраивает, как оно интерполируется, то почему бы нет.

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

Сообщить модератору | | IP: Записан
Сообщение: 204458

Старое сообщение 11-10-2021 22:04
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32190
Нанёс повреждений: 392 ед.

Рейтинг



В вертекс-колор запекать нет особого смысла, потому что это несовместимо с инстансами. Т.е. по uv-координате лайтмапы, мы этот цвет сохраняем в страницу атласа, а потом достаём его оттуда при помощи VTF. Но VTF на старых карточках наверное даже медленее чем полноценная лайтмапа, то есть получается, что по скорости выигрыша никакого. Плюс в том, что мы получим бесшовное освещение без усилий.
В NT я планирую сделать автоматический анализатор, который сам будет определять, какое именно освещение для данного меша лучше выбрать - повертексное или попиксельное. Основная идея заключается в рендеринге треугольников в тестовую текстуру (на CPU) с заданным лайтмапой разрешением. Затем мы считаем сколько у нас получилось люкселей, а сколько вертексов. И на основе этой информации принимаем решение о типе освещения. Такого помоему нигде нет.

Добавлено 12-10-2021 в 08:50:

Строго говоря, переделать лайтмапное освещение в повертексное можно прямо из шейдера, читая лайтмапу в вертексном. А вот наоборот уже хрена.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 204463

Старое сообщение 12-10-2021 05:50
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12885
Возраст: 32

Рейтинг



Понял, спасибо. Ещё такой вопрос, как работает шейдер SSBUMP сорсовский? Понятно что там в каждом канале ракурс теней со смещением в 120 градусов. Но как это подгрузить в 3д? Пробовал по аналогии с нормалями и картой тангенсов, выходит фигня, у нормалей другие углы, откуда они берут или вычисляют эти 120 градусные смещения?

Отредактировано FiEctro 14-10-2021 в 21:01

Сообщить модератору | | IP: Записан
Сообщение: 204480

Старое сообщение 14-10-2021 21:00
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



//hl2 basis
vec3 dirx = (vec3 ( 0.816497 , 0.0 , 0.57735 ));
vec3 diry = (vec3 ( -0.408248 , 0.707107 , 0.57735 ));
vec3 dirz = (vec3 ( -0.408248 , -0.707107 , 0.57735 ));

Сообщить модератору | | IP: Записан
Сообщение: 204481

Старое сообщение 14-10-2021 21:14
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32190
Нанёс повреждений: 392 ед.

Рейтинг



Эти константы - косинусы соответствующих углов.

Их можно перевести обратно в градусы, через arccos или на инженерном калькуляторе выбрать галочку Inv и нажать cos.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 204482

Старое сообщение 15-10-2021 06:12
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12885
Возраст: 32

Рейтинг



Цитата:
ncuxonaT писал:
//hl2 basis
vec3 dirx = (vec3 ( 0.816497 , 0.0 , 0.57735 ));
vec3 diry = (vec3 ( -0.408248 , 0.707107 , 0.57735 ));
vec3 dirz = (vec3 ( -0.408248 , -0.707107 , 0.57735 ));


На отдельном полигоне оно выглядит вроде как правильно, но вот с тангенсной лайтмапой что то все углы покарёжило, в некоторых местах вообще инвертнуло освещение, как оно там работает? Нужно ли перемножать тангенсную лайтмапу на эти вектора?

Цитата:
Дядя Миша писал:
Эти константы - косинусы соответствующих углов.

Их можно перевести обратно в градусы, через arccos или на инженерном калькуляторе выбрать галочку Inv и нажать cos.


Спасибо попробую.

Сообщить модератору | | IP: Записан
Сообщение: 204483

Старое сообщение 15-10-2021 06:55
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32190
Нанёс повреждений: 392 ед.

Рейтинг



А что такое тангенсная лайтмапа? Трёхкомпонентная?

Добавлено 15-10-2021 в 10:59:

Вообще я навсидку проглядел все эти техники, гауссовы лайтмапы и прочие - очень много места оно занимает, а если карта большая, то вообще ппц.
Лайтмапа под два гигабайта не вариант.

Добавлено 15-10-2021 в 11:01:

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

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 204484

Старое сообщение 15-10-2021 08:01
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12885
Возраст: 32

Рейтинг



Цитата:
Дядя Миша писал:
А что такое тангенсная лайтмапа? Трёхкомпонентная?




Вот эта вот фигня в сорсе CRNM.
http://www.decew.net/OSS/References...Explanation.pdf

У меня вот такие карты генерируются энлайтеном (directional map). Я их использую чтобы бамп с лайтмапой корректно работал, и всё вроде хорошо. Но вот СС бамп нивкакую с этим работать не хочет.

https://b.radikal.ru/b25/2110/ad/8b0610da8e20.png

Собственно выходит такая дичь:
https://b.radikal.ru/b01/2110/cf/572c17e7e0b1.png

В некоторых случаях работает даже более менее правильно:
https://cdn.discordapp.com/attachments/390627238493814808/898343925788598302/2021-10-15_01.57.42.png
но только под определенными углами

Цитата:
Дядя Миша писал:
Вообще я навсидку проглядел все эти техники, гауссовы лайтмапы и прочие - очень много места оно занимает, а если карта большая, то вообще ппц.
Лайтмапа под два гигабайта не вариант.


А не надо делать их большого разрешения. Таких как в сорсе достаточно. А тени красивые можно и шадоумапой сделать.

Отредактировано FiEctro 15-10-2021 в 10:15

Сообщить модератору | | IP: Записан
Сообщение: 204486

Старое сообщение 15-10-2021 10:11
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



FiEctro в сорсе лайтмапа раскладывается по базису, который я написал выше, в касательном пространстве. Сорсовский ССБамп запекает тени и ламберта по тому же базису, чтобы можно было использовать с сорсовскими лайтмапами и вычислять освещение просто как
vec3 diffuseLighting = normal.x * lightmapColor1 + normal.y * lightmapColor2 + normal.z * lightmapColor3;

Лайтмапа, которую ты показываешь, не похожа на сорсовскую, она похожа на делюксмапу, причем в мировом пространстве.

Но ССБамп можно перевести в подобие обычной нормалмапы с тенями и предумноженным АО.
Из первого получить второе
https://i.imgur.com/QC3DzfM.png https://i.imgur.com/LLBbbTD.png

Сообщить модератору | | IP: Записан
Сообщение: 204488

Старое сообщение 15-10-2021 13:34
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32190
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
ncuxonaT писал:
она похожа на делюксмапу, причем в мировом пространстве.

Это и есть делюксмапа в мировом пространстве.

Добавлено 15-10-2021 в 16:45:

А в сорсе некокой делюксмапы нет, там трёхкомпонентная RGB-лайтмапа, уже в лайтмаппере предумноженная на базис. В UE аналогично, но лайтмапа монохромная. А в Unity делюксмапа.

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 204489

Старое сообщение 15-10-2021 13:45
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12885
Возраст: 32

Рейтинг



Цитата:
ncuxonaT писал:
FiEctro в сорсе лайтмапа раскладывается по базису, который я написал выше, в касательном пространстве. Сорсовский ССБамп запекает тени и ламберта по тому же базису, чтобы можно было использовать с сорсовскими лайтмапами и вычислять освещение просто


Да я тоже заметил в ПДФ, когда выкладывал сюда скриншоты.

Цитата:
ncuxonaT писал:
Лайтмапа, которую ты показываешь, не похожа на сорсовскую, она похожа на делюксмапу, причем в мировом пространстве.


Как можно запечь правильно эту карту например в блендере? Какие условия нужно соблюсти. У меня так в голове и не укладывается как расположить 3 вектора со смещением в 120 градусов чтобы они показывали это смещение во всём объёме? И опять же они не будут совпадать с двухмерными векторами ssbump карты нормалей.


Цитата:
ncuxonaT писал:
Но ССБамп можно перевести в подобие обычной нормалмапы с тенями и предумноженным АО.
Из первого получить второе
https://i.imgur.com/QC3DzfM.png https://i.imgur.com/LLBbbTD.png


Я так понимаю теряется один из каналов с направлением теней? И как кстати ты сконвертил?
Наверное и придётся так делать, но всё же хотелось разобраться как работает эта технология. В инете нет практически никакой информации на эту тему.

Добавлено 15-10-2021 в 17:02:

Цитата:
Дядя Миша писал:
там трёхкомпонентная RGB-лайтмапа, уже в лайтмаппере предумноженная на базис.


Как она выглядит, и чем отличается от делюксмапы?

Отредактировано FiEctro 15-10-2021 в 14:05

Сообщить модератору | | IP: Записан
Сообщение: 204490

Старое сообщение 15-10-2021 14:02
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Цитата:
FiEctro писал:
Как можно запечь правильно эту карту например в блендере? Какие условия нужно соблюсти. У меня так в голове и не укладывается как расположить 3 вектора со смещением в 120 градусов чтобы они показывали это смещение во всём объёме? И опять же они не будут совпадать с двухмерными векторами ssbump карты нормалей.

Если прям хочешь сорсовские лайтмапы, можно запечь освещение 3 раза, подключая в качестве нормалмапы по очереди эти три текстуры:

https://i.imgur.com/6iRu3Pl.png

Цитата:
FiEctro писал:
Я так понимаю теряется один из каналов с направлением теней? И как кстати ты сконвертил?
Наверное и придётся так делать, но всё же хотелось разобраться как работает эта технология. В инете нет практически никакой информации на эту тему.

Ничего не теряется, тени вписываются в нормалмапу. Получается что-то типа bent normal map.
vec3 norm = dirx * ssbump.x + diry * ssbump.y + dirz * ssbump.z;

Цитата:
FiEctro писал:
Как она выглядит, и чем отличается от делюксмапы?

Вот так выглядит, например.
https://i.imgur.com/uAiRhSi.jpg https://i.imgur.com/T1sJlTU.jpg https://i.imgur.com/dIshufT.jpg

Сообщить модератору | | IP: Записан
Сообщение: 204491

Старое сообщение 15-10-2021 14:19
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12885
Возраст: 32

Рейтинг



Цитата:
ncuxonaT писал:
Если прям хочешь сорсовские лайтмапы, можно запечь освещение 3 раза, подключая в качестве нормалмапы по очереди эти три текстуры:



Ничего не теряется, тени вписываются в нормалмапу. Получается что-то типа bent normal map.
vec3 norm = dirx * ssbump.x + diry * ssbump.y + dirz * ssbump.z;



Ого! Такого я ещё не встречал, спасибище огромное. Важная инфа. А как запечь это дело в юнитивскую делюксмапу? Просто сделать всё освещение чернобелым и распихать по каналам? Не очень понимаю, зачем они 3 раза цвет хранят, какой в этом сокральный смысл?

Отредактировано FiEctro 15-10-2021 в 14:48

Сообщить модератору | | IP: Записан
Сообщение: 204492

Старое сообщение 15-10-2021 14:43
- За что?
ncuxonaT
каков стол, таков и стул

Группа: Опытный
Дата регистрации: Oct 2009
Проживает: город/село/деревня
Сообщений: 1626
Возраст: 33

Рейтинг



Цитата:
FiEctro писал:
Ого! Такого я ещё не встречал, спибище огромное. Важная инфа. А как запечь это дело в юнитивскую делюксмапу?

Не имею представления, не имел дело с юнити.
Я бы рекомендовал оставить юнитевские лайтмапы, и конвертить ссбамп в нормалмапу (причем не в рилтайме, а заранее), тогда оно будет и с динамическим освещением работать. Только еще есть нюанс, что ссбамп не годится для спекуляра, и нужно тащить еще и обычные нормалмапы.

Добавлено 15-10-2021 в 17:57:

Цитата:
FiEctro писал:
Не очень понимаю, зачем они 3 раза цвет хранят, какой в этом сокральный смысл?

С разных сторон может падать свет разных цветов.
https://i.imgur.com/sw5X70t.jpg https://i.imgur.com/nXEr8jU.jpg

Отредактировано ncuxonaT 15-10-2021 в 14:59

Сообщить модератору | | IP: Записан
Сообщение: 204493

Старое сообщение 15-10-2021 14:57
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 11:27. Новая тема    Ответить
Страницы (22): [1] 2 3 4 5 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Освещение в Source Engine
разные вопросы, связанные с запечённым освещением
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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