Дядя Миша писал: Но! С падением разрешения самой лайтмапы пропорционально падает и яркость. Т.е. на сверхчёткой лайтмапе немного ярче получается.
Я вот чего не понимаю: размеры пятна от которого происходит первый отскок-в принципе сравнимы с размерами всей тестовой карты. По идее там на всех стенках должен быть однотонный и плавный индирект, который затухает довольно медленно. Никакого чёрного цвета на стенках не должно быть даже на самом верху.
Я не спорю с тем что на низком разрешении индирект будет ярче. Но при повышении разрешения индирект в том же месте карты всё равно должен плясать где-то около "низкокачественного" значения. Какие-то люксели окажутся ярче, какие-то темнее, в среднем-то же самое что и с чопом 128. Однако на практике те патчи которые были 50-100 по яркости, становятся просто совсем чёрными. Как будто где-то забыли множитель, который компенсирует уменьшение размера патчей.
Ты вот для индиректа берешь из сорса этот принцип сравнения с пятикратным размером источника света. А между тем оценка размера источника- по площади или по линейному размеру-предполагает что он, т.е. патч индиректа, по форме примерно близок к квадратному. Но это не выполняется на разных тонких патчах типа крыши или дверных проемов, поребриков, они всегда вытянутые. И я все время замечаю что в сорсе как раз дверные проемы и поребрики всегда бросаются в глаза своей странной затемненностью. Я думаю что у них по сути неверно оценивается площадь и поэтому они недополучают индирект. Их нужно бить на квадраты размером как меньшая сторона, либо как-то менять алгоритм.
Crystallize писал: Ты вот для индиректа берешь из сорса этот принцип сравнения с пятикратным размером источника света
переформулируй пожалуйста, я не понимаю о чём ты говоришь.
Цитата:
Crystallize писал: А между тем оценка размера источника- по площади или по линейному размеру-предполагает что он, т.е. патч индиректа, по форме примерно близок к квадратному.
Для квадрата\прямоугольника площадь посчитать легче всего.
Цитата:
Crystallize писал: Но это не выполняется на разных тонких патчах типа крыши или дверных проемов, поребриков, они всегда вытянутые
Разве в сорсе есть визуализация патчей?
Цитата:
Crystallize писал: Я думаю что у них по сути неверно оценивается площадь и поэтому они недополучают индирект
Ты забываешь о другом важном моменте. Из-за своей низкочастотности, алгоритм рассчёта отражённого света разбит как минимум на две критически важных точки - во первых нам надо перенести прямой свет в нашу "лоу-поли" сцену - имеется в виду сцена, состоящая из патчей, а не люкселей. Во вторых нам надо с лоу-поли сцены перенести просчитанный свет обратно в люксели. Так вот второй момент в разы сложнее первого, из-за того что наложение происходит в трёхмерном пространстве, а накопленный свет и люксели - это абсолютно разные сущности.
Я очень долго с этим экспериментировал на самом деле, хорошего решения так и не нашёл. То что сейчас используется в XashNT даёт достаточно неплохие результаты, но перенос индиректа в пространство лайтмапы по времени сопоставим с самим рассчётом индиректа.
С другой стороны, если считать индирект с точностью прямого освещения, время рассчётов возрастает в 16-32 раза (например с трёх секунд до 15 минут) и карта коробка при этом может отожрать два гигабайта памяти на хранение трансферов. Альтернатива - не хранить трансферы вообще и каждый отскок пересчитывать заново. Так например поступает q3map2. Но у него там, по старой поговорке, пока он управится - пообедать можно.
Рейтрейсинг на первый взгляд этой проблемы вообще лишен, но в реальности там проблем на порядок больше чем в Instant radiosity.
Дядя Миша писал: переформулируй пожалуйста, я не понимаю о чём ты говоришь.
там сравнивается собственный размер патча с расстоянием между патчами, если расстояние как 5 патчей или больше - то затухание квадратичное, иначе начинается какой-то стрёмный матан с перебором ребер виндинга.
Цитата:
Дядя Миша писал: Для квадрата\прямоугольника площадь посчитать легче всего.
Я именно про разницу квадрата и прямоугольника. Узкая сторона может создавать какую-то ошибку в точности.
Цитата:
Дядя Миша писал: Разве в сорсе есть визуализация патчей?
Ну индексы точно показывает, но и скринов с mat_wireframe в сети хватает.
Цитата:
Дядя Миша писал: Я очень долго с этим экспериментировал на самом деле, хорошего решения так и не нашёл.
В халфе освещение всегда ложилось равномерно даже до зонера, нет?
Дядя Миша писал: Не, это китайская триангуляция такой эффект даёт.
Добавлено 10-05-2023 в 10:08:
Вот для примера как выглядит скруглённая поверхность на XashNT (хотя эта карта есть в бете и можешь сам посмотреть, твоя, кстати, карта).
А что за грязная полоса по середине стены? Верх светлый, низ светлый, а в середине какая то серая линия.
Цитата:
Дядя Миша писал: Рейтрейсинг на первый взгляд этой проблемы вообще лишен, но в реальности там проблем на порядок больше чем в Instant radiosity.
А какие там проблемы? У Психопата всё работает, намного лучше чем у остальных компиляторов. Да ещё и на ГПУ. Конечно если гонять всё через проц, да ещё небось в 1 потоке, будет считать медленно.
Цитата:
Дядя Миша писал: отожрать два гигабайта памяти на хранение трансферов.
Почему трансферы так много весят?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: А что за грязная полоса по середине стены?
Ну вот так выглядит низкочастотное освещение.
Цитата:
FiEctro писал: У Психопата всё работает, намного лучше чем у остальных компиляторов
Причём тут Психопат? Он что ли это придумал? При рейтрейсинге 90% выпущенных лучей расходуются на нагрев GPU.
Цитата:
FiEctro писал: Почему трансферы так много весят?
Потому что каждый трансфер включает в себя данные из всех потенциально видимых источников, откуда может произойти переотражение.
Их вес напрямую зависит от геометрии. Скажем если сделать коробку-скайбокс, где только пол имеет лайтмапу, вес трансферов будет ничтожным и скорость рассчёта весьма высокой. Тогда как рейтрейсинг наоборот выпустит все лучи в никуда.
Дядя Миша писал: Причём тут Психопат? Он что ли это придумал? При рейтрейсинге 90% выпущенных лучей расходуются на нагрев GPU.
Какая разница, если итоговый результат будет быстрее и грязи на лайтмапе нет. Правда есть этот мерзкий шум, но его вроде сглаживать научились.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Очень интересное двоемыслие. А шум грязью не считается?
Или грязь - это тоталитарное явление, а шум - демократическое, поэтому нормально?
Шум, как таковой, это вовсе не шум. Это прямое следствие неоптимальности подхода рейтрейсинга. Потому что выпущенные лучи летят случайным образом и невозможно гарантировать что они достигнут абсолютно всех люкселей за сколь-нибудь разумное время. А при фиксированном конусе разлёта, наоборот гарантируется недостижение определённого процента люкселей при различной геометрии. Чего подход Instant Radiocity лишён в принципе. Единственное что требуется сделать - это переложить его на GPU и однажды у меня дойдут руки. Просто выпускать лучи вникуда гораздо проще, чем построить корректную математическую модель.
Дядя Миша писал: Очень интересное двоемыслие. А шум грязью не считается?
Или грязь - это тоталитарное явление, а шум - демократическое, поэтому нормально?
Как бороться с шумом методы известны давно, а вот как бороться с грязью, я о таких методах не слышал. Причём шум можно победить банальным увеличением семплов на пользовательской части, а грязь она будет при любых настройках у пользователя. Современные видеокарты работают с лучами хорошо, и никакой проц им в подмётки не годится.
Кстати я всегда хотел спросить, а почему так сильно свет в сорсе от голдсорса отличается? Что они там поменяли?
Цитата:
Дядя Миша писал: При рейтрейсинге 90% выпущенных лучей расходуются на нагрев GPU.
Почему? БСП геометрия же вроде как замкнутая, лучи всегда гарантированно куда то прилетят.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!