cycles blender что это

Готов Cycles для профессионального использования?

За последние несколько лет Cycles стал неотъемлемой частью Blender и многие люди используют его в своей работе. Сам Blender сделал огромный прогресс в своем развитии и стал более пригодным для профессионального использования, чем это было в 2008 года, когда я только начал его использовать. Но что значит быть пригодным для «профессионального использования»? В данной статье я постараюсь поделится своими собственными мыслями по поводу использования Cycles в профессиональной деятельности. Все предоставленные изображение были созданы мною лично с помощью Blender и Cycles и в некоторых случаях была произведена пост-обработка с помощью Photoshop и After Effects.

(5 изображений в слайдере)

Если говорить коротко — да, готов!

Для тех у кого нет ни времени, ни желания читать всю статью я отвечу коротко — да, Cycles готов для профессионального использования. Под профессиональным использованием я имею ввиду то, что с его помощью можно создавать работы различной сложности и зарабатывать на этом деньги. Почему я подчеркиваю именно этот момент? У меня сложилось такое впечатление, что большое количество людей до сих пор думает, что блендер это все лишь хобби (потому что он бесплатный?) и если вы хотите зарабатывать «реальные» деньги, то Вам нужен «реальный» инструмент. Это всего лишь один из мифов и ошибочно считать, что «профессиональными инструментами» являются лишь те, которые используются крупными студиями или игровыми компаниями. Как и любое другое программное обеспечение Blender имеет свои преимущества и недостатки. Cycles может быть отличным решение для маленьких и средних компаний, не говоря уже о фрилансерах. Для лучшего понимания поговорим о нескольких вещах.

Необходим специфический рабочий процесс

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

Другое дело система шейдеров в Cycles. Она выглядит совершенно иначе, нежели в других движках, даже в тех, что основаны на системе нодов, такие как 3ds Max и Octane Render. С помощью процедурных текстур Cycles позволяет создавать невероятные шейдеры даже не покидая окно 3D-вида. Это может показаться несколько трудным, особенно для новичков, но с течением времени Вы поймете насколько это легко и просто. Если Вы еще не знакомы с Cycles, рекомендую почитать вводную статью по созданию реалистичных шейдеров.

Также, многие считают, что Cycles на является 100% физически точным рендером. Он дает невероятную гибкость и возможность контролировать различные методы рендеринга. Он создает изображение таким же методом как и другие физически точные рендеры, но это еще не значит, что «из коробки» результат будет корректным.

(3 изображения в слайдере)

Cycles не для CPU

Я знаю, что утверждение не соответствует действительности, а также то, что рендеринг на GPU всегда был дополнительной опцией для рендера. И тем не мене, до тех пор, пока Вы не соберетесь строить свою собственную рендер-ферму, забудьте о процессорах для коммерческого использования. Основная причина, конечно же, во времени рендеринга и происходит этого из-за специфики кода Cycles. Да, он может быть оптимизирован и улучшен (об этом еще поговорим ниже), но признаюсь честно, я ни разу не использовал CPU для создания фотореалистичного рендера. Возможно это произошло потому, что я мигрировал с Octane Render как только вышла стабильная версия, но я с уверенностью могу сказать, что GPU даст лишь преимущества Вашей работе. На GPU доступны практически все функции доступные на CPU и при этом рендер происходит в разы быстрее даже на старых видеокартах. Единственным ограничением здесь может оказаться количество памяти видеокарты, но сталкиваться с этим вы будете крайне редко (если вообще будете), а если и столкнетесь, то есть способы решить и эту проблему.

У Cycles лучшие рабочие сценарии

Удобство работы с различными движками отличается в зависимости от ситуации и Cycles не является исключением. Он удивительно быстр для создания большинства проектов, с которыми художники сталкивается ежедневно. В интернете Вы видите лишь крошечную часть того, что было созданного с его помощью. Почему? Потому что большинство не имеет ничего общего с искусством. Сегодня компьютерная графика используется во многих отраслях малыми и большими компаниями и при этом не демонстрируется широкой публике. Например, Вам действительно нужно ПО стоимость 3000+$, чтобы создать эффект для сайта клиента? Или для создания бумажной упаковки, в которой будет поставляться Ваш товар? Существует масса сфер в которых может применяться связка Blender + Cycles и они удовлетворяют требованиям рынка.

Есть области в которых Cycles мог быть немного лучше. Интерьерные визуализации создаются значительно медленнее по сравнению с Corona или Unreal Engine 4, но это не означает, что Cycles не может быть использован для этих целей. На самом деле он позволяет создавать отличные интерьерные визуализации и причем абсолютно бесплатно.

(5 изображений в слайдере)

Cycles до сих пор в разработке

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

Читайте также:  какой лучше взять воздухоочиститель

Сколько стоит Cycles?

Ниже Вы можете увидеть сравнительную таблицу самых популярных программ и расходов связанных с их использованием:
Цены актуальны на март 2015 года

Чтобы сравнение было более корректным, необходимо было включить сюда перечень возможностей предоставляемых каждым решением. Тем не менее, я этот момент упустил, так как с точки зрения фрилансера, целями которого являются создание быстрых и качественных рендеров эти решения удовлетворяют. Я Вам гарантирую, что 80% всех задач встающих перед Вами вы сможете выполнить с помощью Blender + Cycles. Хочу подчеркнуть, что это все относится к общим задачам и если Вам нужно что-либо узкоспециализированное, то скорее всего понадобится другое ПО. И тем не менее, Вам действительно нужен Z-brush, чтобы создать две скульптуры в год, Maya для создания базовой анимации или 3ds MAX + V-ray, чтобы соединить фото с 3D-объектом? Я думаю, что глядя на цены ответ на вопрос приходит сам собой. Заметьте, что приобрести V-ray и Octane для Blender дешевле, чем один V-ray для 3ds MAX.

Железо

Апаратные требования — очень интересная тема. Как уже говорилось, лично я рекомендую использовать GPU вместо CPU. Причина — скорость рендеринга. Ниже небольшой тест времени рендеринга сцены на различных видеокартах Nvidia:


Как видите, менее чем через 2 года стало возможным собрать систему, производящую рендеринг вдвое быстрее, чем топовая карта 2013-го года. И при этом за меньшие деньги! Также стоит обратить внимание на потребляемую мощность. Вы сможете обновлять лишь видеокарты, при этом не затрагивая остальную Вашу систему. Это невозможно при использовании любого решения на CPU, так как помимо смены процессора, Вам придется менять материнскую плату под него и при этом Вы не получите 200% прироста производительности.

В течении многих лет слабым местом видеокарт для Cycles являлось количество памяти. Из таблицы выше Вы можете видеть что в 2015 году стали доступны видеоадаптеры с 12GB памяти на борту. С таим количеством памяти Вы сможете отренедерить все что угодно, а если все таки и этого окажется мало, есть способы решения и этой проблемы.

Лично у меня все изображения с первого слайд-шоу были отрендерины на двух гигабайтной GTX 560, для сцены Scandinavian Interior потребовалось лишь 1,4GB. Я также использую GTX Titan 6GB на своей второй машине и ни разу не столкнулся с нехваткой памяти на протяжении 2-х лет. И это не потому, что мои проекты были маленькими. Это, скорее всего, из-за более аккуратного использования ресурсов, а с помощью двух GTX 970 (память карт при этом не складывается) я уверен, что смогу отрендерить любой интерьер.

Так почему же тогда Cycles не популярен?

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

Заключение

Я хотел бы закончить данную статью несколькими анимациями созданными в 2012 году. Они не идеальны, но тем не менее я очень доволен результатом.

Aze Design Bloxx Sofa Commercial Clip

Клип создан для дизайнеров мебели. Работа полностью создана в Blender, все 180 кадров. 6 часов на двух GTX 560 Ti (SLI). Создано в 2012 году.

Architectural Concept For Polish Embassy In Berlin

Один из самых сумасшедших проектов, которые я делал в своей жизни. 6 дней рендеринга! Окончательный результат был сделан с разрешением 800х450 и я использовал 4 графические карты для рендеринга более 2400 кадров в течение этого времени. Клип были отредактирован в After Effects.

Falcon Concept

Эта модель была первоначально предназначена для использования в коротком фильме, который, к сожалению, не был закончен. Так как я практиковал свои навыки анимации в то время, я решил попробовать, и создать свой собственный короткий клип. Все 3D было отрендерино с помощью Cycles + эффекты дыма в Blender Internal. Пост-обработка и звук были сделаны в After Effects моим другом. Что стоит упомянуть, этот проект был сделан в одном из самых первых выпусков альфа-версии Cycles.

Спасибо всем за чтение! Я надеюсь, что Вы нашли эту статью интересной. Не стесняйтесь оставлять свой комментарии, если у вас есть какие-либо вопросы.

С наилучшими пожеланиями и happy blending!
Lechu

Источник

Опенсорс-фотореализм на GPU: Cycles Render

С развитием технологии GPGPU, на рынке появилось немало рендеров на GPU, среди них iRay, V-ray RT, Octane, Arion. Но, сообщество opensource не дремлет, и появились по-крайней мере два известных мне свободных рендера на GPU: SmallLuxGPU и Cycles Render. Хочу поделиться впечатлениями о последнем.

Cycles Render — unbiased рендер, с возможностью рендеринга на GPU (CUDA и OpenCL для ATI). Лежит в коробке с Blender, который работает на Windows, Linux, OSX.


Cycles Render, авто с процедурной текстурой, FullHD готовилось 2 мин на GTX580.

Блендер меня мало интересовал, даже не смотря на некоторые известные мне достоинства: открытость, легкость инсталлятора, скорость работы. Пересесть консерватору с 3д макс на Блендер крайне сложно: другое управление, «все не так!». Но, будучи повернутым на теме анбиас рендеров, тем более на GPU, решил таки опробовать Cycles, за одно и Блендер подучить (на момент опубликования статьи версия 2.63).

Читайте также:  с каким чемоданом пускают в самолет размеры и вес

Небольшой ролик об интерактивности, и о том, как оно все работает:

Режим рендеринга с помощью Cycles можно сделать прямо в активном вьюпорте (это не новшество, просто удобство), либо следить с камеры за изменениями в сцене в реальном времени.

CPU vs GPU
Ядра процессоров архитектуры x86-64 имеют очень громоздкий набор команд, требующий большой площади кристалла. Из-за этого сложно расположить много ядер на CPU, но в однопоточных приложениях x86 показывает себя с лучшей стороны.
Но рендеринг — дело многопоточное до безобразия. Главное здесь — большая скорость операций с плавающей точкой, и оперируя большим количеством данных требуется хорошая пропускная способность памяти. GPU подходит для этих целей намного лучше.
Но GPU, как платформа, изначально заточенная под аппаратную растеризацию (OpenGL, DirectX) достаточно тяжело адаптировать под задачи GPGPU. Многие программные решения, которые с легкостью решаются на CPU требуют немалых плясок с бубном на GPU через фреймворки типа CUDA и OpenCL. Зачастую из-за сложности реализации алгоритмов, слабой оптимизации фреймворков (например OpenCL) от программирования на GPU отказываются.
Для математических операций (рендеринг, расчет физики) нужна новая архитектура процессора с небольшим набором инструкций, большим числом ядер и набором аппаратных решений для быстрых сложений и умножений чисел с плавающей точкой. Либо ждать, пока GPU аппаратно и программно лучше адаптируют под нужды не-графических вычислений.
Но в виду отсутствия таковой архитектуры и не желания ждать, пока все «станет круто», разработчики по всему миру уже вовсю осваивают GPU. Конечно же, рендеринг на GPU увеличивает скорость рендеринга в несколько раз.

Есть небольшой бенчмарк, где вы можете попробовать свое железо.
Мое время рендера (core i5 2500 vs GTX580).
Windows 7 64bit: CPU 5:39:64 CUDA 0:42:54. В 8.07 раз.
Ubuntu 12.04 64bit: CPU 3:48:77, CUDA 0:39:03. В 5.84 раза.

Было бы интересно разузнать о скорости рендеринга на последних топовых Радеонах.

Интересен тот факт, что Юниксы превосходят Windows в скорости рендеринга на CPU. Чтобы вы не думали, что моей винде плохо живется я накопал доказательства: раз (4-е сообщение) и два (на англ). С чем это связано — не хочу гадать, не знаю.
UPD: уже знаю, спасибо Lockal за комментарий.

Отрыв GPU так же зависит от железа, и сложности процедурных текстур. В сложных процедурных текстурах отрыв GPU немного сокращается. Кстати, о них.

Процедурные текстуры
Чтобы создать желаемый материал необходимо обладать навыками построения шейдеров с помощью нод графа. Как оно работает попробую объяснить на примере:

Где (мне показалось, что задом наперед будет понятнее):
1. Выход. Material Output необходим для вывода функции на поверхность.
2. Шейдер смешивает составляющую краски (4) и глянца (5) в соответствии с параметром (3).
3. Коэфициент отражения глянцевой поверхности (коэфициент отражения зависит от угла падения, чем перпендикуярно поверхности отражается меньше, чем по касательной)
4. Шейдер смешивает шейдеры 6 и 7 в равных пропорциях (Fac=0.5).
5. Зеркальное отражение (лакированная поверхность).
6, 7. Диффузная и глянцевая (шероховатостью 0.35) составляющие краски.
8. Преобразователь цвета. На входе Hue параметр fac текстуры (9) от 0 до 1. На выходе — смещение света относительно красного.
9. Генератор ячеек случайного цвета (r,g,b), где fac — интенсивность (от 0 до 1).

Освоив принцип работы, можно немного поиграться:

Можно комбинировать любые текстуры и типы поверхностей. Имеется FullHD.

Можно создавать источники света отрицательной светимости.

Свет, антисвет.

Процедурными можно сделать не только поверхности, но и окружение: небо, тучи и т.п. А с помощью нодов можно также настроить постобработку изображения.

Непонятности
Ну сначала для меня этот вопрос был непонятностью, но затем я понял, что к чему. Тут, как я понимаю, вопрос стоит между производительностью и удобством, и это относится ко всем анбиасам на GPU (не грешит этой особенностью Arion Render и все анбиасы на СPU).
В них существует glossy material для зеркальных и глянцевых отражений, и diffuse — для рассеянных.
Дело вот в чем. Если рассеивание отсутствует, то величина случайного отклонения в точки падения луча равна 0, и луч отражается зеркально. Если 1 (максимально) — то луч может отразиться в любом направлении в полусфере отражения. То есть если мы возьмем зеркало и дадим ему максимальную шероховатость — то получится белая бумага. По крайней мере я к этому привык, пользуясь Максвеллом.

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

Тоже самое касается translucent шейдера. Translucent переводится как непрозрачная среда, однако в рендеринге имеется в виду диффузное преломление. То бишь Translucent, это матовое стекло (Glass шейдер с матовой шероховатостью).

По этим картинкам можно сказать что Translucent выглядит нормально.

Ясно то, что при шероховатости Glossy и Glass близкой к 1 (визуально, больше чем 0.7) лучше использовать Diffuse и Translucent.

Подробная информация по свойствам шейдеров есть тут.

Эти вопросы не принципиальны для получения реалистичной картинки, но все же, хотелось бы добавить какую-нибудь более обобщающую и правдоподобную модель отражения для тех, кто к таким привык.
Например: задавать шероховатость поверхности каким-либо одним параметром, как это сделано в Maxwell, Fry, Indigo, Lux а особенности распределения отражения — дополнительными ползунками и галочками. А для самых суровых — управлять распределением отражения с помощью кривых Безье. Пусть, в ущерб производительности.

Читайте также:  цемент трескается при высыхании что делать

Кроме того, Cycles render грешит еще такой особенностью. Если мы в сцене имеем несколько источников света (допустим, 2), то вероятность того, что выпущенный с камеры луч отразится на большой источник света будет больше, чем на маленький, при чем не зависимо от интенсивности источников света. Когда в сцене комбинируется мягкий и жесткий свет, это может выглядеть так (слева), и ждать, пока пройдет шум, прийдется долго.

На картинке слева видно, что «шумит» именно передний источник света, в то время как задний чувствует себя прекрасно.

Первое, что может прийти в голову — это совместить 2 рендера в постобработке.
Однако, чтобы люди сильно не мучались, в Cycles есть такая функция: «Sample as lamp», которая включена по умолчанию. Если снять с нее галочку, то часть выпущенных с камеры лучей, будут отражаться от объектов в случайном направлении, а не в направлении источника света (чистый path tracing). В этом случае выиграет маленький источник света, и немного проиграет большой. Думаю, это временное решение, и рано или поздно программа будет допилена и возьмет на себя решение этой проблемы.

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

Апельсины vs помидоры
Может так некоторые подумают о сравнении Cycles с Maxwell. Но новенькому опенсорс рендеру надо расти и равняться на старших товарищей.
Итак, разрешение 400х300, время 10 сек:

Maxwell выглядит намного живее, как ни крути.

В Maxwell не настраивались никакие параметры поверхностей вроде sample as lamp, алгоритм все распределения нагрузок берет на себя.
Сильный шум от каустики в Cycles (а каустику, при желании, можно отключить) объясняется тем, что в нем отсутствует Metropolis Sampling (алгоритм оптимизации лучевых пучков, который есть в Maxwell Render).

Надо заметить, при использовании света от окружения или одного большого источника света, изображение в Cycles заметно чище, чем в Maxwell.

Рендерилось 5 секунд.


И чуть посерьезнее (core i5, 1 мин).

BVH
Bounding Volume Hierarchy — переводится как иерархия ограничивающих объёмов (спасибо don за просветление в этой части).
Честно говоря в разных рендерах процесс «предрендерной подготовки» называют по разному, compiling mesh в Octane, Voxelisation — в Maxwell. Я, как и многие работающие с Максвеллом, привык называть это дело вокселизацией, но вышеуказанный товарищ говорит, что это не одно и то же. Прошу простить сию неточность.
Это дело было придумано, чтобы не проверять каждый луч на пересечение со всеми треугольниками в сцене. А если их миллионы? Их всех нужно будет проверить на пересечение. В таком случае, мы вряд-ли увидим скорость больше пары семплов в секунду. И с каждым новым треугольником задача будет все больше усложняться.
Минус в том, что построение BVH выполняется в Cycles всегда на CPU. Может когда-нибудь появится, вокселизация на GPU, но пока этого нет, из чего вытекают свои ограничения. Например, у вас в сцене 10 млн треугольников, и 8 топовых видеокарт. Отрендерят картинку они в считанные секунды, в то время как время вокселизации объекта может перевалить за минуту даже на крутом Core i7. Если же вы используете только core i7, то на вокселизацию у вас уйдет около минуты, а на рендер — минут 20-30. В этом случае время вокселизации не принципиально.
Вокселизация вышеотрендеренного автомобиля (400k треугольников) занимает 14 секунд.

При интерактивной визуализации (preview) вокселизация выполняется только перед началом рендеринга, и при изменениях в геометрии объектов (положение вершин, применение модификаторов). А так же, при нажатии Ctrl+Z (даже, если я ничего подобного не делал, наверно недоделали еще). В построении BVH нет необходимости при навигации, масштабировании, изменении расположения и поворота объектов.

При рендеринге (то бишь, при финальном, нажатием кнопки F12) вокселизация выполняется всегда. При анимации можно избежать постоянном перепостроении BVH статичных объектов нажатием галочки Cache BVH.
Будем надеяться, что в скором времени этот вопрос будет как-то решен в пользу ускорения процесса вокселизации, может и на GPU эту задачку можно будет перенести.

OpenCL
Огорчил OpenCL под мою Nvidia, скорость уступает CUDA раза в два. Под Ubuntu Блендер с OpenCL просто вылетает. Под Win7 рендерит с помощью OpenCL но рендер выглядит у меня неправильно, если материал состоит из нескольких слоев, то из них показывается только один, например глянец или матовая составляющая. А баги во вьюпорте просто неподражаемы.
На Radeon, вроде бы, подобных багов нету, может коментарии покажут.

Тормоза интерфейса
Если во время рендеринга на CPU заниматься веб серфингом не сложно, то при полной нагрузке GPU удобно только читать, Хабр, например. При чем, желательно стараться свести листания страниц к минимуму, чтобы не напрягаться от тормозов.
Может есть какие-то способы изменять приоритет задач на GPU, но я про них не знаю.

Субъективное мнение
На сегодняшний день, Cycles уже достаточно хорош для визуализации.
Мне кажется, было бы неплохо его использовать для предметной визуализации: на базе Cycles можно создать свой собственный Bunkspeed Shot, Hypershot, Keyshot, Autodesk Showcase. Чтобы человек, не посвященный в премудрости 3д редакторов мог скачать модель и полюбоваться ею со всех сторон в красивом рендере.
Энтузиазм разработчиков не может не радовать, как и активность opensource сообщества в целом.
Жду дальнейшего развития проекта.

Источник

Сказочный портал