Дядя Миша писал: Особенно ФиЭктро, как он вообще работает в игродеве и ничерта не знает, как его туда взяли.
Да наверное я просто мысли неправильно свои как то излагаю. Про диапазон я знаю. Речь об Eye Adaptation. Когда смотришь на яркую лампочку, и глаза адаптируются и она уже кажется не такой яркой. Я вот и говорю что несмотря на то что у тебя большой диапазон, и солнце яркое например светит на стену здания, то в тёмном помещении эта стена должна выглядеть яркой, а вблизи в упор наоборот более умеренной. А так она будет либо всегда яркой либо всегда затемненной в независимости от диапазона.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Так а зачем ты его называл HDR? На моей памяти эту фишку только в Lost Coast и юзали в том виде, в котором мы её запомнили, а больше нигде.
Если она в других играх и присутствует, то на грани различимости.
Смысл Eye Adaptaion в том, что если тебе в морду солнцу светит, то всё остальное ты вообще не можешь увидеть - солнце слепит. То есть никаким расширенным диапазоном тут и не пахнет, это просто автоматическая регулировка яркости по особым формулам.
Дядя Миша писал:
Смысл Eye Adaptaion в том, что если тебе в морду солнцу светит, то всё остальное ты вообще не можешь увидеть - солнце слепит. То есть никаким расширенным диапазоном тут и не пахнет, это просто автоматическая регулировка яркости по особым формулам.
Вот это я и имел ввиду. Я просто хотел узнать как это реализовано в сорсе. Пытался ковырять исходник, но ничего дельного не нашел.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
FiEctro писал: Для всех пикселей разом? Или он как то делает выборку, там в фокусе яркое пятно или нет?
В прайме этот алгоритм полностью реализован и работает, соответственно ты можешь почитать исходники. А готовых статей по всему этому толком и нет, кажется был только пейпер "Moving Frostbite to PBR", как-то так он назывался. Ну и года три назад попадалось пару статей по этому exposure autocorrection, но там имплементация только через компьют шейдеры была. Такое мне не подходило, и я сделал иначе.
Добавлено 12-03-2024 в 18:38:
Ещё, абсолютно то же самое происходит и в фотоаппаратах: динамический диапазон матрицы довольно ограничен, поэтому приходится подстраивать время выдержки, ISO, и раскрытие диафрагмы так, чтобы попасть в самый оптимум, когда нет пересветов и черноты. Касательно того, как именно считается средний уровень яркости на экране, в фотоаппарате можно метод выбрать вручную: матричный, центровзвешенный и точечный. В играх такой опции, понятное дело, нет, и в 90% случаев используется центровзвешенный.
Добавлено 12-03-2024 в 20:24:
Цитата:
FiEctro писал: Я просто хотел узнать как это реализовано в сорсе. Пытался ковырять исходник, но ничего дельного не нашел.
Хреново там сделано. На то время, правда, ещё и не было механизмов это всё реализовать правильно. Если интересно углубиться подробнее, то это пейпер "HDR in Valve’s Source Engine" с SIGGRAPH 2006
Дядя Миша Я не понимаю как хлрад может функционировать при total=0.5/M_PI, там сразу пересвет получается. Если строго следовать алгоритму то нужно трансферы обрезать не на 0.8 а на 0.000001. Если не очень строго то на 0.0001.
Короче я перенес в соурс эти константы из p2st. Весьма просто на самом деле.
Вот соурс.
Вот с константами из p2st
Вот я выключил Pull light from children в CollectLight. Яркость отскоков почти не падает, поэтому 3 баунса.
Вот я к тому же включил FormFactorPolyToDiff из обычного сорсовского кода трансферов и к тому же внутри этой функции домножил на арию патча и поделил на пи. Здесь тоже 3 баунса.
Мне больше всего нравится конечно последняя из-за равномерности. К тому же там баунсы на заборчике реально отражают где под ними освещённый пол а где нет. В сорсе без этого всё смотрится странно.
Я не понимаю что такое эта Pull light from children. Это необходимость связанная с переходом на кудвачный формат BSP где фейсы не лежат на ноде? Или это просто решение принятое для конкретной имплементации осветительного алгоритма? Если она нужна то почему без неё всё не ломается?