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

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

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

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

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

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

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

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

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

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

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

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

Делаю ему плотную квадратную сетку.

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

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

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

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

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

Никаких проблем с дополнительными рендер-элементами, если они тоже будут нужны. Ни с здептхом, ни с масками, ни с прозрачностью, ни с и преломлениями. И также никакого изменяемого количества полигонов в пределах одного кадра.

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

Smash the render button!

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

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

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

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

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

Комментарии (48)

+2
chernov_renders
Не знаю/не увидел про какой "движок" мы говорим? Если про корону, то там есть Render Selected, Mode: Include/Exclude или Object GBuffer ID.
+1
temp-64GTX
Это относится к разряду "проблемы на границах объекта при моушен блюре". Не знаю как тут картинку приложить в коменты. Короче рендерим чайник с моушен блюром на фоне двух других чайников. В обычном режиме рендерится нормально. В режиме Render Selected он рендерится на чёрном фоне, и в результате получаем тёмные границы объекта.
0
VIZSET
Комментарий удален
0
VIZSET
Render selected в exr и cryptomatte решают все проблемы с масками.
Зачем в режиме save selected фон черный всегда мне тоже непонятно, можно было бы отрендеренную секвенцию сунуть в бэкграунд
0
temp-64GTX
Render selected в exr и cryptomatte не решают всех проблем.
Как и бэкграунд. А если некий объект проносится между камерой и искомым объектом?
0
chernov_renders
А если рендерить в PNG с альфой? Тоже беда?
0
temp-64GTX
Да. Я на рендере-ру выпустил дополненную версию статьи, там в конце как раз картинки и примеры того, как возникают чёрные края у объектов при моушен-блюре.
0
kexer79
Горе от ума....

Секвенцию ЧБ масок в Render Mask (Texture) и всё. (V-ray)

Ну нужно городить все эти костыли остальные.
Или это прикол с опозданием на 1 апреля?
+2
temp-64GTX
От ума: счастье, корректные рендеры, и экономия времени.
А теперь пожалуйста найдите Render Mask Texture в редшифте, октане, фсторме.
+3
TechChromer
Дружище, ну ты и намудрил...
Render mask же есть
0
temp-64GTX
Обычный рендер маск не подходит, нужен как минимум Render Mask Texture. Помогите Даше найти его в редшифте, октане, фсторме.
0
AllanSchezar
я бы посмотрел более развернутый тутор. сейчас не понятна проблема. с редшифтом не работаю, не знаю чем плохи render mask или render mask texture. допустим этого в редшифте нет, не пойму что мешало юзать опасити, а не дисплейс.
я бы по-просту заанимировал векторную маску с запасом, в афтере, подсунул бы в маску региона.
да, я пока слабо представляю нюансы с моушн-блюром в таких кейсах.. вот этого очень хотелось бы почитать в уроке.
будет время - допилите, чтоб было ясно все плюсы и минусы метода.
0
temp-64GTX
Если делать опасити - то рендер-движок будет считать это как преломление. А отсюда - некорректные пассы рефлекшена, рефракшена, и прочих. Ну и некорректное сэмплирование. В редшифте и так туговато с ним, особенно на спекулярах.
Насчёт тутора - подумаю, но пока мне кажется что это никому особо не надо.
0
kexer79
Не вводите людей в заблуждение. Опасити — это опасити.
Вы придумали костыли, с этим нужно смириться.
Здесь либо издевка над новичками либо это троллинг.
0
temp-64GTX
У редшифта например, если кидануть опасити на плейн, то в пассах будут различные артефакты.
+6
vladimir.drobzhev90
По-моему комментаторы либо не читали, либо не поняли проблему с моушен блуром при рендере по маске. Ну и реально хочется же иметь запасное пространство вокруг объекта для последующие смешивания.
0
temp-64GTX
Иц окей, я в принципе заранее догадывался, что тут сидит мало людей, которые занимаются именно видосами, где всё движется, крутится, прыгает, и т.д. Это была тестовая выкладка, типа как предварительная защита диплома. В принципе это натолкнуло на пару мыслей и идей, которыми дополню статью.
0
kolbasnikov
Вы просто залезли в огород где сидит подавляющее число людей работающих на короне)
0
temp-64GTX
Есть такое.
+1
vladimir.drobzhev90
Тут многие как шимпанзе сразу начинают кидаться какашками, но их понять можно, они всю жизнь рендерили статику в православной короне/вирее и тут вдруг вылез, ты погляди, еретик, "анимация? Она нам и нахрен не нужона, твоя анимация")) А вообще конечно у нас самое токсичное сообщество по миру. Говна накидают держи карман шире, зато вместе с тем и критики навалят по существу, а не то что на зарубежных сайтах на любую хрень напишут фальшивое "вау, круто, так держать", когда даже и близко не вау. Надо просто уметь правильно относиться к "нашинским пабликам и комментаторам"))
+1
nekrobul
Шаг первый - Придумать проблему.
Шаг второй - Героически её решить.
0
temp-64GTX
То есть получается что проблемы нет? Нужно было оставить рендер с ошибками? Или как? Непонятно.
0
nekrobul
Нужно было просто использовать render selected а не плясать с бубном и придумывать велосипед на костылях за большее количество времени чем вы потратилибы на рендер даже полноценного региона. Что к слову выгодно эфективней в большенстве случаев тк даёт больше динамики для маскинга на сборке рендера во фьюжен или давинчи.

Да и 100 часов рендера в сцене в которой нет ничего - тумач.
0
temp-64GTX
Покажите мне пожалуйста, где в редшифте рендер селектед? Что-то не вижу. И даже если бы он там был - как решать проблемы с краями объектов при моушен блюре? В коментах уже сто раз об этом написал.
-1
nekrobul
Ответ простой, не пользоваться таким барахлом как редшифт.

Проблемы с моушенблуром решаются киингом через ID\Cryptomate маски.

И вообще, моушен блур накладывается поверх средствами Velocity элемента, боже. Сколько времени вы этим вообще занимаетесь?
0
temp-64GTX
оооо, ясно. Вопросов больше нет.
0
nekrobul
Просто что-бы вы понимали что я знаю о чём гворю - https://harriskalinka.com/work/21-golf-club/ 
+2
megauniqum
Называть редшифт барахлом это очень смело)
0
nekrobul
Отнють, использовать движок написаный для C4D работающий на костылях в среде 3ds MAX как по мне извращение и техноересь.
0
temp-64GTX
И по поводу ста часов рендера - вот почему вам всем надо вступать в какой-то клинч? Обязательно вот разводить какие-то споры на пустом месте. Не бы сказать "классный трик, бро, спасибо, я вот никогда в жизни с моушен блюром не работал, но если буду работать - то буду держать в уме твой трик, возможно сэкономит мне кучу времени".

100 часов долго? Ну отрендерьте быстрее. В 4k@60 fps. С динамическим volume туманом, динамическим GI, источниками света сложной формы, и прочим. И чтобы это всё не шумело как хрен знает что.
-4
nekrobul
Зачем рендерить 4к 60 fps если есть Topaz Gigapixel который делает из 1080p 30 fps 4к 60fps за 3 минуты без потери качества?
0
temp-64GTX
Молодой человек, у меня к вам нет больше вопросов.
+1
nekrobul
Ещё один выскочка без реального опыта -_-
+3
chernov_renders
Музик, Gigapixel или Topaz Video AI из 1080 в 4к и реальный 4к это соверешенно разное качество. По твоей логике можно рендерить 144p и сделать Full HD)
0
Rangrr
Ты хотя бы пробовал сам им пользоваться? Насмотрятся тут крутых результатов с ютуба...
0
nekrobul
Каждый день используем в повседневной работе. -_- Идите попробуйте порендерите 2-3 минуты анимации зелёнки на пару сотен квадратных километров честного 3д на ферме в 40 компов. Сюрприз будет.

Насмотрятся видосов на ютубе, и считают себя мастерами. Батенька, я 20 лет в общей сложности 3д графикой занимаюсь. Работаю по направлению 3д уже 15 лет.
0
Rangrr
Пара сотен квадратных км быть может норм улучшатся, а вы теперь попробуйте этим улучшить анимацию с мелкими деталями. Даже не анимацию а статичный кадр. Покупал пару месяцев назад подписку Magnific, которая к слову намного лучше Гигапикселя. Это были самые тупо потраченные 39$ в моей жизни.
Полагаться на апскейлеры делая прооф анимацию такое себе занятие
0
nekrobul
Очень мило что в пример вы приводите нейронку для апскейла стилов а не видео.

А что касается детализации на сотни квадратных километров, поврьте. Она сильно больше чем может показаться, я уже давал ссылку в этом топике на то с чем приходится иметь дело.

Просто что-бы у вас было понимание о цифрах про которые мы говорим. 1080p 15fps рендерится в 16 РАЗ! быстрее чем 4k 60fps.
Один фрейм в среднем рендерится около 1 часа в 1080 и фрейм в 4к будет рендерится около 4х часов и таких фреймов надо будет в 4 раза больше. И того мы получаем 16 часов на один такой же фрейм на одной машине.
Рендер всего метража в среднем занимает 2-3-4 дня. Значит по итогу мы получаем 32-48-64 ДНЯ!
0
VisActive
Моделька чарджера какая-то странная и не коповский и не гражданский...
0
temp-64GTX
Это вы ещё спереди его не видели :D Это для дебрендинга, или как он там называется. Чтобы у Fiat-Chrysler LLC не было претензий по авторским.
0
VisActive
тогда понятно
+2
vergasoff
Прикольный способ, спасибо, что поделились.
Пока читал -- подумал, что на плейн с глухим матом будет натянута секвенция в качестве маски, а дальше также будет рендериться нужный участок, только типа по опасити, тоже как замочная скважина такая.
Но неожиданный поворот с дисплейсментом приятно удивил своей элегантностью.
+1
temp-64GTX
Те рендер-движки, в которых нормально считаются пассы при опасити (напрмер корона) - можно пользоваться и этим вариантом, когда чёрному материалу на плейне назначается наша заблюренная маска в качестве текстуры опасити. А в тех рендерах, где с пассами сквозь опасити дела обстоят похуже (например редшифт) - вариант с дисплейсом будет в самый раз. А по времени там почти одинаково - что дисплейс накинуть, что опасити накинуть.
0
-NiK-
В redshift есть sprite material как раз для быстрого рендера опасити аля clip mode в vray
0
temp-64GTX
Я как-то раз тестил его на деревьях, но он настолько неудобно реализован... В вирее это в два клика было, а тут надо создавать новый мат, закидывать в него старый мат, назначать, закидывать текстуру альфы. Не уверен, что по времени это будет быстрее, чем кинуть дисплейс :D
+1
Firdavs1100
very useful!
+3
Rangrr
Было интересно посмотреть на такой необычный подход. Спасибо что поделились полезным опытом
0
c3dm
Через костыли с масками только и выползаем )