В чём рендерить
не используя заоблачное железо и платный софт. Скорее всего стоит посмотреть в сторону Blender, Godot либо webgl-решений.
Для создания иллюстративной и анимационной 3д-графики на самом деле не требуется такого уж дорогого оборудования, новейших видеокарт и лицензий/подписок на специализированное ПО. В том числе и потому, что для получения картинки или клипа можно жертвовать временем рендера, чтобы улучшить изображение, а также обходится без видеокарты, в то время как у графики просчитываемой в реальном времени каждая миллисекунда на счету и для 3д видеокарта практически необходима.
Ниже я записал небольшое вольное сравнение простой анимированной сценки с самодельными модельками в различных программах, ориентированных на работу с 3д.
Запускал и записывал это всё на таком вот железе: ноутбук HP, процессор AMD A10 (4 ядра по 2Ghz), память 4Gb, Radeon HD8670m (dual graphics), Windows 8.1
Далее отдельно по каждому инструменту:
Blender
У Блендера всё было хорошо ещё лет 15+ назад. Другое дело, что многие узнали о нём относительно недавно - год, два тому назад. Но разговор сейчас не о том насколько Блендер популярен, а за то, что по сути можно использовать любую его версию, не только последние (таким образом можно подобрать версию Blender даже для довольно старого железа).
Одной из эталонных версий является 2.79b, последняя со старым интерфейсом, до последующего перехода на якобы модно-молодёжный интерфейс в 2.80. Оба варианта интерфейсов имеют как свои плюсы так и минусы, но в целом 2.79 производительнее и менее требователен к железу, поэтому я продолжаю его использовать несмотря на новые версии. В нём правда нет рендера eevee, но это даже не минус, потому как к eevee всё-равно нужен отдельный подход и настолько же "честно" просчитать картинку как cycles, она не способна. Cycles, в свою очередь, всю эту свою красоту вычисляет очень долго, поэтому когда речь идёт об отдельной картинке, то он вне конкуренции. А вот для анимации, особенно продолжительных, уже целесообразнее использование eevee, тем более что для движущейся картинки не так важна высокая степень детализации каждого кадра.
Cycles
Ролик начинается как раз с рендера в Blender 2.79 с использованием cycles. Размер картинки 1280 на 720, но с качеством 80%. 128 или 256 неоптимизированных сэмплов, без шумоподавления. В целом это меньшее качество, чем одиночный кадр для превьюшки этой статьи, который снят в 1980 на 1024 и большим сэмплингом.
Рендерил на процессоре, отдельными кадрами (анимации в cycles лучше никогда не рендерить сразу в видеофайл), по которым потом в графическом пакете пакетно прошёлся минимальным шумоподавлением, чтобы убрать редкие слишком светлые точки, но сохранить всё-же некоторую зернистость оригинальных кадров.
Всего кадров было 120. Вычисление всех заняло на моём девайсе где-то около 8-9 часов. Собственно, можно было выставить более оптимальные параметры и получить результат не сильно хуже. Например, снимать в 834 на 480, 64 сэмпла, и не 120 кадров а 60.
Eevee
Следующий вариант я рендерил в Блендере 2.90. Это была последняя стабильно запускающаяся у меня версия, потому как 2.91, например, не работала когда скачал её первый раз, а потом я и не пробовал снова. С тем же успехом можно было взять 2.83, по картинке вышло бы примерно то же самое, но, вероятно, чуть помедленнее.
На этот раз было уже 1280 на 720 с качеством 100% и 256 сэмплов (хотя сэмплирование в eevee - это далеко не то же самое, что в cycles). 120 кадров отрисовались примерно минут за 20. Ну и шум не образуется при таком методе рендера.
Визуализация рабочей области
В конце видео добавил вид на сценку внутри свежескачанного Blender 2.92, который в отличие от версии 2.91 запустился у меня сразу без проблем.
Как видно - 3д пакет уже в окне предварительной визуализации способен выдавать неплохую картинку, хотя она более упрощена. Теоретически можно поотключать интерфейс и захватывать картинку прямо отсюда, если вам зачем-то это нужно. Cycles такое не вытянет, медленно перерисовывает кадр, но в eevee возможно - кадр обновляется довольно быстро. Просто обычно этого не требуется, потому как лучше отрендерить нормальным образом или задать настройки самого рендера пониже, как для окна предпросмотра.
Из забавного. На картинке выше представлен один кадр, отрисованный в Blender 2.92 с использованием cycles. Сами шейдеры при этом взяты такие же, как были настроены для сцены в eevee. Кадр рисовался 10 минут, таким образом на все 120 ушло бы 20 часов. То есть cycles в 2.79 справился раза в два быстрее при чуть более низком выставленном проценте качества.
Дело оказалось в настройке Use open shading language, при включённой опции рендер кадра длился на 4 минуты дольше. При её отключении и выставлении 80 процентного качества среднее время рендера показало уже 5 минут, что уже больше похоже на время затраченное cycles в старой версии. В целом это я к тому, что между старым и новым cycles разница может быть не такой существенной.
Godot
Перейдём к игровым движкам. В целом их способы рендера похожи на eevee. Godot - наиболее доступный из нетребовательных движков, опенсурс, не требует регистраций и совсем мало весит. К тому же в нём есть не только продвинутые pbr-шейдеры, но и прочие полезные опции для 3д - экранные отражения и тени, глубина резкости, эффекты свечения, тонировка и автоэкспозиция, запекание света и так далее. То есть собрать визуал уровня eevee - не так уж сложно.
Правда большая часть этого великолепия будет работать только при выборе более требовательного рендера GLES 3, его и следует использовать для графики, если это возможно. GLES 2, тем не менее, может пригодится как более шустрый и простой вариант для визуализации анимаций, если GLES3 не поддерживается или работает слишком медленно.
Другая полезная вещь в Godot - встроенный аниматор, оперировать которым даже проще чем в Blender (зато в последнем больше разнообразного контроля и дополнительных возможностей). Да, он не заменит кости, но и без этого очень мощный и простой инструмент, которого часто так не хватает продвинутым движкам.
В отличие от Blender'а в игровом движке картинка рисуется в реальном времени, к тому же придётся чем-то её дополнительно захватывать (OBS, например; я для захвата видео из Godot в данном случае использовал ShareX). Опять же, обычно нельзя создавать какие-то детализированные модели прямо внутри движка, хотя в случае Godot помимо обычных примитивов, можно использовать специальные примитивы с поддержкой булевых операций, что несколько расширяет возможности.
Как и в случае с Blender у Godot есть более старые версии, хотя разница между требованиями не такая большая, если говорить о 3д. По крайней мере на текущий момент актуальна по сути любая из 3-их версий, хотя те что поновее имеют больше правок в мелочах. Более того, они останутся в некотором роде актуальными и после выхода 4-й версии, использующей другой рендер. Я сейчас пользуюсь версией 3.2.3, есть более новая 3.2.4.
Кстати, если уж говорить конкретно о визуализации, то на сборках Godot 4 делать рендеры можно было уже где-то с лета 2020-го. И хотя сами эти сборки ограниченной функциональности, но для того чтобы просто отрисовать и получить более красивую картинку, чем gles3 этого уже было достаточно.
WebGL
Ещё один вариант - решения, использующие webgl рендер. Все их плюсы и минусы в основном сводятся к тому, что они работают в браузере. Сюда можно отнести такие вещи как PlayCanvas, Three.js, Babylon.js, CocosCreator3d (хотя он более многостаночный, чем только webgl) и тому подобное.
Я пользуюсь PlayCanvas'ом, и по сравнению с GLES3 рендером в Godot местный webGL 2.0 выдаёт картинку примерно сравнимого уровня. Но в целом, конечно, графических опций здесь поменьше, хотя что-то из постэффектов можно подключить скриптами.
Ещё пара слов
Когда идёт речь лишь о рендере и визуализации, то и требования к моделям/сцене/весу приложения совсем не такие, как к игровым (несмотря на то, что потом картинки и ролики могут быть использованы и в самой игре тоже как фоны, заставки, текстуры и так далее). Поэтому можно использовать неоптимизированную геомерию, хотя и в разумных пределах, потому как лишние полигоны всё-равно увеличивают время рендера. Другая вещь - фиксированный или контролируемый ракурс, что тоже немного развязывает руки, позволяя проработать только то, что окажется в кадре или повлияет на него.
Например, вынося модели из Блендера для визуализации средствами движков, я применил модификаторы фасок и небольшого сглаживания, чтобы сетка стала более плотной и выглядела бы также как и в нём.
Отдельные отрендеренные кадры я склеивал опять же в Blender (в 2.79), используя его внутренний инструмент редактирования роликов и последовательностей изображений. Здесь как раз и требовалось сшить вместе не только отдельные кадры, но и ролики записанные вне Blender'а. Получилась одна большая последовательность из 5627 кадров, которая тоже какое-то незначительное время рендерилась.
Правда без дополнительных программ всё-таки не обошлось, потому как итоговый файл весил около 850 Мб и заливать такое на ютуб относительно долго. Поэтому дополнительно прогнал видео через ShotCut, пережав в 44 Мб без особых потерь в картинке. Собственно, если бы я не забросил на общий таймлайн цельные ролики, а использовал бы вместо них такие же последовательности картинок, то ещё на выходе из Блендера вес уже был бы более оптимальный.
О! Beastformers)
Смоделили что под руку попалось, или таки какой-то проект?
Комментарий недоступен
У нас, кстати, они продавались даже не оригинальные, а дешевая реплика, хотя даже она в те времена вызывала дикий восторг)
В нашу глухомань даже эти копии добирались редко, помню как креативили для них оружие из спичек, ниток, проволоки и коктейльных трубочек...
Комментарий недоступен
Эх, сейчас бы отыскать что-нибудь из них в загашниках - можно было бы облагородить и покрасить, хотя скорее всего проще было бы отлить заново или распечатать...
Ничего не понимаю в тридэ, зашёл из-за картинки, так ещё и узнал как эти чумбы правильно назывались :) респектище.
У нас они назывались просто: робот-олень, робот-лось, робот-жираф и т. п. Редкий почему-то был робот-акула, и всем его хотелось. Но один раз двоюродный брат из Мурманска привез робота-обезьяну, кажется. Вот такого ни у кого вообще не было.
Да недавно попалась картинка с ними на глаза, вспомнил, замоделил по мотивам.
Эх... А я уж губу раскатал(
Комментарий недоступен
Ну и зря.
upd: Господи, ну и бред сумасшедшего.
В новом сайклс аж две разные нейросети шумадавки. Грех отказываться. Легаси - это легаси.
Ну да, и требуют какие-нибудь карточки от Nvidia :) При том, что пакетное шумоподавление кадров в отдельном графическом пакете - куда дешевле, чем включать алгоритмы денойзинга непосредственно в процесс рендера.
Там два. Один чисто под ртх, второй для любых железок интелом написанный. Мой руйзен делает шумодав кадра за долю секунды им.
Самое че важное, он там включен внутрь сцены и композиции, т.е работает хитро, имея raw дату, инфу о шумах и тд и тп. В отдельном пакете - это уже все чисто поверх идет и не может быть эффективней, ну никак) После пережатия и без исходника то.
Просто без денойзинга в Блендере тоже можно жить, это не панацея.
Ещё в UE4 можно, делается весьма легко, к железу нет заоблачных требований.
Всего-то ядер побольше и памяти, чтобы не испытывать боль)
В 2016 я на ноуте с i3 и интегрированной видеокартой получал вполне хорошие картинки, а я тогда только впервые его открывал. На моем изображении куча полигонов, не скажу сколько, но я тогда не знал про такие понятия как запекание карт, поэтому тут хайполи модель. Так что ту модель, что представлена в статье, спокойно можно зарендерить в нормальном качестве, тем более, там есть режим рендера. В моем скрине же вообще реалтайм скриншот.
" В чём рендерить не используя заоблачное железо и платный софт."
А какова конечная цель? Если исключительно для себя, то вполне нормально.
Но если вы хотите достигнуть современных стандартов качества виза и зарабатывать денежку 3Д анимацией, то такое неприемлемо, образец над подписью "Blender 2.92, cycles, время рендера - 10 минут. 1280 на 720, качество 100%, 128 сэмплов, плюс пара настроек по оптимизации" просто целиком состоит из шума.
Тогда уж лучше потратиться на платный плагин и адекватное железо, которое будет выдавать результат на уровне (при наличии прямых рук и мозгов).
В 2.8х не "модно-молодёжный", а просто адекватный и удобный интерфейс, наконец-то поставивший блендер наравне с остальным софтом – в плане функционала он уже плюс-минус там был, но по удобству использования это была боль. Я долго ковырялся в настройках, и лишь спустя несколько вечеров и пару поломанных мной же файлов конфигурации я смог настроить более-менее сносное управление, похожее на таковое в Maya. С приходом 2.8х мне понадобилось лишь перебить управление вьюпортом на Alt + ЛКМ/СКМ/ПКМ. Плюс в какой-то из версий убрали отставание в производительности Cycles Windows-версии от версии для Linux. Плюс EEVEE, конечно же, в котором с прямыми руками можно вполне делать фотореалистичные картинки, пусть и фейковые, не говоря про моушен графику. Зависит от задач, иногда реально выручает. Плюс denoiser, в том числе для вьюпорта. Плюс новые фичи для скульптинга, новые браши, особенно браш для симуляции ткани. Плюс Grease Pencil на спидах (которым я не пользуюсь, но тем не менее). Плюс недавние Geometry Nodes, до которых у меня никак не доберутся руки, но видео впечатляют. В общем, я бы не был так категоричен по отношению к новой ветке) А там ещё и Everything Nodes подвезут, так вообще заживём.
Я не говорил, что новый интерфейс - это плохо. Я о том, что старый интерфейс тоже был вполне продуман и удобен, если в нём разобраться. Мне оба импонируют, только в старом больше функций на виду, а в новом как будто больший упор на использование поиска, чтобы найти нужную опцию. В целом же всё равно основная работа в Blender - это использование хоткеев.
Опять же, старый интерфейс производительнее, работает чуть шустрее, держит больший объем полигонов и так далее. При этом и новый достаточно быстр, чтобы это было прям какой-то проблемой. Но тем не менее.
Одно из действительно важных преимуществ новых Блендеров - коллекции. А так, много полезных нововведений, но если что, рисовать и лепить любой текстурой можно было ещё давным давно, без всяких новых брашей, как и делать какую-то специфическую процедурку через python или модификаторы, без всяких дополнительных geometry nodes, молчу уже про то, что позволяли всякие дополнительные плагины.
Ну так можно и в пейнте "Мону Лизу" нарисовать, если совсем утрировать, но зачем. Жизнь слишком коротка, чтобы тратить её на написание лишних специфических процедурок на питоне)
А по поводу скорости мне даже стало интересно, так что я скачал Gooseberry Benchmark и сцену с парикмахерской и прогнал рендер в 2.92 и в 2.79b – к сожалению, только на процессоре, потому что моя видеокарта слишком нова для 2.79b, а компилировать сборку с новыми CUDA-библиотеками я, понятное дело, не стал. Настройки не трогал, только выставил размер тайлов в старой версии вручную.
Windows 10 Home 20H2, i7 8700K, 32GB
Gooseberry Benchmark 1.0, 2472 кадр
2.92 | 22:58.22
2.79b | 43:33.06
Барбершоп
2.92 | 18:53.15
2.79b | 28:45.72
Лично я вижу только прирост в скорости. Возможно, дело как раз в упомянутых мной оптимизациях для Windows-билда. Порылся на YouTube, заметил, что прирост не только в рендере. Вот, например, запекание физики.
Но я ничего не навязываю, хозяин – барин; у каждого свои предпочтения.
Комментарий недоступен
Всё таки более-менее адекватное железо важно. Что-то я не совсем вдупляю как кадр из статьи 10 минут рендерился. Он не выглядит на эти 10 минут. Либо там полигонов миллионы либо что-то не так настроено. Потому что дочерта шума. Может масштаб модели неправильный (например сотни метров в высоту) тогда приходится источник освещения выкручивать на огромные величины и по факту получать кучу шума. Но в целом
Комментарий недоступен
почему?
blender porn
Комментарий недоступен
Комментарий недоступен
Blender Octane Edition
Учиться можно на чём угодно. Я даже коммерческим визом на первых курсах занимался вполне успешно на ноуте с 8 гб оперативной памяти. Но для того, чтобы что-то зарабатывать самостоятельно, в железо в любом случае придётся вложиться