Динамический Render Region - как отрендерить только нужный объект/материал

Не раз возникала такая ситуация. Когда, например, порендерил увесистую секвенцию (в данном примере 1300 кадров) и уже на постпродакшене заметил косяк в каком-то одном элементе/материале. В данном случае в задней фаре не загораются фонари заднего хода и стопаки, хотя должны.


no.jpg


В сцене всё это быстро пофиксил, но что делать потом? Перерендеривать всю сиквенцию (больше 100 часов) - жирновато будет. Нужно уложиться в одну
ночь, чтоб с утра встать, и уже доделать финальные пост-эффекты. Нужно как-то порендерить одну только заднюю фару, но корректно. Возможные мысли:


- Обычный render region - не подходит. Он квадратный и статичный. А фара не квадратная, и не статичная. К тому же не все рендер-движки могут адекватно работать с рендер-регионом.


- Скрыть всю сцену кроме фары - не вариант, нужно чтобы весь GI, и все отражения - точно совпали.


- Cделать материал, который на камеру отображается чёрным, а в отражениях и преломлениях рендерится нормальным - слишком долго и муторно, в сцене
куча материалов, и возиться с каждым - не вариант. К тому же могут возникнуть проблемы с моушен блюром на границах фары, когда на неё бы налезал чёрный.


- Убирать у объектов "визибл ту камера" = проблемы на границах объекта при моушен блюре. Кроме того, если бы нужно было исправить один конкретный материал, а не объект, то такой способ тоже не подошёл бы.



Короче. Придумал универсальный вариант. У меня в отрендеренных mat-ID как раз была эта задняя фара.

Mask.png


А если бы её и не было - можно было бы по-быстрому отрендерить простенькую id-сиквенцию, где на всю сцену кидаем чёрный материал, а на заднюю фару - белый самосвет.
В общем беру эту маску, накидываю гауссиан блюр, и левелсами как-бы немного расширяю границы маски, создавая небольшую безопасную зону вокруг фары, как раз для дальнейшего безопасного смешивания, чтоб не было косяков с моушен-блюром, с эджами, и всем таким.


MaskF.png


Рендерю всю секвенцию в пнг.


В сцене делаю плейн c соотношением сторон по размеру кадра. В моём случае это стандартные 16х9.
Делаю ему плотную квадратную сетку.

3dsmax 2024-04-07 19-32-51-43.png


Выравниваю его к камере (вместе с вращением по всем осям). Отодвигаю по локальной оси от камеры, сантиметров на 10. И линкую к ней.

3dsmax 2024-04-07 19-38-42-32.png


И делаю ему такой скейл, чтобы края плейна точно совпадали с краями кадра.

3dsmax 2024-04-07 19-39-18-68.png


Потом выделяю бордер, и добавляю немножко аутлайна, чтоб не было недоразумений по краям кадра.

3dsmax 2024-04-07 19-36-17-44.png


Дальше кидаю на плейн стандартный максовский дисплейс. Назначаю ему картой высот порендеренную ранее пнг-сиквенцию с заблюренной маской. Высоту
выбираю сантиметров 20, чтобы он уверенно уходил за камеру.

disp.png


И дальше в камере делаю "неар плейн клиппинг", и ставлю его почти вплотную к плейну.

clipping.png


На плейн кидаю абсолютно чёрный материал, и исключаю его из GI, отражений, и преломлений. И всё. Готова динамическая геометрическая маска для
быстрого рендера, с безопасными отступами, и автоматически подстраивающаяся под наш объект, и его расположение.

3dsmax 2024-04-07 19-50-25-70F.png


Никаких проблем с дополнительными рендер-пассами, если они тоже будут нужны.
Ни с здептхом, ни с масками, ни с прозрачностью, ни с и преломлениями. И также никакого изменяемого количества полигонов в пределах одного кадра.
Также по форме маски в сцене можно быстро посмотреть, какие из кадров нужно перерендеривать. Как только на маске начинают вытягиваться дисплейсовые искажения - значит начальный кадр. А когда искажения исчезают, и маска снова превращается в плоскость - это конечный кадр. Вырубаю все ненужные рендер элементсы, оставляю только главный бьюти-пасс, и преломления. Готово.

Smash the render button!


В результате рендерится пофикшенная часть кадра с фарой, и небольшой безопасной зоной вокруг неё. Время на кадр: 39 секунд. Превосходно.

gggg.gif


Дальше просто накидываю фикс поверх старого бьюти пасса, через оригинальную незаблюренную маску, и рендерю пофикшенную и полностью готовую
exr-сиквенцию.

fixedF.jpg


Сэкономлено 90 часов.

Police Cam 001 (006772).jpg



Кто-то скажет: "слыш Александр, но ведь в вирее же есть Render Mask (Texture), чё ты тут нам впариваеш какую-то дичь, можно туда засунуть эту заблюренную ч/б маску, и радоваться". Окей, в вирее есть. А где ещё есть? Даже в той же короне (ver.11, на момент написания) нету, там можно только по g-buffer, или по выделению, или инклуде-листу. А в других рендер-движках нет и такого.
Прикол моего варианта в том, что он универсален. И должен работать практически на любых рендерерах.


В то же время кто-то другой мог бы сказать "что это ещё за проблемы на границах объекта при моушен блюре? Про што ты мне толкуеш, фраер, не понимаю, ты фсё выдумал!".

Краткое объяснение для тех, кто пока ещё не работал с моушен блюром. Берём простейший пример. Чайник на фоне других чайников, и ещё один чайник перед ними. Наш парень - красный чайник, на среднем плане. Рендерим обычный кадр, короной с моушен блюром. Всё окей.

tea.jpg

Но если нам надо перерендерить один лишь красный чайник. Окей, включаем в Corona11 новомодный Render Selected, про который все говорят. Он рендерит один лишь чайник. Хорошо? Не оч. Он рендерит его на чёрном фоне. С альфа-каналом, все дела.

tea2a.jpg

Но если мы попробуем наложить этот кадр на наши изначальный кадр, то получим ужасные чёрные края объекта.

tea3.jpg

Если кто не уловил разницу - вот гифка:

tea.gif

Выглядит ужасно. И вот как раз для избежания такого эффекта и нужна безопасная зона вокруг объекта.

755 0 850 3
29
2024-04-08
Это гениально!
2024-04-09
А ещё очень помогает при рендере на слабых ПК - можно отрендерить кусками, а потом склеить. Я тоже как-то делал видосик на эту тематику https://youtu.be/V9QxMxrGg04
2024-04-09
Этому подходу уже столько лет, сколько компьютерной графике в кино. Открыли блин Америку.
2024-04-09
Интересный метод, хоть и дохера танцев с бубном 🤔
2024-04-09
Леонид, а покажите мне, где. Чёрными буквами. Написано что-то вроде "смотрите все, супер-новая тема, я великий первооткрыватель, лайк подписка колокольчик". Нету такого? Как же это так? А где же "америка открытая"? Я вот про данный способ не знал. И пришёл к нему своими мыслями. А если не знал я, значит есть и другие люди, которые не знали. И им это может помочь, и сэкономить время. А другие будут сидеть, и нос воротить.
2024-04-09
Леонид, тут речь о конкреной реализации и она ниразу не "стандартная широкоизвестная."
2024-04-09
возня с дисплейсом не понятно зачем маску и тупо материалом с альфой можно былобы.
2024-04-10
Эдуард, например в редшифте альфа вызывает артефакты на дополнительных рендер-пассах.
2024-04-11
Игорь, насколько комп должен быть слабым, чтобы страдать такой хернёй?
2024-04-11
Владимир, ну, например, у меня core i5 2390t+8ram+GeForce 1039
2024-04-11
Игорь, разве не варик поставить на рендер и пойти спать или на работу (судя по твоей сборке, для тебя это скорее хобби)? Время рендера примерно одинаковое, а геморроя хватит ещё и поделиться с кем-нибудь. Не подумай, я никого не учу, чаще всего мне без разницы, кто чем занимается, но иногда становится интересно)
2024-04-11
Владимир, а если комп один? Я ещё по мелочи для 3д печати моделирую, а на моей сборке, например, средняя сценка в 8к рендерится 2-3 суток.
2024-04-11
Игорь, то есть коммерция? А для каких целей 8к рендер?
2024-04-11
Владимир, хотел на shutterstock подзаработать
2024-04-11
Игорь, ну блин, тогда желаю тебе успешно заработать и обновить своего старичка. А то чот прям грустно
2024-04-11
Советую познакомиться тогда с азами компьютерной графики и кино, гений)
2024-04-11
Руслан, спасибо за совет. 20 лет знаком.
2024-04-11
Леонид, похоже нет)
2024-04-11
Руслан, а, ну раз похоже, то оно конечно. А как же.
2024-04-11
Леонид, ну блин. Если для тебя этот кадр это "истоки кино", то в таком случае могу тебя поздравить. Ты с теми самыми истоками не знаком. Не тем более что чувак не заявляет что он "новую фишку" придумал. Учитывая правила видеопроизводство, даже среди маскотов то и дело переделки уже былых кадров. Если уже брать этот кадр за анализ, то да, он не идеален, как минимум хромает построение перспективы и фукусировка (хотя мб так и задумано). Иди переучивайся, знаток)
2024-04-11
Руслан, в каком месте для меня это "истоки кино"? Как удобно подстраивать придуманные собой же факты под свой коммент, правда?
2024-04-11
Леонид, "Этому подходу уже столько лет, сколько компьютерной графике в кино" - прямая цитата... Графика появилась почти не так дофига по разнице во времени с тем, когда начали там звук использовать, открою тайну. Ты хоть чем-то оперируй, когда что-то пишешь)
2024-04-11
Руслан, и правда. Всего то лет 50 разницы.
2024-04-11
Леонид, эмммм.... Так-то куда меньше. В том виде, в котором мы её щас видим, это то да. Но с "исходником" там нифига не 50 лет
2024-04-11
Александр, ясно
2024-04-11
Руслан, это кропнутый кадр 😊 В оригинале там вся машина целиком, и ещё окружение по бокам. Я специально кропнул именно место с задней фарой, иначе на полном кадре было бы слишком мелко.
2024-04-11
Александр, Ну в целом это первый средний план... Понятно, что ты не делал чисто заднюю часть машины)))
2024-04-11
Александр, ааа... ты про перспективу... Понял. Ну смотри, даже если это кроп, можно перерендерить под "другим обьективом" и ближе. По расфокусу, ну тут смотря какого эффекта хочешь достичь. Так-то кадр неплохой)))
2024-04-12
Игорь, вы что-то делаете неправильно, поразбирайтесь с настройками, сутки на кадр даже на вашем компьютере это мягко говоря нетипично, предполагая сложность сцен, м которой вы имеете дело. На 8 оперативы ничего сложного у вас явно не должно быть, :) В любом случае чтобы что-то заработать нужно рабочее железо, на чем угодно это не получится, вы не сможете конкурировать с другими, на стоки люди генерят по десятку картинок в день, иначе там не чего делать , так устроена экономика. Купите на авито 1060 они там от6 тыр. Это минимум с которым вообще стоит соваться в рендер на сегодня.
RENDER.RU