HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Освещение в Source Engine
разные вопросы, связанные с запечённым освещением
Страницы (22): « Первая ... « 9 10 11 12 [13] 14 15 16 17 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

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

Рейтинг



Проблема тут в следующем. Для того, чтобы отражённый луч попал абсолютно во все люксели лучей должно быть бесконечное кол-во.
Здесь не работают никакие упрощения, никакой псевдорандом не спасает ситуацию. Мы выпускаем луч в надежде, что он куда-то попадёт, но куда мы предсказать не можем. Самое поганое то, что он может попасть уже в тот люксель, в который попал предидущий луч. И получается, работа была сделана впустую. Instant Radiosity предполагает обратный механизм - луч пускается от одного реального люкселя до всех люкселей, которые находятся в области его видимости. Т.е. мы просто берём все потенциально видимые люксели и между ними пускаем трассы, проверяя реальную видимость. Такой подход позволяет нам сделать одно переотражение света.
А вот чтобы переотражений было неограниченное кол-во нам необходимо построить трансферы - для каждого люкселя идёт массив всех видимых люкселей и значение энергии света, которое будет передано от одного к другому. Хотя одна еденица трансфера занимает довольно мало места, порядка 6 байт, в сумме получается гигантская матрица на гигабайты.
Т.е. надо очень много памяти. Но в наше время на мой взгляд такой подход более предпочтителен, нежели рейтрейсинг. Его проблема в глазах программистов, КМК в том, что это непрямой алгоритм со множеством стадий и на каждой стадии должна быть оптимальная реализация, иначе дерьмо получится. Рейтрейс наоборот прямой однопроходный механизм. Вот люксель, вот луч, пустил и всё.
А для Instant Radiosity нужно:
- конвертировать реальную геометрию в однородную сетку, желательно с боле-мене постоянным шагом, учитывая что на реальных сценах попадаются как объекты, состоящие из тысяч мелких треугольников, так и гигантские треугольники на пол-уровня.
- посчитать для получившейся сетки патчей матрицу трансферов
- самое сложное: используя финальные значения освещения в сетке попытаться корректно наложить их обратно на реальные люксели лайтмапы.
Второй этап самый прозрачный и простой в реализации, он везде одинаков. А вот первый и третий могут запороть всю идею.
Никто не хочет с этим возиться, просто.

Предвосхищая вопрос насчёт халфы и ку2 - там была конвексная планарная геометрия с большими квадратными полигонами.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-11-2021 13:06
-
ncuxonaT
каков стол, таков и стул

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

Рейтинг



Цитата:
Дядя Миша писал:
Самое поганое то, что он может попасть уже в тот люксель, в который попал предидущий луч.

Поэтому используют low-discrepancy sequence, чтобы рандомные лучи покрывали полусферу равномерно.

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

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

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

Рейтинг



Цитата:
ncuxonaT писал:
рандомные лучи покрывали полусферу равномерно.

Это бы хорошо работало, если бы принимающая геометрия сама была полусферой.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-11-2021 15:36
-
ncuxonaT
каков стол, таков и стул

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

Рейтинг



Цитата:
Дядя Миша писал:
Это бы хорошо работало, если бы принимающая геометрия сама была полусферой.

Я не понимаю твою мысль.

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

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

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

Рейтинг



Равномерность - условие необходимое, но недостаточное.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-11-2021 16:40
-
ncuxonaT
каков стол, таков и стул

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

Рейтинг



Дядя Миша недостаточное для чего? Как лучи попадут в один люксель, если все летят в разные стороны?

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

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

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

Рейтинг



Недостаточное для получения качественной лайтмапы, очевидно же.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 05-11-2021 17:39
-
FiEctro
Кот Арсис

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

Рейтинг



Цитата:
Дядя Миша писал:
Это бы хорошо работало, если бы принимающая геометрия сама была полусферой.


А что если что то подобное сделать?
https://3dprintingindustry.com/wp-content/uploads/2014/12/lamp-shadows-3d-printing.jpeg

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

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

Старое сообщение 07-11-2021 12:19
- За что?
FiEctro
Кот Арсис

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

Рейтинг



Дядя Миша
Расскажи подробнее про лайтпробы, что они в себе содержат кроме цвета?
В справке юнити есть только это:
The data includes: probe positions, Spherical Harmonics (SH) coefficients and the tetrahedral tessellation.

Что за сферические гармоники и тетраэдрическая тесселяция?

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

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

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

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

Рейтинг



FiEctro https://ubm-twvideo01.s3.amazonaws....terpolation.pdf

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

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

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

Рейтинг



Лайтпробы можно считать 3D-сеткой в пространстве для лукапа.
Для игрушечных сцен лайтпробу можно хранить в 3D-текстуре, у Хумуса была демка.
Что они в себе будут содержать - решать только тебе. Сферическая гармоника это способ хранения данных для произвольного направления.
Не на 100% точный, но более экономичный, чем кубемапа, обычно.
Хотя если памяти не жалко, можно и кубемапы юзать. Они проще для понимания.
А что такое тетраэдрическая тесселяция я не знаю. Тесселяция тетраэдрами, наверное.

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

ЗЫ. Добил я таки свой лайтмаппер, вчетверо отодвинул лимиты по памяти, улучшил производительность и соответственно появилась возможность ставить для индиректа сетку более высокого разрешения.
Для сталкеровских карт мне 2 GB памяти конечно не хватит, но для игрушечных карт из тех же халф и квейков, можно смело ставить разрещение индиректа равное разрешению прямого света и получать баланс по качеству. Уродливые круги на спонзе (не на спонзе, а вообще сам эффект), я тоже убрал.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 11-11-2021 12:14
-
FiEctro
Кот Арсис

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

Рейтинг



Дядя Миша
А как вообще работают эти гармоники? Почему нельзя задать просто точку с цветом в пространстве.

ncuxonaT
Уф сложно то как. Буду ковырять потихоньку. Я так понимаю её можно просто представить как меш сферы с вывернутыми определенным способом нормалями?

Добавлено 11-11-2021 в 18:08:

Цитата:
Дядя Миша писал:
Хотя если памяти не жалко, можно и кубемапы юзать. Они проще для понимания.


А как интерполировать кубамапы? Вот 2 понятно, а если их 5-10 и все с разных сторон?

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

Отредактировано FiEctro 11-11-2021 в 14:55

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

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

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

Рейтинг



Цитата:
FiEctro писал:
Я так понимаю её можно просто представить как меш сферы с вывернутыми определенным способом нормалями?

Кого её? В лайтпробу записывают свет, пришедший в точку пространства со всех сторон. Грубо говоря, в точке рендерится кубемапа и размывается по косинусу.
https://learnopengl.com/img/pbr/ibl_irradiance.png
Чтобы получить освещение, достаточно по направлению нормали считать значение из такой размытой кубемапы. Но лайтпроб много, хранить для каждой кубемапу слишком жирно, поэтому придумали разные аппроксимации. Амбиент кубу нужно всего 6 RGB коэффициентов, сферическим гармоникам второго порядка - 9.
https://i.imgur.com/JjDrnA3.jpg
Если лайтпробы расставлены по регулярной сетке, можно использовать трилинейную интерполяцию. Для рандомно расставленных лайтпроб в юнити делают сетку из тетраэдров с лайтпробами в вершинах, внутри тетраэдра интерполяция по барицентрическим координатам. Проблема в том, что построить такую сетку из тетраэдров - нетривиальная задача, скорее всего, будет много сильно вытянутых тетраэдров, и интерполяция выйдет всратой. К примеру, активижн в колде не смогли с этим справиться и сделали равносторонние тетраэдры с рекурсивным разбиением.
https://advances.realtimerendering....D IW_20_PPS.pdf стр 47 и далее

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

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

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

Рейтинг



Цитата:
FiEctro писал:
А как вообще работают эти гармоники?

В них хранится больше информации, чем в одной точке. Разве не очевидно?

Цитата:
FiEctro писал:
А как интерполировать кубамапы? Вот 2 понятно, а если их 5-10 и все с разных сторон?

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

Добавлено 11-11-2021 в 19:54:

Цитата:
ncuxonaT писал:
Грубо говоря, в точке рендерится кубемапа и размывается по косинусу.

Результат можно перегнать в сферическую гармонику, а можно так и оставить в кубемапе.

Добавлено 11-11-2021 в 19:57:

Цитата:
ncuxonaT писал:
делают сетку из тетраэдров с лайтпробами в вершинах, внутри тетраэдра интерполяция по барицентрическим координатам

Сетка регулярная-то? Не нравится мне эта идея.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 11-11-2021 16:57
-
ncuxonaT
каков стол, таков и стул

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

Рейтинг



Цитата:
Дядя Миша писал:
Цитата:
ncuxonaT писал:
делают сетку из тетраэдров с лайтпробами в вершинах, внутри тетраэдра интерполяция по барицентрическим координатам

Сетка регулярная-то? Не нравится мне эта идея.

Цитата:
ncuxonaT писал:
Для рандомно расставленных лайтпроб в юнити делают сетку из тетраэдров с лайтпробами в вершинах, внутри тетраэдра интерполяция по барицентрическим координатам.

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

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



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


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

Временная зона GMT. Текущее время 22:57. Новая тема    Ответить
Страницы (22): « Первая ... « 9 10 11 12 [13] 14 15 16 17 » ... Последняя »   Предыдущая тема   Следующая тема
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