Рендерим меньше - получаем больше

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

По итогу я пришел к выводу, что без AI ничего не получится :)

Наткнулся на несколько видео, где люди повышали частоту кадров в 2, 4, 8 и даже в 16 раз. Замедляли видео в несколько раз. Делали и то и другое одновременно. И всё это они делали через Topaz Video AI. 

Решил попробовать. Нашел на просторах интернета народную версию этого софта для экспериментов. Подготовил пролёт камер в максе. Рендерил анимацию с частотой кадров в 15 FPS. И решил скормить этой программе видеофайл с 15 FPS. Произошло чудо :)

Эта программа реально дорисовывает недостающие кадры. Причем делает это она очень хорошо. Ниже прикреплю видео, где хочу показать разницу между 15 и 30 кадрами в секунду.

Думаю, наглядно видно в чём разница. 

Визуализацию сохранял в png. Каждый кадр это отдельный png. Вот такая куча картинок получается после визуализации одной камеры.

Склеивал все кадры в одно видео в Adobe Premier. Заходим в Premier и создаём новый проект. В разделе "Редактировать" выбираем "Импорт медиа". Ищем эту кучу картинок и выбираем первый кадр.

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

После того как вы выбрали исходный материал в левом верхнем углу у вас появится миниатюра вашего будущего видео. Щелкаем по нему правой кнопкой мыши и "Изменить" > "Интерпретировать видеоряд..."

Пишем 15 кадров в секунду

ОК.

Перетаскиваем эту миниатюру на таймлайн в нижнее окно и экспортируем видео. Нажимаем "Экспорт" в левом верхнем углу программы и выбираем максимальное качество видео.

В видеофайлах я почти ничего не понимаю. Поэтому выкручивал всё на максимум (как мне тогда казалось...).

После экспорта открываем Topaz Video AI и импортируем наше видео.

Выбираем "30 FPS" в разделе Frame rate и "None" в разделе Slow motion.

С выбором AI model нужно немного экспериментировать. В моём случае хорошо отрабатывают Apollo и Chronos. 

Нужно не забыть выбрать время видео. У меня видео получилось в 4 секунды, поэтому я выбираю 5 секунд.

После этого жмём эту синюю кнопку и ждём пока программа дорисует недостающие кадры.

Теперь можно посмотреть на результат. Можно сравнить с оригиналом (4 кнопки в центральной верхней области программы). Экспортируем полученное видео и радуемся :) Экспорт находится в правом нижнем углу программы.

Таким образом я отрендерил в два раза быстрее и получил тот же результат. Я пробовал замедлить видео. Topaz Video AI очень хорошо это делает. Единственное, что нужно держать всегда в уме - это то, что быстро движущиеся объекты и в некоторых случаях размытые объекты будут дорисовываться не очень хорошо. И каждая AI модель делает это немного по разному. Но, для пролётов камер, медленной динамики и подобных историй любая из AI моделей справится на раз два. Пробуйте! Это стоит потраченного времени!

Вот, что получилось - https://youtube.com/shorts/qtJzSe5Mqos?feature=share 

P.S. Сейчас делаю другое видео. Попробовал увеличить частоту кадров с 15 до 30 к/с. Плюс ко всему сделал замедление видео в 2 раза. Вот, что получается:

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

0
paz
интересно

Я анимацию рендерил ну наверное неделю. И то, кусками. https://youtu.be/H0rkQrwebgw?si=wkdvCuA3g2PxaM0n 

Потом в том, же twinmotion это можно сделать за пару часов.
+1
RD
Прикольно получилось :))
Читал как то статью, где сравнивали CPU и GPU рендеринг. Было прям полное исследование этой темы. Не статья, а какое-то прям научное исследование :) Так вот, там написано, что GPU пока плохо справляется с отражением. То есть оно как бы есть, но как бы упрощенное. Написали, что CPU точнее просчитывает отражения. На GPU тоже можно добиться такого же отражения как на CPU, но время рендеринга выравнивается с CPU. То на то и выходит. Поэтому не стал заморачиваться с изучением GPU рендеринга. Просто бахнул это всё на короне. Тем более вся сцена и так была собрана в короне.
Рендер ставлю на ночь. Подвязываю несколько компов через Distributed Rendering (так быстрее получается). И создаю кэш файл, чтоб корона не просчитывала его каждый кадр.
+1
paz
Спасибо
По анимации, ну вы же понимаете, что это все фейковые кадры. Уверен с персонажами это не пройдет. Хотя интересно прогнать и сделать не 30 кадров как у меня, а 60 к примеру.
Да, с отражениями есть моменты. Особенно это для интерьеров чувствительно.
Но вот к примеру тот же Фшторм, конечно он по скорости в разы быстрей Короны. Это не движок, это рендер. Там с отражениями все норм.

У вас хорошо получилось. Но опять таки задача не самая сложная. Интересно понаблюдать, продолжайте.
0
RD
Да, это фейковые кадры :) Но, способ рабочий. Сейчас и в играх используют фейковые кадры. Тот же FSR и DLSS. Кстати, ваше видео можно легко преобразовать в 60 FPS этим способом. Можно вдобавок замедлить его (если есть необходимость). И результат будет качественным, так как в вашем видео нет очень быстрых движений. И, да, этот способ актуален и для GPU рендеринга. Как минимум попробовать стоит :)
0
RD
Вот как ваша анимация смотрится в 60 FPS. Алгоритм Apollo (не Apollo fast).
После просмотра видео удалю его с youtube. Дайте знать. Не хочу нарушать авторские права :)
https://youtu.be/8rd-K9qZ1xM