Size: a a a

pro.graphon (and gamedev)

2020 April 30

AB

Alexander Busarov in pro.graphon (and gamedev)
Konstantin Pail
Все diffuse-brdf из microfacet model подбираются на глаз, потому что в этом случае brdf не выводится аналитически - интеграл по микрограням не посчитать (в отличие от specular, где взаимодействие с конкретной микрогранью - дельта функция и интеграл считается тривиально). 1-F это да, свет ушедший в transmiting, но выйти в определенном направлении он может уже из любой микрограни (а не только с той, у которой микронормаль совпадает с халф-вектором. и поэтому диффузе халф вектор не особо поможет). Поэтому умножить диффузный свет на 1-F в этой теории это грубая аппроксимация. В идеале diffuse-brdf должна быть выведена из NDF. Еще есть Oren-Nayar, но эта модель основывается на другой NDF (не GGX), поэтому сочетаться с GGX specular будет не очень физически корректно. Эту проблему пытались решить во Frostbite (пробовали подобрать преобразование для roughness между Oren-Nayar и GGX specular). В итоге там на тот момент вроде остановились на Disney. Но Disney - это эмпирическая модель, не основанная на теории микрограней (просто подобрали формулы, чтобы соответствовать результатам замеров из MERL database). При этом Disney не сохраняет энергию, и для Frostbite пытались вывести модификацию, которая сохраняет энергию. На GDC в 2017 году рассказали про аппроксимацию diffuse на основе GGX NDF: https://twvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Hammon_Earl_PBR_Diffuse_Lighting.pdf (используется в Titanfall 2). Подход похож на Oren-Nayar - выполняют численные симуляции (path tracing) и на их основе подбирают формулы, которые хорошо соответствуют результатам.
крутая инфа, спасибо, как всегда есть что обсудить
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
Konstantin Pail
Все diffuse-brdf из microfacet model подбираются на глаз, потому что в этом случае brdf не выводится аналитически - интеграл по микрограням не посчитать (в отличие от specular, где взаимодействие с конкретной микрогранью - дельта функция и интеграл считается тривиально). 1-F это да, свет ушедший в transmiting, но выйти в определенном направлении он может уже из любой микрограни (а не только с той, у которой микронормаль совпадает с халф-вектором. и поэтому диффузе халф вектор не особо поможет). Поэтому умножить диффузный свет на 1-F в этой теории это грубая аппроксимация. В идеале diffuse-brdf должна быть выведена из NDF. Еще есть Oren-Nayar, но эта модель основывается на другой NDF (не GGX), поэтому сочетаться с GGX specular будет не очень физически корректно. Эту проблему пытались решить во Frostbite (пробовали подобрать преобразование для roughness между Oren-Nayar и GGX specular). В итоге там на тот момент вроде остановились на Disney. Но Disney - это эмпирическая модель, не основанная на теории микрограней (просто подобрали формулы, чтобы соответствовать результатам замеров из MERL database). При этом Disney не сохраняет энергию, и для Frostbite пытались вывести модификацию, которая сохраняет энергию. На GDC в 2017 году рассказали про аппроксимацию diffuse на основе GGX NDF: https://twvideo01.ubm-us.net/o1/vault/gdc2017/Presentations/Hammon_Earl_PBR_Diffuse_Lighting.pdf (используется в Titanfall 2). Подход похож на Oren-Nayar - выполняют численные симуляции (path tracing) и на их основе подбирают формулы, которые хорошо соответствуют результатам.
> Все diffuse-brdf из microfacet model подбираются на глаз
Согласен с тем, что почти все diffuse подбираются на глаз.

> 1-F это да, свет ушедший в transmiting, но выйти в определенном направлении он может уже из любой микрограни
С одной стороны это верно. С другой стороны - вышедший свет не обязательно дойдет до наблюдателя. Логично было бы в этом случае умножить на G(viewDirection) ? Но так ведь никто не делает. Не логично ли просто переизлучить весь свет, ушедший в transmiting в этом случае?

> Поэтому умножить диффузный свет на 1-F в этой теории это грубая аппроксимация.
По прежнему пока не вижу, почему эта аппроксимация грубее (1-F'(view)*F'(lightdir)) ?

Кстати в диснеевском подходе нет никаких 28/23. Откуда это не в курсе? Тоже на глазок подобрано?
И не сложно показать насколько большая визуально разница между вот этим подходом (который у тебя), и просто (1-F) ? Не сложно кинуть пару скриншотов будет?
источник

RG

Roman Galashov in pro.graphon (and gamedev)
Alexander Busarov
> Все diffuse-brdf из microfacet model подбираются на глаз
Согласен с тем, что почти все diffuse подбираются на глаз.

> 1-F это да, свет ушедший в transmiting, но выйти в определенном направлении он может уже из любой микрограни
С одной стороны это верно. С другой стороны - вышедший свет не обязательно дойдет до наблюдателя. Логично было бы в этом случае умножить на G(viewDirection) ? Но так ведь никто не делает. Не логично ли просто переизлучить весь свет, ушедший в transmiting в этом случае?

> Поэтому умножить диффузный свет на 1-F в этой теории это грубая аппроксимация.
По прежнему пока не вижу, почему эта аппроксимация грубее (1-F'(view)*F'(lightdir)) ?

Кстати в диснеевском подходе нет никаких 28/23. Откуда это не в курсе? Тоже на глазок подобрано?
И не сложно показать насколько большая визуально разница между вот этим подходом (который у тебя), и просто (1-F) ? Не сложно кинуть пару скриншотов будет?
Можешь скинуть ссылку на пейпер в котором 28/23?
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
Переслано от Konstantin Pail
Нашел, на что нужно умножать диффузный свет http://www.cs.utah.edu/~michael/brdfs/jgtbrdf.pdf (формула 5) вроде заработало. Не знаю правда, насколько энергия сохраняется. microfacet brdf не поддерживает multiple scattering, поэтому никак и не проверить:(
источник

ТШ

Тата Шко in pro.graphon (and gamedev)
Привет! Могу сюда вакансию скинуть ?)
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Тата Шко
Привет! Могу сюда вакансию скинуть ?)
источник

ТШ

Тата Шко in pro.graphon (and gamedev)
Пока молчит )
источник

ТШ

Тата Шко in pro.graphon (and gamedev)
Со вчера ...
источник

A

Alex Ф-ф-фэils!🌠︙... in pro.graphon (and gamedev)
Тата Шко
Привет! Могу сюда вакансию скинуть ?)
источник

ТШ

Тата Шко in pro.graphon (and gamedev)
🥰😘
источник

IS

Ivan Stepanov in pro.graphon (and gamedev)
Как имплементировать функцию rotm2euler (как в MATLAB) для разных rotation order?
источник

AK

Anton Khokhlov in pro.graphon (and gamedev)
гайз, кто нибудь в кокосе с камерами в 2д сценах работал? хочу реализовать отдаление/приближение, драг карты и т.д. сделал пока скейлингом, но кажется костыльным способ. пробую
auto camera = this->getDefaultCamera();
   camera->setPosition3D(Vec3(_character_sprite->getPositionX(), _character_sprite->getPositionY(), 800));

экран становится черным, даже надписи нет
источник

AM

Aleksey Muravev in pro.graphon (and gamedev)
Anton Khokhlov
гайз, кто нибудь в кокосе с камерами в 2д сценах работал? хочу реализовать отдаление/приближение, драг карты и т.д. сделал пока скейлингом, но кажется костыльным способ. пробую
auto camera = this->getDefaultCamera();
   camera->setPosition3D(Vec3(_character_sprite->getPositionX(), _character_sprite->getPositionY(), 800));

экран становится черным, даже надписи нет
Твои вопросы скорее к ющерам движка этого.
источник

AK

Anton Khokhlov in pro.graphon (and gamedev)
Aleksey Muravev
Твои вопросы скорее к ющерам движка этого.
Ну, вообще, логично :D
источник

AK

Anton Krupkin in pro.graphon (and gamedev)
Привет Всем!
Извините за off topic.

Есть возможность поработать над крутыми играми, такими как Quake Champions, WWZ, SnowRunner, Halo MCC, Crysis, Witcher 3 и другими ААА проектами. Освоить новые API и новые консоли или попробовать себя в геймдеве.

Короче - кто хочет работать в Saber Interactive как Рендер или просто как С++ developer, пожалуйста напишите мне.

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

Спасибо!

Крутая графика и крутые игры гарантируются!
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
@AlexFails НЕ ТРОГАТЬ, сразу предупреждаю) Я оттуда, если что, здесь реально классно, творческая свобода в техническом плане, придумываем и исследуем техники постоянно, и для освещения, и для постпроцессинга, и для мира, и не только, и пайплайн хорошо организован
источник

КЮ

Кирилл Юркин... in pro.graphon (and gamedev)
Сейбер же находятся в питере?
источник

VK

Vitaliy ◀️TriΔng3l▶️... in pro.graphon (and gamedev)
Кирилл Юркин
Сейбер же находятся в питере?
Да
источник

КЮ

Кирилл Юркин... in pro.graphon (and gamedev)
Блин...
источник