Так вот, решение пришло оттуда, где никто и не искал - Standart Render. У этого парня в эффектах есть тулза Position Pass, который переводит координаты объектов по XYZ в RGB картинку. Кто-то скажет "такой же пасс есть и у РШ", к примеру. Однако, в стандарт рендере можно проставить просчет не относительно мировых координат, а относительно камеры. А что такое Z координата, относительно камеры? Верно - это и есть наш пасс глубины. Только, из-за того что изображение в RGB, а нам нужен только синий канал, ведь он соответствует Z координате - на композе его нужно вытащить (Extractor если у вас .exr или Shift Channel для остальных форматов).
ОЧЕНЬ ВАЖНО: в настройках пасса есть параметр Scale, который отвечает за размер сцены. Настройте его на одном кадре, потому что именно он отвечает за глубину градиента. На дефолтной единице вся сцена, почти всегда синяя, я просто сбрасываю до значений +- 0.001
Также, если при просмотре пассов в Picture Viewer вы видите какой-то странный результат, не забудьте, что надо зайти в этом же окне во вкладку фильтры и включить там отображение только синего канала, ведь нам важен именно он.
Этот типс все равно не делает картинку идеально чистой, поскольку в чистовом рендере есть сглаживание, а нашем пассе его нет. Однако, все же видно насколько сильно результат отличается, по сравнению с встроенным Z-Pass.
Если вы думаете, что второй просчет всей сцены на стандарт рендере - дело долгое, то вот второй типс:
1. Подменяем все материалы в сцене на стандартный материал с одним лишь люма или альбедо каналом, остальные отключаем.
2. Качество сбрасываем на минимум
Тогда у вас на кадр будет уходить 1-2 секунды, а на технические пассы это никак не влияет
Придумал не я, столкнулся с проблемой на проекте и после долго ресерча нашел этот урок от GSG. Если кому-то хочется подробнее - там все разжевано до мелочей, плюсом идет пояснение про Motion Vector.
2|2
Post #12
501




- 🔥 5