Discovered (анимация)

Сказ о том, как я рендерил "тяжелый" ролик в C4D + Redshift на старухе GeForce GTX 970 с помощью нейронок.

Когда я только начинал изучать C4D, то запилил вот такую вот сцену.

Discovered (анимация)

Изначально задумывал её, как анимацию, но увы, моя старушка GTX 970 решила иначе - 9 минут рендера на один кадр. При разрешении 1920х1080, 30FPS, получалось 45 часов рендера на 10 секунд видео. И вот спустя почти пол года я решил таки вделать изначально задуманное, прибегнув к некоторым уловкам.

ОПТИМИЗАЦИЯ СЦЕНЫ

Первое, что я сделал - оптимизировал сцену. Удалил нахрен все текстуры со сцены, заменив их простыми материалами (всё равно разницы почти не видно). Архитектуру локации запилил с помощью матрицы - по сути это несколько прямоугольников, клонированных десятки раз. Дальше поиграл с настройками рендера - снизил качество всего, что не било сильно по общей картинке (упор сделал на семплы тумана и отражений). В настройках GI заменил Brute Force + Irradiance Point Cloud на Irradiance Cach + IPC - разницу в итоговом изображении можно найти только под лупой, а время рендера сократилось довольно заметно. Всё это сократило время рендера с 9 до 4 минут, аж в два раза!

И финальный штрих - я тупо снизил разрешение сцены с 1080p до 720p, взамен добавив каустику на сферу, чтобы получить "солнечные зайчики" на стенах локации.

Итог: время рендера снизилось с 9 минут до 2:15 - быстрее почти в 4 раза! Итоговый ролик должен отрендериться за 11,5 часов. Что всё ещё слишком много...

Получилось как-то так в итоге

ИНТЕРПОЛЯЦИЯ КАДРОВ

И тут на помощь пришла программа Flowframes - нейронка с дружелюбным интерфейсом с помощью которой можно увеличить частоту кадров в (почти) любом видео. Ранее я баловался с несколькими подобными инструментами, но Flowframes оказалась самой удобной, эффективной и оптимизированной (некоторые другие либо шакалалили видеоряд, либо крашились из-за нехватки видео памяти на GTX 970).

Я просто ускорил всю анимацию в сцене в два раза, сократив общую длительность с 10 до 5 секунд и поставил перед сном рендериться секвенцию. Спустя 6 часов у меня на руках было 150 готовых PNG-кадров, с пылу с жару.

Далее я загрузил все изображения в FlowFrames и интерполировал свои 150 кадров (30фпс) до 300 кадров (якобы 60 фпс). Но я не планировал делать видео в 60 фпс, а вместо этого просто замедлил вы два раза секвенцию, получив в итоге те самые 10 секунд, задуманные изначально.

Итог: на интерполяцию ушло примерно 10 минут, включая несколько неудачных "дублей" из-за некорректных настроек.

Результат же получился вполне хороший, хоть местами и получались вот такие артефакты. Но общее кол-во таких вот кадров составляет не больше 5%, и в динамике их почти невозможно рассмотреть, если не знать где искать.

Discovered (анимация)

АПСКЕЙЛ С 720р ДО 1440р

Это всё, конечно, было круто, но оставалась последняя проблема - шакальное качество картинки из-за низкого разрешения. И тут на помощь снова пришли нейронки. И решил воспользоваться Topaz Gigapixel AI, потому что во-первых, простой интерфейс без заморочек, во-вторых вполне приемлемый результат и быстрая работа, а в-третьих было много сидов ;-). Кстати, наверняка есть более продвинутые инструменты без лишних заморочек. Если знаете такие - напишите в комментариях, я обязательно протестирую, потому что Gigapixel всё же частенько выдает мыльную дичь.

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

В конце всё по стандартной схеме - запустил After Effects, загрузил изображения единой секвенцией в 30 ФПС , наложил немного эффектов (частицы вокруг сферы, цветокоррекция, музыка) и отрендерил.

Итог: через 1,5 часа я получил готовое видео в 2560х1440 вместо 1280х720 пикселей.

Один и тот же кадр ДО и ПОСЛЕ

ВЫВОДЫ:

Тупо 7 часов 40 минут на всё против изначальных 45 часов.

Экономия времени составила ~600% (!!!)

Да, я понимаю, что без всех этих уловок видео получилось бы "чище" и качественнее, но для владельцев такого древнего железа, как у меня использование нейронок - отличный выход. Ведь лучше потратить 8 часов и получить приемлемый результат, чем насиловать домашний ПК двое суток, не так ли? Думаю, этот опыт может быть полезным и для владельцев топового железа - можно делать ролики в 4К и 60ФПС, тратя гораздо меньше времени.

ОТВЕТЫ НА ВОПРОСЫ, КОТОРЫЕ НИКТО НЕ ЗАДАВАЛ

В: Зачем всё это, если можно использовать UE 4/ UE5 / Evee / Urender и т.д?

О: Во-первых UE4 и другие реалтайм-движки всё же ограничены, добиться в них красивой картинки сложнее в разы. Сэкономив время на рендере, я бы потратил гораздо больше на создание "фейковых" эффектов, таких как объемный туман, каустика и т.д. и не факт, что в итоге смог бы добиться нужного результата. Теоретически UE5 мог бы выдать схожую картинку без танцев с бубном, но он у меня тормозит так, что работать невозможно. В-третьих, я хочу изучать не другие движки и редакторы, а именно C4D и Redshift.

В: А не быстрее было бы сперва апскейлить 150 изображений, а потом интерполировать их до 300?

О: Быстрее! Но я заметил, что Flowframes лучше скармливать "сырые" материалы для интерполяции, потому что он становится слегка непредсказуемым при работе с отредактированными изображениями, а особенно если они после апскейла.

В: Почему всё зернистое?

О: Потому что тут цель была - получить приемлемый результат за ночь рендера на старухе GTX 970. Результат без зерна пришлось бы рендерить на 4-5 часов дольше.

В: Будет ли это работать в динамичных сценах?

О: К сожалению, не факт. Когда происходят резкие движения в кадре или камера сильно трясется, то Flowframe тупит и пытается "рисовать" кадры, исходя из своей машинной логики, что приводит в странным и стремным результам. Возможно есть другие нейронки, которые лучше справляются с динамикой, но я о них не знаю.

В: Стоило ли тратить столько времени и сил на какую-то унылую 10-секндную сценку?

О: Стоило.

ССЫЛКИ

Ролик в оригинальном качестве на Youtube и Vimeo

Мои страницы:

Всем спасибо за внимание, с вас 3 лайка.

6363
29 комментариев

тебе в гос закупках работать надо.

11

Чому?

У вас немного некорректно подсчитано сэкономленное время в процентах. Оно составляет 83%, а не 600% (ты не можешь сэкономить больше, чем у тебя есть). А в целом подход интересный

8

Блин, всегда с процентами тупил

4

Экономия времени составила ~600% (!!!)

А сколько времени заняли все эти работы по перегонке видео в png, скармливании их проге, потом манипуляциям с нейросетями.

Не проще ли было просто оставить рендериться на двое суток и заниматься иными делами?

8

Я же написал 7 часов 40 минут.
Это весь процесс. Ну может час ушёл на пробы всякие, всё таки я наощупь двигался в первый раз.

Если ты конкретно про сам процесс, то там от силы час времени.

К тому же я работаю за этим же компом в дневное время) Рендер затянулся бы на неделю

3

Молодец приятель! В первую очередь это опыт, опыт важнее всего.

2