Эффект падения чернил в Cycles

22 апреля 2016 100 комментариев Артем Слаква Симуляция и частицы

Для данного урока желательно использовать Blender версии не ниже 2.77. Начиная с этой версии появилась поддержка рендеринга объема на GPU и возможность кэширования в формате OpenVDB. Данный эффект очень часто используется в компьютерной графике. В этом уроке Вы узнаете, как создать его с помощью Blender.
ink

Видеоурок

Текстовый урок

Добавьте в сцену куб и увеличьте его в три раза (S|3|Enter). На вкладке физике укажите куб в качестве домена для симуляции дыма:
ink-1
Добавьте в сцену ICO-сферу и уменьшите ее в 10 раз (S|0.1|Enter). Данная сфера будет влетать в наш домен, тем самым создавая нужный для нас эффект. Убедитесь, что вы находитесь на первом кадре, переместите сферу по оси X в сторону (G|X|-7.5|Enter) и установите для нее ключевой кадр (Insert Single Keyframe). Перейдите на 10-й кадр, снова переместите сферу по оси X (G|X|5.5|Enter) и установите для нее ключевой кадр (Insert Single Keyframe).

Обычно после подобных манипуляций мы переходим в окно редактора графов и меняем интерполяцию кривой, чтобы скорость движения объекта была постоянной без изменений в начале и конце пути. Но в данном случае это как раз то что нам нужно. Попав в область куба сфера плавно замедлит свое движение, что создаст иллюзию проникновения в среду с повышенной плотностью (например, воду).

Для сферы на вкладке физики так же отметьте симуляцию дыма и укажите ей тип Flow. Установите температуру равную 0, чтобы «чернила» (или дым) не подымались вверх. Также отметьте Initial Velocity, чтобы дым наследовал скорость сферы (инерция).
ink-2
Выберите куб и отметьте пункт Adaptive Domain, чтобы ускорить симуляцию дыма. В меню Smoke Cache выберите новый формат OpenVDB. Этот формат занимает гораздо меньше места на жестком диске (каких-то 4,3 ГБ :-Р). Чтобы кнопка Bake стала активной сохраните вашу сцену и выполните запекание симуляции. После запекания проиграйте анимацию. Как вы сможете увидеть, на данный момент это просто поток дыма пролетающий сквозь домен и не взаимодействующий ни с чем:
ink-3
Добавьте в сцену турбулентность (Shift + A → Force Field → Turbulence), чтобы дыму не было так одиноко в домене. Местоположение турбулентности в сцене не имеет никакого значения (она как Солнце). Для турбулентности установите следующие параметры. С их помощью мы добьемся нужного нам движения дыма. Снова произведите запекание симуляции:
ink-4
На данный момент сфера продолжает излучать дым даже после полной остановки. Это легко исправить анимировав соответствующий параметр. Выберите сферу, перейдите на 10-й кадр (последний кадр движения сферы) и установите ключевой кадр для параметра Surface (I). Затем перейдите на 15-й кадр, измените значение Surface на 0 и снова установите ключевой кадр. Также установите параметр Subframes в значение 32. Благодаря этому сфера будет излучать дым не только каждый кадр анимации, но еще 32 раза между ними, что даст достаточно плавный поток на столь коротком пути:
ink-5
Осталось несколько параметров, которые необходимо отрегулировать, прежде чем перейти к настройке материала. Установите Vorticity в значение 1. Этот параметр контролирует вероятность вращения дыма. Высокие значения дадут большие клубы дыма, которые будут слабо вращаться, а при низких ситуация буде противоположной. Экспериментируйте с данным значением. Возможно значение ниже 1 даст самые лучше результаты.

Активируйте меню Smoke High Resolution. Установите параметры Strength и Divisions равными 1. В обычной ситуации мы стремимся увеличить разрешение настолько высоко, насколько это возможно, но в данном случае дополнительные детали будут разрушать плавность потока.

На напоследок необходимо установить разрешение (Divisions) для домена. Устанавливайте данный параметр настолько высоко, насколько позволяет система. Но учтите, что он требует слишком много памяти. Если в вашем ПК 16 GB ОЗУ, то значение 512 будет для вас недостижимым (во всяком случае у меня запекание остановилось на 52%). Но даже при наличии 16 GB ОЗУ и разрешению 256 запекание придется ждать достаточно долго. Также увеличьте параметр Margin до 16, потому как значение 4 лучше подходит для симуляция с низким разрешением (32 или 64). Параметр Threshold установите равным 0.01, иначе плотность дыма будет недостаточной:
ink-6
Начинайте запекание и по его завершению займемся настройкой материала.

ICO-сфера на финальном рендере нам не нужна, поэтому скройте ее в Outliner. На вкладке мира установите белый цвет:
ink-7
Выберите домен и откройте редактор нодов. Удалите шейдер Diffuse и вместо него подключите шейдер Volume Absorption. Установите любой цвет, который вам нравится. Если вы сейчас включите режим Rendered, то увидите куб выбранного вами цвета. Чтобы увидеть дым, а не куб, нужно добавить ноды Attribute и Math. Для нода Attribute укажите в поле Name: density (плотность) и соедините их как на изображении ниже:
ink-8
На данном этапе можно остановиться и переходить к финальному рендерингу. Он будет происходить достаточно быстро, но мы пойдем по более сложному пути. Добавьте шейдер Volume Scatter и смешайте его с шейдером Volume Absorption при помощи нода Add. Для шейдера Volume Scatter установите такой же цвет и плотность, как и для первого и включите режим Rendered. Ваш дым будет полностью черным:
ink-9
Исправить эту проблему можно несколькими способами, но самым простым является увеличение отскоков луча для объема в меню Light Paths до 1. К сожалению, это повлечет увеличение времени рендеринга. Чтобы повысить плотность объема, добавьте нод ColorRamp, подключите его между нодами Attribute и Math и сдвиньте правый ползунок близко к левому. И последнее (и самое прожорливое к железу)… Уменьшите параметр Step Size до 0.01. Тут все просто, чем ниже — тем качественнее дым и дольше рендер (при чем линейно) и наоборот:
ink-10
На этом все! Выставляйте нужное количество сэмплов и производите рендеринг анимации. Помните о том, что теперь это можно делать на GPU, но если у вас на ней не 100500 гигабайт памяти, то по достижению определенного количества объема придется вернуться к старому, проверенному методу… CPU. И не забудьте по завершению поделится результатом в комментариях!

источник урока

О сайте

На данном сайте Вы сможете найти множество уроков и материалов по графическому
редактору Blender.

Контакты

Для связи с администрацией сайта Вы можете воспользоваться следующими контактами:

Email:
info@blender3d.com.ua

Следите за нами

Подписывайтесь на наши страницы в социальных сетях.

На сайте Blender3D собрано огромное количество уроков по программе трехмерного моделирования Blender. Обучающие материалы представлены как в формате видеоуроков, так и в текстовом виде. Здесь затронуты все аспекты, связанные с Blender, начиная от моделирования и заканчивая созданием игр с применением языка программирования Python.

Помимо уроков по Blender, Вы сможете найти готовые 3D-модели, материалы и архивы высококачественных текстур. Сайт регулярно пополняется новым контентом и следит за развитием Blender.