Blender 2.6 Cycles: Сборник рецептов о материалах и текстурах

Автор: Enrico Valenza

Перевод: Striver

Об авторе

Enrico Valenza, также известный в Сети как «EnV», — итальянский внештатный иллюстратор, главным образом сотрудничающий с такими издателями, как например, Mondadori Ragazzi и Giunti, в качестве художника фантазийных и научно-фантастических книг.

Он окончил Liceo Artistico Statale в Вероне (Италия) и позже был студентом иллюстратора и художника Giorgio Scarato.

Когда он начал работать, компьютеры не были популярными среди масс, и он провёл первые 15 лет своей карьеры, создавая иллюстрации традиционным образом. Особенно он специализировался в использовании аэрографики, эта техника особенно ценилась для рекламной работы.

Но это было только до момента, пока в кинотеатрах не появился Парк Юрского периода: тогда он решил купить компьютер и попробовать свою руку в этой «компьютерной графике», о которой все говорили.

Будучи самоучкой в большинстве аспектов CG, он столкнулся с философией открытых программ (open source philosophy), которая действительно открыла новый мир возможностей — и, в частности, с Блендером.

В 2005 году он завоевал Suzanne Awards для «Наилучшей анимации, оригинальной идеи, и истории» с мультфильмом «New Penguoen 2.38».

В 2006, он присоединился к Orange Team в последние две недели производства в Амстердаме, чтобы помогать закончить кадры первого открытого короткометражного анимационного CG-кино, произведённого Blender Foundation, который назвали «Мечта Слонов» (Elephants Dream).

С 2007 до 2008, он был ведущим Художником в Peach Project Team для производства «Большого Зайца» (Big Buck Bunny), второго открытого фильма от Blender Foundation.

С 2010 до 2011, он был арт-директором в CINECA (Болонья, Италия) для Museo della Citta di Bologna project, то есть делал в Блендере стереоскопический анимированный документальный фильм о истории Болоньи.

Также, как Blender Certifed Trainer, он сотрудничает в качестве CG-художника с итальянскими промышленными студиями, которые решили переключить свой конвейер на открытые программы.

Он почти ежедневно использует Блендер для своих работ в иллюстрации, изредка рендерит иллюстрацию напрямую 3D-пакетом, чаще в качестве отправного пункта для живописи в других открытых приложениях, как например, Gimp, или, позднее, MyPaint.

Он представил несколько презентаций и семинаров о Блендере и его использовании в производстве (productions).

Предисловие

С тех пор, как интерфейс и код Блендера были полностью переписаны с нуля, начиная с версии 2.5 и в течении всего производства открытого кино «Sintel», множество хороших вещей произошло с этим знаменитым открытым пакетом 3D-моделирования и анимации.

Одним из них был объявленный в апреле 2011 года Cycles, новый движок рендера, разрабатываемый Brecht Van Lommel с целью модернизации системы затенения и рендера в Блендере, и который можно использовать как альтернативу для встроенного движка рендера Блендера (Blender Internal, BI).

Cycles был наконец полностью интегрирован в Блендер в версии 2.61 как расширение, которое является скриптом на Питоне, включенным на панели Настроек по умолчанию: таким образом, чтобы сделать его активным, достаточно выбрать нужный движок рендера в верхнем заголовке окна.

В то время как встроенный рендер Блендера является scan-line движком, Cycles является основанным на физических законах трассировщиком путей (path tracer); этот метод позволяет упростить создание материалов, поддерживает Глобальное Освещение, и, наконец, более реалистичен в результате.

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

К настоящему времени, BI все еще поддерживается (даже если больше не разрабатывается) и нет реальных планов бросать его, по крайней мере в данный момент. Не ясно, заменит ли Cycles в будущем BI полностью, или оба будут (надо надеяться), сохранены для возможности выбора. Ясно то, что в Cycles все ещё отсутствуют некоторые возможности BI, как например, симуляция дыма, stress mapping, и другие (в момент написания книги — 2013 год — прим пер.).

Это не означает, что Cycles не является production-ready (ненавижу это словосочетание, и переводить не буду — доп. пер.); множество изумительных изображений уже создано в нём, как для целей тестирования, так и для реального производства. Вы можете найти большинство из них на форуме BlenderArtist (http://blenderartists.org/forum/), но достаточно упомянуть «Слезы Стали» («Tears of Steel»), пятое открытое кино, созданное в Blender Foundation с кодовым именем «Манго»: научно-фантастическая короткометражка, полностью визуализированная в Cycles для выполнения визуальных спецэффектов. Хорошо, может быть не полностью, но около 95 процентов: группа все еще использовала BI для неподдерживаемых средств. Фактически, включенные в одну программу, одинаково поддерживаемые встроенным редактором композиции, как Blender Internal, так и Cycles, действительно можно использовать в тандеме, чтобы получить полное использование всех возможностей от них обоих.

Лучшее из двух разных миров.

Что эта книга охватывает

Глава 1, Обзор Материалов в Cycles, объясняет способ, которым работают материалы Cycles, их основные характеристики, и то, как строить базовый Cycles-материал, добавлять текстуры, как использовать лампы или светящиеся объекты, и как настраивать Мир.

Глава 2, Управление Материалами Cycles, объясняет, как лучше организовывать материалы и управлять ими для построения библиотек, чтобы связывать или добавлять материалы оттуда.

Глава 3, Создание природных материалов в Cycles, объясняет процесс создания нескольких типов основных естественных материалов, с использованием как текстур-изображений, так и процедурных, но главным образом останавливается на процедурных.

Глава 4, Создание искусственных материалов в Cycles, объясняет процесс создания нескольких типов искусственных материалов с использованием процедурных текстур.

Глава 5, Создание сложных природных материалов в Cycles, объясняет процесс создания более сложных естественных материалов, используя как текстуры-изображения, так и процедурные, но главным образом останавливается на процедурных.

Глава 6, Создание более сложных искусственных материалов, объясняет процесс создания нескольких более сложных искусственных материалов, главным образом используя процедурные текстуры.

Глава 7, Подповерхностное рассеивание в Cycles, объясняет использование нода Подповерхностного рассеивания, некоторые способы имитации эффекта Подповерхностного рассеивания в Cycles, и то, как построить нодовую группу имитации Подповерхностного рассеивания.

Глава 8, Создание органических материалов, демонстрирует создание нескольких типов органических шейдеров, в которых я старался по-возможности использовать только процедурные текстуры. Вы узнаете как создавать шейдеры волос, меха и многослойной человеческой кожи в Cycles.

Глава 9, Особые материалы, объясняет использование материалов объёма. Вы сможете создать облака, дым, огонь, и множество других специфических эффектов.

Что нужно для этой книги

Единственная программа, строго необходимая для следования рецептам этой книги — официальный Блендер версии 2.66a, хотя только что выпущенные 2.67 и 2.67a работают вполне хорошо (но если Вы используете последние, то должны понимать, что что-то в отображении нодов изменилось, особенно для нодовых групп. В любом случае, рабочие принципы - те же самые). Вам только нужно загрузить её с www.blender.org/download/get-blender. Любая конкретная текстура, необходимая для упражнений в книге, предоставляется для свободной загрузки на сайте Packt Publishing.

Не существенно, но также может быть удобным редактор изображений, в случае, если Вы хотите использовать ваши собственные текстуры, чтобы заменить те, что я предоставил. Я предлагаю попробовать Gimp, открытый редактор изображений, который вы можете загрузить с адреса www.gimp.org. Любое другое программное обеспечение, которое вы предпочитаете, в любом случае идеально подойдёт.

Для кого эта книга

Эта книга стремится главным образом в среднему пользователю Блендера, который уже знает Блендер, но все еще не имел дело с новым движком рендера Cycles. Считается само собой разумеющимся, что вы уже знаете как перемещаться по интерфейсу Блендера и, что вы уже имеете по крайней мере базовое знание интерфейса создания стандартных материалов Блендера, хотя это не строго необходимо.

Соглашения

В этой книге Вы найдёте несколько стилей текста, которые различаются между собой разными типами информации. Вот некоторые примеры этих стилей, и объяснение их значения.

Кодовые слова в тексте, имена таблиц базы данных, имён каталогов, имён файлов, расширений файлов, имена путей, УРЛы, ввод пользователя, и ручки Twitter показаны следующим образом: «Запустить Блендер и открыть файл 1301OS_08_start.blend, где есть меш Сюзанны, наклонная плоскость и две плоскости — меш-светильника.»

Новые термины и важные слова показаны жирным шрифтом. Слова, которые вы видите на экране, в меню или блоках диалога, например, появятся в тексте таким образом: "В окне Материала подключите шейдер Diffuse BSDF к ноду шейдера Mix. В слоте первого шейдера выберите Diffuse BSDF, а во втором нод Glossy BSDF."

Предупреждения или важные примечания появляются в прямоугольнике, подобном этому. Советы и рекомендации отображаются так.

От переводчика: названия всех нодов, шейдеров, окон Блендера и прочего я буду стараться давать в соответствии с русифицированным интерфейсом Блендера. У несогласных с таким подходом есть 2 варианта: а) можно этот перевод не читать; б) можно сделать собственный перевод в соответствии со своими представлениями о том, что правильно и неправильно. Начиная с середины третьей главы все материалы тестировались в версии Блендера 2.73.

Глава 1. Обзор Материалов в Cycles

В этой главе мы изучим:

Ноды материалов в Cycles

Процедурные текстуры в Cycles

Как устанавливать материал Мира

Создание материала меш-светильника

Использование смещения (displacement или bump)

Введение

Материалы Cycles работают способом, полностью отличающимся от Встроенного рендера (BI).

Во встроенном рендере вы можете построить материал, выбирая рассеянный (diffuse) и бликовый (specular) шейдер из окна Материала, настроив несколько опций поверхности, и затем назначая текстуры (также процедурные или карты изображений) в предусмотренных слотах — все эти шаги делают один полный материал. После этого, возможно, надо объединить два или более этих материалов в сеть нодов, этим самым получая больше гибкости при создании шейдера. Но, сами материалы точно такие же, что вы обычно настраивали через окно Материала, то есть, шейдеры сделаны для рендера scan-line движком, каким является BI, и их результат является приближением имитируемого поглощения-отражения света поверхностью.

В Cycles метод совсем другой: все имена closures, описывающих свойства поверхности имеют Функцию Распределения Двунаправленного Рассеяния (Bidirectional Scattering Distribution Function, BSDF), которая является основной математической функцией, описывающей путь, по которому свет рассеивается на поверхности в реальном мире. Это также формула, которую трассировщик путей, такой как Cycles, использует для вычисления рендера объекта в виртуальной среде. В основном, лучи света выстреливают из камеры, они прыгают по объектам на сцене, и продолжают прыгать, пока не достигнут источника света или «пустого» фона. По этой причине, чистый трассировщик путей, как например Cycles, может рендерить в течение разумного времени объект, установленный в открытой среде, но взамен сильно увеличивается время рендера для закрытого пространства. Например, мебель, установленная в комнате, и это — только потому, что лучи света могут прыгать на полу, потолоке, и стенах много раз, перед тем, как достигнут одного или более источников света.

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

В любом случае, только для пояснительных целей, в этой книге я всё ещё буду называть более или менее размытые точки света, созданные в результате отражения источника света на зеркальной глянцевой поверхности, как Блики (Specularity).

Помните, что скорость рендеринга в Cycles зависит от устройства — CPU или GPU вы используете для рендера ваших изображений. То есть, в принципе вы можете решить использовать мощность центрального процессора (опция по-умолчанию) или мощность процессора графической платы, GPU.

Чтобы это настроить:

Вызовите панель Параметров Блендера (Ctrl + Alt + U) и перейдите на вкладку самую правую, Система (System).

Под заголовком Устройство расчета (Compute Device) в низу-слева на панели, выберите устройство, используемое для вычислений; для того, чтобы сделать эту настройку постоянной, щелкните на кнопке Сохранить настройки (Save User Settings) или нажмите Crtl + U. Теперь закройте панель Параметров Блендера.

На панели Свойств справа, перейдите в окно Render (Визуализация) и, теперь на панели Render можно сконфигурировать GPU графической платы вместо встроенного CPU (выбор присутствует, только если ваша графическая плата поддерживает CUDA, то есть всё это работает для графических карт NVIDIA; OpenCL, который собирается поддерживать рендер на графических платах AMD/ATI — по-прежнему в очень неполной и экспериментальной стадии и, следовательно, пока бесполезен). (Да кинули конкретно мат мат мат — обида переводчика).

GPU-рендеринг имеет преимущество, буквально увеличивая скорость рендера Cycles в несколько раз, хотя и с недостатком небольшого предела памяти, так что не всегда возможно рендерить большие сложные сцены с большим количеством геометрии; в таких случаях лучше использовать CPU.

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

Движок Cycles Render: http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/ Cycles

Уменьшение шума – Cycles Wiki page: http://wiki.blender.org/index.php/Doc:2.6/ Manual/Render/Cycles/Reducing_Noise.

Список поддерживаемых графических плат для Cycles можно найти здесь: https://developer.nvidia.com/cuda-gpus.

Ноды материалов в Cycles

Материал в Cycles в основном состоит из различных компонентов, первоначально названных закрытия (closures), и позже более традиционно переименованных в шейдеры (это сделал сам Brecht Van Lommel), которые могут объединяться вместе, чтобы строить ещё более сложные поверхности шейдеров.

В этом рецепте мы бегло познакомимся с основными необходимыми шагами, требующимися, чтобы построить базовый материал в Cycles, чтобы активизировать предварительный просмотр рендера в окне 3D-вида, и, чтобы наконец отрендерить простую сцену.

Подготовка

В описании следующих шагов, я предполагаю, что вы начинаете с нового Блендера с заводскими настройками по-умолчанию; если нет, запустите Блендер и просто щелкните в пункт меню Файл в верхней панели заголовка, чтобы выбрать команду Сбросить настройки (Load Factory Settings) из управляющего меню.

В верхней зоне меню, переключите тип рендера с Blender Render на Cycles Render (удерживание мыши над кнопкой отобразит подсказку Движок, используемый для визуализации).

Теперь разделите окно 3D-вида на две горизонтальные строки и измените тип верхнего в Редактор Узлов (Node Editor), выбрав пункт меню с помощью кнопки Тип Редактора в левом углу нижнего заголовка окна. Окно Редактора Узлов — это фактически то окно, которое мы используем для формирования нашего шейдера, смешивая ноды (на самом деле это не единственный путь, но мы увидим это позже).

Поместите курсор мыши в окно 3D-вида и добавьте плоскость под куб (нажмите Shift + A и перейдите к Мешу | Плоскости). Войдите в режим редактирования (нажмите Tab), увеличьте её в 3.5 раза (нажмите S, число 3.5, и Enter) и выходите из режима редактирования (нажмите Tab). Теперь переместите плоскость на одну единицу вниз (нажмите G, затем Z, число -1, и затем Enter).

Перейдите к небольшой кнопке (Отображение/Затенение 3D-вида), показывающей сферу в нижней панели заголовка 3D-вида, и щелкните на ней. На появившемся меню появятся различные опции (Ограничительная рамка, Каркас, Сплошной, Текстура, Материал, и С визуализацией). Выберите С визуализацией (Rendered) вверху списка и наблюдайте рендер вашего куба в реальном времени в окне 3D-вида.

Теперь вы можете вращать или/и двигать вид или сам куб и вид будет корректироваться в реальном времени (скорость коррекции ограничена только сложностью сцены и ресурсами вашего процессора или вашей графической платы).

Давайте узнаем больше об этом:

Выберите Лампу в Outliner (по умолчанию, лампа Point).

Перейдите в окно Данных Объекта под панелью Свойств с правой стороны интерфейса.

На панели Узлы (Nodes), щелкните Использовать Узлы, чтобы активизировать нодовую систему для выбранного источника света на сцене; эта нодовая система создаст шейдер Излучение (Emission), подключенный к ноду Выход источника света (Lamp Output).

Переходите в пункт Сила, который установлен в 100.000 по умолчанию, и начните увеличивать его значение — будет увеличиваться интенсивность Лампы, вы сможете видеть, что куб и плоскость, отрендеренные в окне 3D-вида, получают всё больше и больше яркости, как показано на следующем скриншоте:

Как это сделать...

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

Выберите куб, чтобы назначить ему шейдер, щелчком левой кнопкой в нужном пункте в окне Структура проекта (Outliner), или также щелчком правой кнопкой непосредственно на объекте в визуализированном окне 3В-вида (но имейте в виду, что в этом режиме Рендера, граница объекта вокруг меша обычно не видна, поскольку, очевидно, она не рендерится).

Переходите в окно Материала под панелью Свойств: даже если были выбраны Заводские настройки по-умолчанию, куб уже имеет назначенный встроенный материал (как вы можете увидеть, перейдя в Свойства | Материал | Поверхность). В любом случае, вам нужно щелкнуть на кнопку Использовать Узлы на панели Поверхность, чтобы активизировать нодовую систему; или иначе, отметив галочку Использовать Узлы в заголовке окна Редактора узлов.

Когда вы отметите Использовать Узлы, содержимое панели Поверхность изменится, показывая, что кубу назначен шейдер Диффузный BSDF и, соответственно, в окне Редактора узлов появятся два связанных нода: шейдер Диффузный BSDF уже подключен к входному сокету Поверхность нода Вывод материала (входной сокет Объем в данное время ничего не делает, он - там в ожидании volumetric feature из to-do списка, а слот Смещения (Displacement) мы увидим позже). У меня в версии 2.73 рендер волюметрики (объёма) уже работает — прим. пер.

Поместите курсор мыши в окно Редактора Узлов и, двигая колесо мыши, увеличьте нод Диффузный BSDF. Щелкните левой кнопкой в прямоугольнике Цвет: появится цветовое колесо, где вы сможете выбрать новый цвет шейдера, щелкая на колесо или выбирая величины RGB (и обратите внимание, что присутствуют также цветовая пипетка и величина Альфа-канала, хотя последняя, в данном случае, не возымеет какого-либо видимого эффекта на цвете материала объекта):

Рендер куба в окне предварительного просмотра изменит цвет материала в реальном времени. Вы можете даже переместить курсор на цветовое колесо и наблюдать рендер объекта, переключая цвета соответственно. Установите цвет объекта в зеленоватый, задав величины RGB на 0.430, 0.800, и 0.499 соответственно.

Переходите в окно Материала и, на панели Поверхность, щелкните на кнопке Поверхность, которая в данное время показывает пункт Диффузный BSDF. Из управляющего меню выберите шейдер Глянцевый BSDF (Glossy BSDF). Нод теперь также изменится в окне Редактора Узлов и, соответственно, то же произойдёт с материалом куба в предварительном просмотре рендера, как показано здесь:

Заметьте, что хотя мы только что переключили нод шейдера на другой, его цвет, который мы установили в предыдущем щейдере, сохранился также в новом; на самом деле, это случается для всех величин, которые можно сохранить от одного нода к другому.

Теперь, поскольку в реальном мире материал, поверхность которого на 100 процентов матовая или отражающая, едва ли мог бы существовать, более правильный базовый материал в Cycles нужно создавать смешиванием Диффузного BSDF и Глянцевого BSDF через нод Смешать шейдеры (Mix Shader), в свою очередь подключенный к ноду Вывод материала.

В окне Материала, на панели Поверхность, щелкните снова на кнопке Поверхность, которая сейчас показывает пункт Глянцевый BSDF и замените его шейдером Диффузный BSDF.

Поместите указатель мыши в окно Редактора Узлов, и, нажмите Shift + A на клавиатуре, появится выпадающее меню с несколькими пунктами. Переместите указатель мыши в пункт Шейдер (Shader), появится еще один список, где собраны все щейдеры.

Выберите один шейдер из этих пунктов меню, например, пункт Глянцевый BSDF. Нод шейдера теперь добавился в окно Редактора Узлов, хотя он и не подключен пока к чему-нибудь (фактически, его не видно в окне Материала, а видно только в окне Редактора Узлов); новые ноды появляются уже выбранными.

Снова нажмите Shift + A в окне Редактора Узлов и на этот раз добавьте нод Смешать шейдеры (Mix Shader).

Нажмите G, чтобы переместить его на связь, соединяющую нод Диффузный BSDF с нодом Вывода Материала (вам, вероятно, понадобится сначала отрегулировать положение двух этих нодов, чтобы освободить достаточно места между ними). Нод Смешать шейдеры автоматически вставится между ними, выход Диффузного нода подключен к первому входному сокету Шейдер, как показано на следующем скриншоте:

Щелкните левой кнопкой на зеленом точечке выхода нода шейдера Глянцевый BSDF и протяните связь до второго входного сокета Шейдер нода Смешать шейдеры. Отпустите теперь кнопку мыши и увидите связанные ноды.

Поскольку величина смешивающего Коэффициента (Fac, показатель) нода Смешать шейдеры установлена по умолчанию на 0.500, два шейдерных компонента, Диффузный и Глянцевый, теперь отображаются на поверхности куба в равных частях, то есть, каждый по 50 процентов. Щелкните левой кнопкой мыши по движку Коэфф. и сдвиньте его до 0.000. Поверхность куба теперь показывает только Диффузный компонент, поскольку шейдер Диффузный BSDF подключен к первому входному сокету Шейдер, который соответствует величине, установленной на 0.000.

Загрузка кода примера Вы можете загрузить файлы с кодами примеров для всех книг Packt, которые вы приобрели с вашего счета на сайте http://www.packtpub.com. Если Вы приобрели бы эту книгу где-нибудь еще, вы можете посетить http://www.packtpub.com/support и зарегистрироваться, чтобы получить файлы на свой e-mail непосредственно. Также среди набора кода можно найти иллюстрации к книге в высоком разрешении.

Подвиньте движок величины Коэфф. на 1.000, и теперь поверхность показывает только компонент шейдера Глянцевый BSDF, который, фактически, подключен ко второму входному сокету Шейдер, соответствующему величине, установленной на 1.000.

Установите величину Коэфф. на 0.800. Куб теперь отражает своими сторонами, даже если размыто, белую плоскость, поскольку у нас есть материал, который отражает на 80 процентов, матовый на 20 процентов, и так далее:

Наконец, выберите плоскость, перейдите в окно Материала и щелкните по кнопке Создать (New), чтобы назначить белесый материал по-умолчанию.

Как это работает...

Так, в своей минимальной форме, материал Cycles сделан закрытием (нодовым шейдером), подключенным к ноду Вывода материала; по умолчанию, для нового материала нод шейдера — Диффузный BSDF с цветом RGB установленным на 0.800, и результатом является белесый матовый материал (с величиной Шероховатости (Roughness) в 0.000, что в действительности соответствует шейдеру Lambert). Нод Диффузный BSDF может быть заменен любым другим из доступного списка шейдеров. Например, шейдер Глянцевый BSDF, как на последней сцене с кубом, который производит материал полностью отражающей поверхности.

Как мы видели, окно Редактора Узлов не является единственным способом строить материалы; на панели Свойств справа у нас есть доступ к окну Материала, которое обычно делится следующим образом:

Имя материала, пользователь, и панель блока данных (datablock)

Панель Поверхность (Surface), включающая в вертикальную упорядоченную колонку только ноды шейдеров, добавленные в окно Редактора Узлов и уже подключенные друг к другу

Панель Смещения (Displacement), которую мы увидим позже

Панель Настройки (Settings), где мы можем задать цвет объекта, который видно в окне 3D-вида в режиме не-рендера (Цвет в области просмотра, Viewport Color), Индекс Прохода материала (Pass Index), и опцию Множественная значимость (Multiple Importance)

Ну, сейчас там ещё есть панель Объём — доб. пер.

Окно Материала не только отражает то, что мы делаем в окне Редактора Узлов и изменяется соответственно этому (и наоборот), но также его можно использовать для изменения величин, чтобы было легче переключать сами закрытия и, в известной мере, чтобы подключать их к другим нодам.

Материал и окно Редактора Узлов настолько взаимосвязаны, что нет преобладания чего-то одного при использовании для построения материала; оба могут использоваться индивидуально или вместе, в зависимости от предпочтений или практической полезности. В некоторых случаях, может быть очень удобным переключать шейдеры из панели Поверхность под Материалом справа (или также текстуру из окна Текстуры, но мы увидим текстуры позже), оставляя нетронутой все настройки и связи нодовой сети.

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

И больше...

Глядя на окно 3D-вида с рендером, вы обратите внимание что изображение стало гораздо шумнее, и что появились белые точки в определенных местах; это пакостные светлячки, вызванные главным образом прозрачными, люминесцентными, или глянцевыми поверхностями. Действительно, они попали на наш рендер из-за глянцевого компонента.

Чтобы избавиться от них, выполните эти шаги:

Перейдите в окно Визуализация (Render) на панели Свойств. В панели Сэмплирование (Sampling), установите Сэмплы на 100 как для Предпросмотра (Preview) так и для Визуализации (render) (они установлены на 10 по умолчанию).

Установите величину Обрезать (Clamp) на 1.00 (она установлена по умолчанию на 0.00) (В версии 2.70 их стало две — для прямых и для непрямых лучей, и называются они теперь Ограничить — прим. пер.). Перейдите в панель Пути света (Light Paths) и установите величину Фильтр Глянца (Filter Glossy) также на 1.00. Результирующее визуализированное изображение, как показано здесь, — теперь намного более плавное и свободное от шума:

Сохраните blend-файл в подходящем месте на вашем жестком диске с таким именем, как например, start_01.blend.

Сэмплов, установленных на 10 по умолчанию — очевидно не достаточно, чтобы получить бесшумное изображение, но — хорошо для быстрого предварительного просмотра. Мы могли бы также оставить сэмплы Предварительного просмотра по-умолчанию, и увеличить только величину Рендера, чтобы получить финальный рендер за более длительное время, но с чистым изображением (который можно начать, как в BI, нажимая клавишу F12).

Используя величину Обрезать, мы можем вырезать энергию света. Внутренне, Блендер преобразует цветовое пространство изображения в линейное. Затем он преобразует его в RGB, то есть в диапазон от 0 до 255 для вывода. Величина 1.00 в линейном пространстве означает, что все величины изображения теперь внутри диапазона от 0 и до, максимум 1, а значения больше 1 становятся невозможными, поэтому, как правило, получается избегнуть проблемы светлячков. Величины Обрезать выше чем 1.00 могут начать уменьшать общую световую интенсивность сцены.

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

Имейте в виду, что даже с одинаковыми сэмплами, предварительный просмотр рендера не всегда полностью соответствует финальному рендеру, как в том, что касается шума, так и для светлячков. Это — главным образом из-за того, что рендер в 3D-окне предварительного просмотра и финальный рендер изображения обычно имеют весьма разные размеры, и артефакты, видимые в финальном рендере изображения могут не показываться в меньшем окне рендера предварительного просмотра.

Процедурные текстуры в Cycles

В этом рецепте мы увидим несколько типов текстур, доступных в Cycles и узнаем как использовать их с шейдерами.

Подобно Встроенному рендеру, в Cycles мы можем использовать как процедурные текстуры, так и текстуры из изображений. Тем не менее, процедурные текстуры Cycles не совсем такие же, как во Встроенном рендере; некоторые удалены из-за замены на улучшенную версию (например, текстура Облака (Clouds) заменена одной из настроек текстуры Шум (Noise)), а некоторые новые, эксклюзивные для Cycles добавлены.

Подготовка

Мы уже видели простую конструкцию базового материала в Cycles из смешения диффузной и глянцевой (specular) компонент поверхности. Теперь позвольте бегло познакомить вас с текстурами, которые мы можем использовать в Cycles, чтобы повысить качество материала.

Поскольку материалы Cycles базируются на нодовой системе, текстуры не добавляются в свой слот на панели, как это делается во Встроенном редакторе, но они просто добавляются в окно Редактора Узлов и непосредственно подключаются к входному слоту шейдера или другого типа нодов. Таким образом добавляется больше гибкости в процесс создания материала, поскольку этим способом текстуру можно использовать для нескольких вариантов внутри сети материала.

Начните с ранее сохраненного blend-файла start_01.blend, где мы уже настроили простую сцену с кубом на плоскости и базовым материалом, выберите куб и перейдите в окно Модификаторов Объекта справа на панели Свойств.

Назначьте кубу модификатор Подразделения Поверхности (Subdivision Surface), установите уровень Подразделения на 4 как для Вида, так и для Визуализации.

На панели Инструментов слева окна 3D-вида, под Затенением установите подразделенному кубу (давайте теперь называть его сфероидом) режим Гладко (Smooth).

Просто, чтобы всё отображалось яснее, щёлкните в поле Цвет шейдера Глянцевый BSDF, чтобы изменить его в пурпурный цвет (RGB установленный на 0.800, 0.233, и 0.388 соответственно). Заметьте, что только глянцевая часть отражения у сфероида стала пурпурной, поскольку остальная часть поверхности, с рассеянным компонентом, всё ещё зеленоватая.

Сохраните blend-файл и назовите его start_02.blend.

Как это сделать...

Поместите указатель мыши в окно Редактора Узлов и нажмите Shift + A.

В контекстном выпадающем меню перейдите в пункт Текстуры, под Шейдерами, и щелкните левой кнопкой по Текстуре Волны, чтобы добавить нод текстуры в окно Редактора Узлов.

Возьмите и подключите желтый выходной сокет Цвет текстуры к желтому входному сокету Диффузного шейдера, ближайшему к прямоугольнику Цвет, который мы прежде установили в зеленоватый цвет:

В ноде Текстуры волны измените величину Масштаб (Scale) в 8.500, Искажение (Distortion) в 12.000, Детальность (Detail) в максимальную величину 16.000, и Масштаб деталей (Detail Scale) на 6.000.

Теперь отключите цветовой выход текстуры от Диффузного нода и подключите его к входному цветовому сокету Глянцевого щейдера:

Снова отключите цветовой выход текстуры от Глянцевого шейдера. Возьмите и подключите выход текстурного нода Коэфф. (Fac) к входному сокету Шероховатость (Roughness) шейдера Глянцевый BSDF, как показано на следующем скриншоте:

Сохраните файл.

Удалите нод Текстуры волны (кнопкой X), нажмите Shift + A с указателем мыши в окне Редактора Узлов и добавьте нод Текстуры шахматной доски (Checker).

Подключите выход Коэфф. (Fac) нода Текстуры Шахматной доски к входному слоту Коэфф. нода Смешать шейдеры, как показано здесь:

Сохраните файл с именем start_03.blend.

Как это работает...

Как сразу видно в 3D-окне с рендером, в момент подключения цветового выхода Текстуры волны к цветовому входу нода щейдера Диффузный BSDF, сфероид выглядит так, как если он окрашен в серию черных и белых полос; действительно, черные и белые полосы выхода нода текстуры заменяет зеленый цвет диффузного компонента шейдера, при сохранении материала розовой глянцевой компоненты неизменным (шаги от 1 до 3).

В точности наоборот произошло, когда вы отключили выход текстуры от Диффузного шейдера, чтобы подключить его к цветовому входу Глянцевого щейдера. Теперь у нас есть диффузный зеленоватый цвет, а розовый был перекрыт, тогда как компонент отражения видим только на белых полосах текстуры волны (шаги 4 и 5).

Дополнительно к цветовому выходу, каждый текстурный нод имеет также выходной сокет Коэфф. (Fac, коэффициент), с выходной линейной величиной в градациях серого: подключенный к входному сокету Шероховатость Глянцевого щейдера, текстура работает как показатель для его отражательности. В качестве этого показателя текстура работает так: сфероид сохраняет свои цвета и получает бликовую-отражающую компоненту только в областях с белым цветом на поверхности (то есть, белые полосы эквивалентны полному отражению, а черные полосы соответствуют отсутствию отражения; шаг 6).

Выход Коэфф. (Fac) Текстуры шахм. доски подключенный к входному сокету Коэфф. нода Смешать шейдеры работает аналогичным образом: числовой движок для показателя смешивания в ноде Смешать шейдеры исчез, поскольку теперь мы используем черно-белые линейные величины выхода Текстуры шахматной доски как показатель для смешивания двух компонентов — Диффузного и Глянцевого — которые, следовательно, появляются на сфероидальной поверхности в виде черных и белых четырёхугольников (шаги 8 и 9).

Каждый текстурный нод имеет несколько опций настройки; все они имеют величину Масштаб (Scale), которая устанавливает размер, другие различаются в соответствии с типом текстуры.

И больше...

В этой точке вы могли бы удивиться: «Хорошо, мы только что отобразили текстуру на сфероиде, но какой получился режим отображения (projection mode) при их наложении?»

Хороший вопрос. По умолчанию, если не это не определялось, и если объект не имеет пока никаких UV-координат, тип отображения будет Сгенерировать (Generated), который эквивалентен режиму Original Coordinates (также теперь переименованному в Сгенерировать) во Встроенном рендере. (Попытался выяснить, в какой версии наложение текстур называлось Original Coordinates, обнаружил, что в версиях 2.4x подпись на кнопке была Orco, в более поздних версиях я видел только Generated — прим. пер.)

Но что, если я хочу определить метод отображения? Для этого просто следуйте шагам:

Снова нажмите Shift + A на клавиатуре с указателем мыши в окне Редактора Узлов, переходите в пункт Ввод и выберите пункт Текстурные Координаты, который является нодом с несколькими режимами отображения и соответствующими им выходными сокетами.

Пробуйте посоединять несколько выходов к Текстуре Шахматной доски | вход Вектора (синий сокет с левой стороны нода), чтобы видеть, как изменяется отображение текстуры на сфероид в реальном времени, как показано на следующем скриншоте:

Между прочим, я хотел бы обратить ваше внимание к выходу UV-координат. Подключите связь к сокету Вектор текстуры, и заметите, что отображение на сфероиде исчезнет. Почему так? Да просто потому, что мы пока не назначили никаких UV-координат к нашему сфероиду. Следуйте за этими шагами:

Войдите в панель UV-Карты (UV Maps) в окне Данных Объекта в правой панели Свойств и щелкните на кнопке +. Это просто добавит взаимно-однозначное проецирование Reset UV на UV-слой объекта, то есть, каждая грань меша закрывает всю область UV-окна (помните, что это куб, хотя выглядит сейчас похожим на сфероид из-за назначенного эффекта модификатора Подразделения Поверхности; UV-координаты работают на самом низком уровне подразбиения, который всё еще является шестигранным кубом).

Вторая опция — просто установить соответствующие швы на краях куба и непосредственно развернуть объект в окне Редактора UV/Изображений. Нажмите Tab, чтобы перейти врежим редактирования, нажмите A, чтобы выбрать все вершины (если сейчас ничего не выбрано). Теперь, нажмите U и выберите метод развёртки из выпадающего меню (для режимов Умное UV-проецирование (Smart UV Project) и Проекция куба (Cube Projection) даже не понадобятся швы), затем выходите из режима редактирования, чтобы обновить Предварительный просмотр рендера.

Нод Текстурные координаты не нужен в случае, если вы развернёте объект, а затем используете нод Изображение-текстура (Image Texture), поскольку в этом случае Cycles автоматически использует доступные UV-координаты для отображения.

Очевидно, одного нода Текстурные Координаты не достаточно. Что нам теперь нужно — это способ сдвигать, поворачивать, и масштабировать эту текстуру на поверхности:

Выберите нод Текстурные Координаты и перетащите его влево окна, достаточно, чтобы освободить место для нового нода. В меню Добавить (Add) перейдите в Вектор и выберите Отображение (Mapping).

Перетащите нод Отображение в середину связи, которая соединяет нод Текстурные Координаты с нодом Текстура шахматной доски; он автоматически вставится между ними, как показано на следующем скриншоте:

Теперь, начните играться с величинами в ноде Отображения. Например, установите величину Вращения Z на 45°, величину Масштаба X на 2.000, затем двигайте величину Расположения X, глядя на текстуру, изменяющую ориентацию, масштаб и действительно сдвигающую ось X в предпросмотре рендера. (В версии 2.73 у этого нода есть ещё 4 кнопки, озаглавленные как «Тип вектора для преобразований разметки». Не понял, что это — прим.пер.)

Сохраните blend-файл как start_04.blend.

Кнопки Min и Max внизу нода Отображение используются, чтобы отрезать расширение отображения текстуры. То есть, отметьте обе галочки Min и Max, чтобы избегать повторения текстуры n раз на поверхности и показать только 1 раз. Величины Минимум 0.000 и Максимум 1.000 дают соответствие один к одному с подключенного изображения. Вы можете попробовать настроить эти величины, чтобы ограничивать или расширять отсечение. Это полезно для отображения, например, логотипов или надписей на объекте, чтобы избегать повторения.

Установка материала Мира

В этом рецепте мы рассмотрим свойства и настройки окна Мира (World) в Cycles.

Основная особенность Мира в Cycles — то, что он может испускать свет, так что он ведет себя практически как источник света. Действительно, этот эффект является знаменитым эффектом «Глобального Освещения».

Как и во Встроенном рендере, он рассчитывается как виртуальный купол на большом расстоянии от камеры и никогда не касается объектов сцены. Ничто на 3D-сцене не может повлиять на Мир. Фактически, только Мир может ислучать свет на сцену и на объекты.

Подготовка

Откройте файл start_04.blend и перейдите в окно Окружающая среда (мир) (World) на панели Свойств справа. Здесь мы видим ту же самую кнопку Использовать узлы на панели Поверхность.

Хотя нодовая система для окна Мира по умолчанию не настроена, окно Мира имеет темный средний серый цвет, уже немного освещающий сцену. Удалите встроенную лампу или поместите её в другом отключенном слое, чтобы увидеть, что сфероид на сцене стал темным, но все еще видимым в предпросмотре рендера.

Уже сейчас можно изменить этот серый цвет на какой-нибудь другой, щелкнув по кнопке Цвет (Color) справа под кнопкой Использовать узлы (цвет горизонта). При этом возникнет то же цветовое колесо, которое мы видели для шейдерного цвета. Установите цвет на R 0.179, G 0.152, и B 0.047 и сохраните файл с именем start_05.blend.

Отметьте, что как интенсивность, так и общая цветовая градация Мира управляются этим цветом. Для того, чтобы получить больше света, просто переместите движок Значение (вертикальный) в сторону белого цвета. Для того, чтобы придать общее цветовое настроение сцене, выберите цвет на колесе. Это повлияет на всё освещение сцены, но проявится главным образом в тенях, как показано в следующем скриншоте:

(Как я понял, глядя на этот скриншот, лампу надо вернуть назад — прим.пер.)

Как это сделать...

Тем не менее, чтобы иметь доступ ко всем настройкам для Мира, мы должны инициализировать его нодовую систему:

Посмотрите на нижний заголовок окна Редактора Узлов, там есть две небольших кнопки: небольшой куб и небольшой глобус (мир) и, да, иконка куба используется для создания материалов, в то время как иконка с глобусом - для окна Мира. Сейчас, поскольку мы работали с материалом сфероида, выбрана иконка с кубом.

Щелкните небольшую кнопку с глобусом. Ноды материала исчезнут и окно Редактора Узлов опустеет, поскольку мы вошли в режим Мира. Отметьте галочку Использовать Узлы (Use Nodes) справа от блока данных, чтобы появился материал Мира по-умолчанию. Или иначе, перейдите в окно Мира на панели Свойств и щелкните по кнопке Использовать Узлы (Use Nodes) на панели Поверхность, как показано здесь:

Также для Мира, материал по-умолчанию создан просто из двух нодов: нод Фон (Background) подключен к ноду Вывод окружающей среды (World Output). В ноде Фон есть две опции настройки: поле Цвет и движок Сила, которые не требуют разъяснений.

Перейдите в окно Мира на панели Свойств и щелкните по небольшому квадрату с точкой справа от поля Цвет. Из появившегося меню выберите пункт Текстура неба. Это скопирует физическую модель неба, с движком величины Туманности (Turbidity) и движком Сила (Strength), как показано здесь:

Заметьте, что вы можете также управлять направлением поступающего света, то есть позицией солнца, вращая сферу на интерфейсе нода.

Сохраните файл с именем start_06.blend.

Щелкните кнопку Цвет, которая озаглавлена теперь как Текстура неба на панели Поверхность в окне Свойств и выберите нод Текстуры окр. среды, чтобы заменять его:

Глядя в предпросмотр рендера, вы увидите, что общее освещение стало розовым. Это должно показать, что материал Мира теперь использует текстуру для освещения сцены, но в данное время текстуры пока нет.

Щелкните кнопку Открыть (Open) в окне Мира под панелью Свойств, или в только что добавленном ноде в окне Редактора Узлов. Просмотрите каталог текстур и загрузите изображение Barce_Rooftop_C_3k.hdr (свободное HDR-изображение, лицензированное под Creative Commons Attribution-Noncommercial-Share Alike 3.0 License из архива sIBL http://www.hdrlabs.com/sibl/archive.html).

Для того, чтобы лучше оценить эффект, щелкните на небольшой иконке глаза у пункта Lamp в Структуре проекта (Outliner), чтобы отключить её освещение. Сфероид теперь освещён исключительно .hdr-изображением, назначенным в материал Мира. Действительно, вы можете также видеть изображение как фон в предварительном просмотре рендера. Вы можете также вращать вид и наблюдать фоновую текстуру, «приколотую» к координатам Мира, двигающуюся соответственно в реальном времени. (У меня, к сожалению, это не работает. Видимо, только через CUDA. А вот в виде из камеры фон присутствует – прим. пер.)

Как и для материалов объекта, отображение любой текстуры, которую вы собираетесь использовать для Мира, можно сделать обычными нодами Отображение и Текстурные Координаты, которые мы уже видели. Обычно, для материалов Мира, должен быть использован только выход координат Сгенерировать, и действительно, он используется по-умолчанию, если никакого метода отображения не определено. Добавьте ноды Отображение и Текстурные Координаты, и подключите их к входному сокету Вектор нода Текстуры окр. среды, как показано на следующем скриншоте:

Сохраните файл с именем start_07.blend.

Но теперь, давайте представим себе случай, в котором мы хотим назначить текстуру в материал Мира и использовать его для общего освещения сцены, но при этом не хотим, чтобы он показывался на фоне рендера. То есть, например, мы используем HDR-изображение, чтобы осветить сфероид и плоскость, но мы хотим, чтобы эти два объекта были визуализированы на однородном синем фоне, как нам добиться этого? Вот как мы сделаем это:

Один из способов состоит в том, чтобы перейти в окно Рендера (Render) и, на панели Плёнка (Film), отметить опцию С прозрачностью (Transparent). Это покажет наш сфероид и плоскость отрендеренными в окне 3D-вида, а также в финальном рендере изображения на прозрачном фоне, то есть, с альфа-каналом:

Этого достаточно, чтобы скомпоновать визуализированные объекты с синим фоном во внешнем редакторе изображений (например, в Gimp) или непосредственно в редакторе композиции Блендера.

Но самый простой путь отрендерить два объекта на однородном синем фоне — это использовать нод Путь света (Light Path):

В этом случае, уберите галочку в поле С прозрачностью (Transparent) в окне Рендер, чтобы восстановить небо в предварительном просмотре и в рендере.

Щелкните левой кнопкой по ноду Вывод окружающей среды в окне Редактора Узлов, и нажмите G, чтобы переместить его вправо.

Добавьте нод Смешать шейдеры (нажмите Shift + A и выберите Шейдер |Смешать шейдеры) и переместите его на связь, соединяющую нод Фон с нодом Вывод окружающей среды, чтобы вклеить его автоматически между двумя нодами. Подключите его к входному сокету Поверхность нода Вывод окружающей среды.

Выберите нод Фон в окне Редактора Узлов. Нажмите Shift + D, чтобы продублировать его и сместить вниз.

Подключите его выход ко второму входному сокету нода Смешать шейдеры. Щелкните в его поле Цвет, чтобы изменить цвет на R 0.023, G 0.083, и B 0.179.

Теперь, добавьте нод Путь света (Light Path) (нажмите Shift + A и выберите Ввод | Путь света).

Подключите выход Луч из камеры (Is Camera Ray) нода Путь Света к входному ноду Коэфф. (Fac) нода Смешать шейдеры, и оп-ля, объекты на сцене освещены hdr-изображением, подключенным к первому ноду Фон, но они появились в «небе», которое окрашено так, как настроено в поле Цвет второго нода Фон:

Сохраните файл с именем start_08.blend.

Как это работает...

Чтобы лучше объяснить этот «трюк», давайте скажем, что мы только что создали два разных материала Мира: первый с текстурой и второй с простым светло-синим цветом (это не в буквальном смысле, на самом деле материал тут один, содержащий ноды обоих «В идеале» разных миров).

Мы смешали эти два материала, используя нод Смешать шейдеры. Верхний зеленый сокет считается равным величине 0.000, тогда как нижний зеленый сокет считается как величина 1.000. Как само имя предполагает, нод Путь Света может установить путь для луча света, который, если Вы помните, начинается из камеры. Луч из камеры означает, что только луч, непосредственно выпущенный из камеры имеет величину 1.000, то есть такой, который не был отражен или передан, а все остальное вместо этого имеет величину 0.000.

Так, поскольку текстурированный мир подключен к сокету с величиной 0.000, мы не видим его непосредственно в виде фона, но видим только его эффект на объектах, освещённых от отраженного света или из HDR-изображения. Мир с синим небом, который подключен к входному сокету с величиной 1.000 вместо этого отображается как фон, поскольку лучи света испущенные из камеры попадали непосредственно в небо.

И больше...

Просто после панели Поверхность, в окне Мира, есть панель Ambient Occlusion (AO). AO — это метод освещения, используемый, чтобы подчеркивать формы или детали поверхности, основанный на том, как сильно точка на этой поверхности заслонена (occluded) соседними поверхностями. Хотя это не тоже самое, AO в некоторых случаях может заменить эффект Глобального Освещения. Например, для рендера интерьера, имеющего быстрые и свободные от шума результаты, AO — дешевый способ получить эффект, который выглядит, как непрямое освещение.

Есть поле с галочкой, чтобы включить AO вместе со следующими двумя движками:

Множитель (Factor): Используется для силы AO. Величина 1.00 является эквивалентом белому Миру.

Расстояние (Distance): Расстояние от затеняемой точки до трассируемого луча. Короткое расстояние подчеркивает соседние признаки, более длинное расстояние заставляет его учитывать более дальние объекты.

Затенение через Ambient Occlusion воздействует только на компонент материала Диффузный BSDF. Компоненты Глянцевый или Transmission BSDF (не нашел такой в Блендере, но скорее всего имеется ввиду один из прозрачных — прим. пер.) не подвергаются его воздействию. Вместо этого принимается во внимание прозрачность поверхности. Например, наполовину прозрачная поверхность только наполовину заслонит другие поверхности.

Создание материала меша-светильника

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

Подготовка

До сих пор мы использовали лампу по-умолчанию (Точечная лампа, Point light), уже присутствующую на сцене для её освещения. Включая нодовую систему для лампы, мы видели, как лампа использует материал, созданный соединением нода Излучение (Emission) с нодом Выход источника света (Lamp Output).

Хорошие новости в том, что поскольку это нодовый материал, мы можем назначить шейдер Излучение также и мешу. Например, на плоскость, удобно расположенную, масштабированную, и повёрнутую для направления на сцену. Такой меш, испускающий свет, называется Меш-светильник (Mesh-light). Так как это меш, выход нода шейдера Излучение должен быть подключен к входному сокету Поверхность нода Вывод Материала вместо нода Вывод источника света.

Излучение света, исходящее от поверхности, а не из точки — намного более рассеянное, и мягче, чем лампа. Меш-светильник может быть любым мешем любой формы и, следовательно, может легко быть использован как объект, принимающий участие в сцене и, в то же самое время, реальным источником света для рендера, например, настольная лампа, или неоновая вывеска, или телевизионный экран. Как чистая светоиспускающая плоскость, он обычно используется как своего рода фотографический диффузор. Два или три стратегически установленные меш-светильника могут достоверно сымитировать ситуацию фото студии.

Начните с файла start_07.blend, щелкните на иконке глаза у Лампы в Структуре проекта (Outliner), чтобы снова её включить.

Щелкните правой кнопкой по лампе в окне 3D-вида и нажмите Shift + S, чтобы появилось меню Привязка (Snap). Левой кнопкой выберите пункт Курсор к выделению (Cursor to Selected).

Нажмите Shift + A с указателем мыши в окне 3D-вида, и добавьте плоскость к сцене в позиции курсора.

Выходите из режима редактирования (нажмите Tab). С Shift-ом выберите лампу; теперь у вас одновременно выбраны дополнительная плоскость и лампа, и последняя является активной.

Нажмите Ctrl + C, чтобы появилось меню Copy Attributes и выберите пункт Copy Rotation. (Долго искал это меню Copy Attributes. Выяснил, что для него должен быть включен соответствующий аддон Copy Attributes menu— прим. пер.)

Переименуйте эту плоскость в Emitter (Излучатель).

Правой кнопкой выделите лампу в окне 3D-вида и нажмите X для удаления.

Поместите указатель мыши в окно 3D-вида и нажмите 0 на нумпаде, чтобы перейти в вид из Камеры.

Из меню Метод отображения/затенения в заголовке окна выберите режим С визуализацией (Rendered):

Сохраните файл с именем start_09.blend.

Как это сделать...

Выберите плоскость Emitter и щелкните по небольшой кнопке с кубиком в заголовке окна Редактора Узлов.

Щелкните кнопку Создать (New) в заголовке и переименуйте материал в Emitter.

На панели Свойств, перейдите в окно Материала и на панели Поверхность щелкните по кнопке Поверхность, чтобы переключить шейдер Диффузный BSDF на шейдер Излучение (Emission). Оставьте Цвет по-умолчанию неизменным (RGB 0.800) и установите движок Сила на 35.000.

Сохраните файл.

В окне 3D-вида масштабированием увеличьте плоскость Emitter в пять раз (нажмите S, число 5, и Enter), затем установите движок Сила на 3.500.

Сохраните файл с именем start_10.blend.

Теперь давайте сильно уменьшим плоскость Emitter (нажмите S, число 0.05, и Enter), и установим движок Сила на 350.000.

Сохраните файл с именем start_11.blend.

Как это работает...

От шага 5 до шага 7 мы видели, что меш-светильник можно масштабировать, увеличивая или уменьшая, чтобы получать более мягкие (в первом случае) или более острые (во втором случае) тени. Величина Сила должна с учетом интенсивности света оставаться согласованной, или меш-светильник нужно будет переместить ближе или дальше от сцены.

Масштабирование меш-светильника действует в основном так же, как и установка величины размера для лампы. Для ламп мягкость теней можно задать величиной Размер (Size) слева от галочки Бросает тени (Cast Shadow) в окне Лампа на панели Свойств (по умолчанию, величина Размер установлена в 1.000). При величине 0.000 тень будет максимально резкая. Увеличивая величину Размер, мягкость теней тоже увеличивается.

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

И больше...

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

Начните с последнего сохраненного файла (start_11.blend) с 3D-окном слева также настроенном в режим Рендера, чтобы видеть сцену из вида Камеры (так, чтобы плоскость Emitter тоже визуализировалась).

Со всё ещё выбранной плоскостью Emitter переходите в окно Объект на панели Свойств.

Посмотрите на панель Видимость лучей (Ray Visibility) (обычно, внизу окна Свойств), где есть пять пунктов: Камера, Диффуз., Глянец, Передача, и Тень с соответствующими галочками.

Отключите пункт Камера и увидите, что плоскость Emitter исчезла в визуализированном окне 3D-вида, но она всё ещё освещает сцену, как показано на следующем скриншоте:

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

Теперь снова выберите сфероид (помните, что если вы до сих пор не переименовали его, имя в окне Структура проекта (Outliner) все еще отображается как Cube). Затем, из панели Видимость лучей в окне Объекта на панели Свойств, также отключите пункт Камера.

Теперь сфероид исчез, но он всё ещё отбрасывает свою тень на плоскость, как показано на следующем скриншоте:

Теперь включите поле Камера и отключите Тень. В этом случае сфероид снова становится видимым, но не отбрасывает тени, как показано здесь:

Сохраните файл с именем start_12.blend. Давайте попробуем донастроить его немного.

Включите поле Тень для сфероида и выберите нижнюю плоскость.

В окне Материала на панели Свойств, переключите шейдер Диффузный BSDF на Глянцевый BSDF. Нижняя плоскость теперь действует как отличное зеркало, отражающее сфероид и .hdr-изображение, которое мы ранее установили в материале Мира.

Возвращайтесь к окну Объект и снова выберите сфероид. В панели Видимость лучей, отключите пункт Глянец и увидите, что сфероид всё еще рендерится, но больше не отражается зеркальной плоскостью, как показано здесь:

Сохраните файл с именем start_13.blend.

Трюк с Видимостью лучей, который мы только что видели, конечно, не требуется для ламп, поскольку лампа в любом случае не может быть отрендерена. В настоящий момент, только лампы Точка (Point), Прожектор (Spot), Область (Area), и Солнце (Sun) поддерживаются в Cycles; Лампа Полусфера (Hemi) рендерится как лампа Солнце.

Как лампы, так и меш-светильники могут использовать текстуры, чтобы, например, проецировать цветные лучи на сцену, но только к меш-светильнику можно применить UV-развёртку для отображения карты-изображения.

Более того, есть ощущение, что меш-светильники работают лучше, чем лампы в Cycles, то есть, излучение и распространение света выглядят лучше и более реалистично с излучающей плоскостью. Пока не ясно, является ли это техническим ограничением лампы, или она будет совершенствоваться в будущем.

Одно из преимуществ ламп перед меш-светильниками в том, что их легко сделать однонаправленными, то есть, за исключением Точечной лампы, они проливают свет в только одном направлении, как показано на следующем скриншоте:

На предыдущем скриншоте вы можете видеть, что лампой Прожектор освещены только плоскость и сфера на переднем плане. С меш-светильником плоскостью, заменяющей лампу Прожектор, освещаются как сфера, так и цилиндрическая зеленая стена сзади, как показано здесь:

Ну и что делать, если мы хотим осветить объекты только в одном направлении (плоскость и сфера на переднем плане) с помощью меш-светильника? Есть способ заставить плоскость испускать свет только в одну сторону и не светиться с обратной? Да, конечно есть:

Откройте файл 1301OS_01_meshlight.blend, который имеет подготовленную сцену, подобную использованной на предыдущих скриншотах, и переключите нижнее окно 3D-вида в режим Рендера, щелкнув кнопку затенения в заголовке и выбрав верхний пункт:

Щелкните левой кнопкой на пункт Emitter в окне Структура проекта (Outliner) и поместите указатель мыши в окно Редактора Узлов. Добавьте нод Смешать шейдеры (нажмите Shift + A и перейдите на Шейдеры | Смешать шейдеры) и передвиньте его на связь, соединяющую нод Излучение с нодом Вывод Материала, чтобы вклеить его между ними.

Добавьте нод Геометрия (нажмите Shift + A и перейдите на Ввод | Геометрия) и подключите его выход Обратный разворот (Backfacing) к входному сокету Коэфф. (Fac) нода Смешать шейдеры.

Переключите выход нода Излучение от первого входного сокета Шейдер нода Смешать шейдеры на второй, как показано на следующем скриншоте:

Сохраните файл с именем 1301OS_01_meshlight_final.blend.

Плоскость теперь излучает свет только в одном направлении.

Как это работает...

Мы уже видели, что в ноде Смешать шейдеры первый (верхний) зеленый входной сокет Шейдер считается равным величине 0, тогда как второй равен 1. Так, выход Обратный разворот (Backfacing) нода Геометрия заставляет плоскость излучать свет только в направлении нормалей, и оставаться черным и не-излучать (просто подобно пустому шейдеру) с противоположной стороны «backfacing» плоскости.

Переключение нодовой связи Излучение на первый входной сокет нода Смешать шейдеры, очевидно, инвертирует направление излучения света.

Использование смещения (или bump)

Для того, чтобы получить эффект как рельефности (bumps), так и смещения (displacement) в Cycles, есть несколько возможностей.

Самый простой путь получить рельеф на материале нашей поверхности - соединить выход Цвет или Коэфф. нода текстуры с входным сокетом Смещение (Displacement) нода Вывод Материала. Несмотря на то, что сокет называется Смещение, эффект, о котором я пишу в данное время — это простой эффект рельефа (bump, между прочим, тоже хорошая штука), влияющий на общий суммирующий результат нодового материала в целом.

Как это сделать...

Подобно тому, как мы это делали для цветовых текстур, bump-текстуры могут также отображаться на объекте с нодами Отображение и Текстурные координаты. Естественно, существует также способ установить количество (силу) рельефности текстуры на поверхности объекта:

Откройте файл start_02.blend и установите 3D-вид в режим Рендера.

Поместите указатель мыши в окно Редактора Узлов и нажите Shift + A, чтобы появилось меню Добавить и выберите нод Математика (Math) из пункта Преобразователь (Convertor) (нажмите Shift + A и выберите Преобразователь | Математика).

Соедините выход Коэфф. нода Текстура волны, уже подключенный к входному сокету Шероховатость нода Глянцевый BSDF, с первым верхним входным серым сокетом Значение нода Математика. Подключите выход нода Математика к входному сокету Смещения нода Вывод материала.

Установите операцию нода Математика в Умножить (Multiply). Сдвигая второе Значение нода Математика, мы можем установить влияние, силу рельефности. Попробуйте, например, установить её на 3.000, как показано на следующем скриншоте:

Сохраните файл с именем start_14.blend.

Как это работает...

Проще говоря, величины текстуры в градациях серого умножаются на величину, которую мы установили вторым движком нода Математика. Например, если бы мы установили величину 0.500, интенсивность эффекта будет половиной встроенного (1.000 x 0.500 = 0.500). С величиной 3.000, эффект будет в три раза сильнее встроенного. Подобно Встроенному рендеру, величину можно также установить отрицательной (-3.000 в нашем случае), этим самым переворачивая направление эффекта рельефа.

Заметьте, что присутствует очевидная проблема на терминаторе сфероида (то есть, на границе освещенной поверхности с само-затенением), что кажется, является общим ограничением рендеров с трассировкой путей. Для того, чтобы отделаться от этого, вы можете попытаться сильнее подразделить меш (несколько непрактичный метод, если честно), но этого не всегда достаточно. Другой способ в том, чтобы изменить величину Размер лампы (или отмасштабировать, если вы используете меш-светильник). Выберите лампу в окне Структура проекта (Outliner), и в поле Размер под строкой Тип лампы в окне Данные объекта установите Размер на 1.000. Терминатор теперь выглядит гораздо мягче (очевидно, также вместе со спроецированной тенью на плоскости):

И больше...

Начиная с версии Блендера 2.65, входной сокет Нормаль был добавлен ко всем подходящим шейдерным нодам, чтобы подавать на ввод величины для рельефности каждому шейдеру самостоятельно. На этот входной сокет нужно подключить нод Рельеф (Bump) (нажмите Shift + A и перейдите к Вектор | Рельеф). Мы сделаем это так:

Начните с файла start_14.blend, выберите нод Математика в окне Редактора Узлов и удалите его (нажмите X).

Поместите указатель мыши в окно Редактора Узлов и нажмите Shift + A для добавления нода Рельеф (нажмите Shift + A и выберите Вектор | Рельеф).

Подключите выход Коэфф. нода Текстура волны к входу Высота нода Рельеф, а выход последнего ко входному сокету Нормаль шейдера Диффузный BSDF. Установите величину Силы на 0.050.

Добавьте нод Текстура Вороного (Voronoi Texture) (нажмите Shift + A и перейдите к Текстура | Текстура Вороного) и новый нод Рельеф (нажмите Shift + A и перейдите к Вектор | Рельеф). Подключите выход Коэфф. нода Текстура Вороного к сокету Высота нового нода Рельеф и подключите последний к входному сокету Нормаль шейдера Глянцевый BSDF:

Сохраните файл с именем start_15.blend.

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

Что касается смещения, то мы можем использовать опцию Модификатора Смещение поверхности (Displace) на панели Модификаторы Объекта, используя текстуры, которые должны быть настроены в панели Текстуры на панели Свойств. Кажется, в настоящее время текстуры Cycles нельзя использовать для этого, а только старые текстуры Встроенного рендера, расположенные в меню. В этом случае, смещение не ведет себя как-то иначе по сравнению со смещением, которое мы имеем в BI. Меш должен быть подразделен (обычно используется модификатор Подразделения Поверхности, но можно также использовать модификатор Мультиразрешения) и затем применено смещение. Короче говоря, ничего такого, как «micro-polygon displacement rendering» пока нет.

Между прочим, включением режима Экспериментальный в панели Визуализация (Render) в окне Рендера, возможно получить доступ к (всё еще неполной) функции смещения :

Перейдите в окно Рендера на панели Свойств. Щелкните на панели Рендер по кнопке Режим (Feature Set), по умолчанию установленной в Стандартный (Supported), и выберите Экспериментальный (Experimental).

Перейдите в окно Данных объекта, чтобы найти новую панель, называемую Смещения (Displacement), где мы можем выбрать между тремя опциями: Рельеф (Bump), Истинно (True), или Везде (Both) (галочка Использовать подразделение (Use Subdivision) и поле Уровень нарезания (Dicing Rate), кажется, пока не работают). (В версии 2.73 галочка Использовать подразделение уже влияет на результат, но как-то бестолково, по моему — прим. пер.)

Рельеф даёт нам средний bump-эффект, который будет таким же, как и при соединении выхода текстуры ко входу Смещения нода Вывод материала (что нам нужно сделать в любом случае). Устанавливая метод в Истинно, мы можем получить эффект смещения, не отличающийся от выхода Модификатора Смещения, и меш должен быть подразделён. Везде использует информацию о значениях текстуры в градациях серого сразу для эффектов и смещения и рельефа вместе.

Выберите Истинно.

Снова выберите сфероид. Войдите в окно Материала на панели Свойств, и на панели Смещения щелкните по кнопке, чтобы выбрать нод Изображение-Текстура из выпадающего меню.

Щелкните кнопку Открыть (Open), найдите в каталоге textures файл quads.png и загрузите изображение.

Под кнопкой Открыть, щелкните по кнопке Цветовое Пространство, чтобы установить его в Нецветовые данные (Non-Color Data).

Разделите нижнее окно 3D-вида, чтобы открыть окно Редактора UV/Изображений. Нажмите Tab, чтобы перейти в режим редактирования, затем, с указателем мыши в окне 3D-вида, нажмите U. В меню UV-разметка, выберите Умное UV-проецирование (Smart UV Project), затем нажмите Tab снова, чтобы выйти из режима редактирования (это быстрейший способ развёртки сфероида, который, как вы помните, на самом низком уровне разбиения все еще является кубом. Если вы хотите, вы можете сделать лучшую развёртку, размечая швы, и выбрав основной режим Развернуть из меню).

Переходите в окно Модификаторов объекта и поднимите уровни Подразделения как для Вида, так и для Визуализации до 6:

В любом случае, это просто для временной демонстрации, возможность всё ещё неполная и в данное время, кажется, работает (вполне) правильно, только если текстура отображается на UV-координаты. Это определенно должно измениться в будущем.

(Мне так и не удалось добиться появления этого эффекта смещения у себя с картинкой quads.png. Я пробовал и в версии 2.67, и в 2.73. Возможно, это работает только с CUDA. А вот с процедурными текстурами получалось. Вот как выглядел эффект с Текстурой волны – прим. пер.)

Глава 2. Управление Материалами Cycles

В этой главе мы изучим:

Подготовка идеального интерфейса для создания материалов в Cycles

Именование материалов и текстур

Создание нодовых групп

Связывание материалов

Введение

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

Ноды материалов запросто могут стать очень сложными в Cycles, так что будет хорошей идеей разделять и помечать разные части шейдерной сети, просто чтобы придать более ясный смысл различным частям (даже для себя; может быть, в определенный момент вашего рабочего процесса вы забудете, как именно вы организовали 120 нодов материала, созданного вами за пару месяцев до начала работы). Кроме того, организованные материалы можно легко использовать снова в других файлах и проектах, или в качестве частей более крупных и отличающихся материалов.

Материалы в основном организуют с помощью их группировки и/или придания им подходящих имен и определённых местоположений, с тем, чтобы их легко было обнаружить на жестком диске.

Подготовка идеального интерфейса в Cycles для создания материалов

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

Фактически, мы подготовим базовую настройку сцены, включая элементы и параметры, которые нам нужны, чтобы выполнять работу наилучшим образом.

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

Как это сделать...

Запустите Блендер и в верхнем меню (кнопка Движок, используемый для визуализации) переключите на Рендер Cycles.

Разделите окно 3D-вида на две горизонтальные части: переместите курсор мыши на край окна; курсор изменится на иконку двойной стрелки, щелкните правой кнопкой, и из контекстного выберите меню Разделить область (Split Area).

Измените тип верхнего окна на Редактор Узлов, выбрав пункт по кнопке Текущий тип редактора для этой области (Editor type) в левом углу нижнего заголовка.

Выберите на сцене куб по-умолчанию и нажмите Tab, чтобы войти в режим редактирования.

Нажмите W на клавиатуре; в выпадающем меню Специальные (Specials) выберите Подразделить со сглаживанием (Subdivide Smooth). Сделайте это три раза; теперь куб стал Сфероидом, созданным из 386 вершин.

Выходите из режима редактирования и установите режим Затенения куба в Гладко (Smooth), используя панель Инструменты слева.

Переместите куб на две единицы вверх по оси Z (G | Z | 2 | Enter).

Убедившись, что курсор всё ещё находится в центре сцены (если нет, нажмите Shift + C, чтобы отцентрировать его), нажмите Shift + A | Полисетка | Плоскость, чтобы добавить плоскость.

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

Разделите нижнее окно на две части, поместите курсор мыши в 3D-окно справа, и нажмите 0 на нумпаде клавиатуры, чтобы включить вид из Камеры; затем нажмите T, чтобы закрыть панель Инструментов слева.

Следующий скриншот показывает, чего мы достигли к этому моменту:

В левом углу нижнего заголовка левого 3D-окна, выберите Редактор UV/Изображений.

Поместите мышь в вид из Камеры и нажмите Shift + F, чтобы перейти в режим полета (отображается в видоискателе, показывающем центр поля камеры); немного перемещая мышь вверх (покрутите колесико, чтобы передвигаться вперёд или назад), настройте вид из Камеры, чтобы лучше разместить куб, затем нажмите Enter или левую кнопку, чтобы подтвердить:

Выберите плоскость и нажмите Создать (New) в заголовке Редактора Узлов, чтобы назначить новый материал, переименуйте его в Plane, и пусть все настройки останутся, как есть.

Выберите куб и нажмите Использовать Узлы в окне Материала на панели Свойств или в заголовке Редактора Узлов.

На панели Поверхность (Surface) в окне Материала, переключите шейдер Диффузный BSDF на Смешать шейдеры (Mix Shader), затем щелкните на первом сокете, чтобы выбрать шейдер Диффузный BSDF, а на втором — Глянцевый BSDF.

В Редакторе Узлов настройте расположение нодов, чтобы сделать их более удобочитаемыми:

Установите вид из Камеры на режим Рендера, щелкая по кнопке затенения в заголовке окна, и выбирая верхний пункт. Затем войдите в окно Рендер (Render) на панели Свойств справа, и на панели Сэмплирование (Sampling), установите поля Ограничить (Clamp) на 1.00, а Сэмплы на 50 для Визуализации (Render) и для Предпросмотра (Preview):

Установите Процентное отношение для разрешения визуализации (Percentage scale for render resolution) на панели Размеры на 25%.

На панели Производительность (Performance), установите структуру Ускорения на Статический BVH и отметьте галочки Простр. разбивка (Use Spatial Splits) и Кэшировать BVH (Cache BVH) (это не особенно полезно для простого Сфероида, но лучше для того случая, когда вы захотите отрендерить более сложный объект).

Теперь выберите лампу и удалите её (нажмите X на клавиатуре); перейдите в окно Мира и щелкните по кнопке Использовать Узлы для материала.

Щелкните в поле Цвет и установите величину RGB в 0.100 и Силу на 0.100; установите Ambient Occlusion (AO) на 0.30, но пусть она будет отключена (эта низкая величина будет готова для случая, если мы захотим использовать AO, но обычно лучше отключить её по умолчанию).

Теперь нажмите Shift + A и добавьте новую плоскость; выйдите из режима редактирования, нажмите N в виде из Камеры и в панели Преобразование (Transform) справа от 3D-окна установите эти величины: Положение (Location) X на 145.00, Y на -65.00, и Z на 110.00; Вращение (Rotation) X на -16 , Y на -126 , и Z на -4 ; Масштаб (Scale) X, Y, и Z на 12.

Перейдите в окно Материала и назначьте новый материал; переключите шейдер Диффузный BSDF на Излучение (Emission), установите Цвет в чисто белый и Силу на 120.000; измените имя материала на Emitter:

Нажмите N, чтобы закрыть панель Свойств вида из Камеры

Дополнительно, есть ещё кое-что, что вы можете сделать: увеличьте масштаб плоскости пола, в окне Структура проекта (Outliner) установите режим в Visible Layers, и щелкните на стрелках двух плоскостей (пол и излучатель), чтобы сделать их не-выбираемыми; выберите куб и в окне Модификаторов Объекта назначьте модификатор Подразделения Поверхности, чтобы он выглядел более гладким.

Возвращайтесь к окну Материала. Нажмите Ctrl + U, чтобы сохранить настройку, как заданную по-умолчанию (Сохранить файл запуска). Закончили.

Как это работает...

Мы установили очень низким глобальное освещение Мира, сохранив его серым, чтобы оно не влияло на цвет материала. По той же причине мы добавили весьма мощный меш-светильник, излучающий чисто белый свет, сильно увеличили его в размерах и переместили очень далеко от центра сцены, чтобы получить ясные тени. Плоскость пола должна отражать свет в затененных частях объекта.

Мы подготовили 3D-окно с видом из Камеры, чтобы иметь лучшую обратную связь для изображения с окончательным рендером, который будет показан в размере 25 процентов от установленного в окне Редактора UV/изображений на левой нижней стороне экрана.

Устанавливая величину Ограничить (Clamp) в 1.00, мы уменьшили количество светлячков, производимых Глянцевым шейдером, а увеличивая количество сэмплов Ренрера и Предварительного просмотра до 50, мы уменьшили шум, сохраняя в то же самое время рендера в разумных пределах даже на не слишком мощной рабочей станции.

Производительность, Структура ускорения (Acceleration structure) были установлены в Статический BVH (Static BVH), Простр. разбивка (Use Spatial Splits) и Кешировать BVH, что полезно для уменьшения времени вычисления иерархии окружающего объема меша (bounding volume hierarchy of the mesh), которую Cycles должен вычислять каждый раз при старте рендера. Во всяком случае, это полезно, но только если меш не получает никаких изменений между рендерами.

И больше...

Раскладка и настройки, которые мы только что сохранили в качестве файла запуска по-умолчанию — это то, что мы собираемся видеть при каждом запуске Блендера.

Но, может быть, мы не хотим получать интерфейс материалов Cycles каждый раз при старте, и предпочитаем иметь его как опцию, которую можно использовать, только если есть необходимость.

Вот простой способ сделать это:

Запустите Блендер с заводскими настройками (Файл | Сбросить настройки) и посмотрите на верх экрана, в главном заголовке сбоку от кнопки выбора Рендера есть два больших выпадающих списка Default (по-умолчанию) и Scene (сцена).

Щелкая по кнопке Default, мы можем задать другую раскладку интерфейса (там уже присутствует девять, каждая подготовлена для своей задачи, и их имена вполне ясны); щелчок по Scene просто покажет текущую сцену.

Щелкнув по кнопке + сбоку от надписи Default, добавьте новую раскладку экрана, и переименуйте её в Materials (материалы).

Затем щелкните по кнопке + сбоку от кнопки выбора Сцены и, выбрав Полная Копия (Full Copy), добавьте новую сцену к файлу и переименуйте её на что-нибудь вроде Cycles_Materials. Эта новая сцена является полной копией той, что была по-умолчанию, но существует независимо.

В этом месте мы можем начать выполнять все инструкции, уже виденные нами в разделе «Как это сделать...» этого рецепта, где нужно переключиться на рендер Cycles, разделить 3D-окна, подразделить куб, и так далее.

Когда закончите, просто щелкните по кнопке экранов и переключите на Default, затем сохраните пользовательские настройки (Ctrl + U). Теперь наш интерфейс создания материала сохранен в виде экранной опции на другой сцене; каждый раз, когда нам понадобится доступ к ней, мы просто выберем раскладку Materials на кнопке экранов.

Именование материалов и текстур

Известно, что одна из наиболее важных вещей, которую нужно делать (в любом рабочем процессе с любым 3D-пакетом), — это давать всем ресурсам правильные поясняющие имена; то есть, в нашем случае, материалам и текстурам.

Как это сделать...

Запустите Блендер, перейдите в меню Файл в левом верхнем углу экрана и выберите Сбросить настройки (это просто чтобы быть уверенным, что начинаем с параметров по умолчанию Blender/Cycles):

Теперь, если у вас включен Встроенный рендер Блендера, переключитесь на ренрер Cycles.

Выберите Куб и перейдите в окно Материал на панели Свойств: встроенному кубу материал уже назначен. Этот материал Блендер уже назвал самостоятельно, да, именем Material:

Когда вы создаете новый материал, например щелкая по символу + сбоку от блока данных материала (Добавить новый материал) на панели Свойств, Блендер автоматически назначает новое имя этому материалу, обычно что-то вроде Material.001, Material.002, Material.003, и так далее:

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

Чтобы переименовать материал, достаточно щелкнуть левой кнопкой мыши по имени блока данных материала и задать новое имя, затем нажать Enter для подтверждения:

Это можно сделать как на панели Свойств, так и в кнопке блока данных Материала в заголовке окна Редактора Узлов.

Для текстур дела обстоят немного по-другому; в Cycles текстуры являются не блоками данных, а нодами, так что каждый раз, когда мы добавляем нод текстуры к сети материала, он будет автоматически именован в соответствии с типом текстуры, которую мы добавили. То есть, если мы добавили Текстуру Вороного, нод текстуры будет назван Voronoi Texture, и обычно нет никаких причин это менять.

Но всегда можно найти повод для переименования; в этом случае:

Поместите мышь в Редактор Узлов и нажмите на клавиатуре N, справа появится новая панель. Первые два поля на этой панели, Метка (Label) и Имя (Name), предназначены именно для этой цели.

Щелкая по имени текстуры в окне Текстур под панелью Свойств, мы увидим, что вторая текстура Voronoi, которую мы только что добавили, автоматически переименована Блендером в Voronoi Texture.001.

По крайней мере в данное время в Редакторе Узлов этого не видно, а только на панели Активного Нода справа. Если нам нужно другое имя для этой текстуры, мы можем изменить его, щелкнув по полю Имя и введя новое имя, а затем подтвердив нажатием Enter.

То же самое касается поля Метка, но на этот раз имя метки будет отражаться только в Редакторе Узлов, как будто метка нанесена на нод.

Создание нодовых групп

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

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

Как это сделать...

Запустите Блендер и откройте файл 1301OS_02_09_basicshader.blend:

Это — сфера, расположенная на плоскости пола, и четыре небольших куба на углах плоскости; как вы можете видеть в Редакторе Узлов, для сферы (уже выбранный объект) сформирован простой материал из Диффузного и Глянцевого шейдера, смешанных через нод Смешать шейдеры.

Теперь выберите рамкой (курсор мыши в Редакторе Узлов, нажмите B и растягивайте рамку, чтобы захватить ноды) Диффузный и Глянцевый ноды.

Нажмите Ctrl + G на клавиатуре, появится выпадающее меню; щелкните левой кнопкой для подтверждения того, что вы хотите создать группу выбранных нодов.

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

Два шейдера будут завёрнуты в прямоугольник, который на самом деле является нодовой группой в режиме редактирования; то есть, нодовая группа сейчас открыта и её можно редактировать, мы имеем к ней доступ и можем модифицировать её содержимое.

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

Как и из любого режима редактирования в Блендере, нажатием клавиши Tab мы выходим из режима редактирования, закрывая нодовую группу:

Нодовая группа всё ещё показывает два выхода BSDF (сейчас подключенные к входным сокетам нода Смешать шейдеры), имя блока данных и кнопку Fake User; она нужна для того же, что и во Встроенном рендере — для предотвращения уменьшения счетчика пользователей до нуля, и, следовательно, от удаления из файла при закрытии Блендера в случае, если эта группа не назначена никакому материалу. Назначая Fake User материалу, вы будете уверены, что он не будет удалён. Особенно это удобно при формировании вашей библиотеки материалов.

Теперь нажмите Tab, чтобы снова войти в режим редактирования, щелкните по имени блока данных и измените имя по умолчанию NodeGroup на нечто другое; я вписал BasicShader.

Щелкните левой кнопкой по входному сокету Шероховатость (Roughness) Глянцевого шейдера и перетащите на левую сторону нодовой группы; появится новая связь:

Отпустите кнопку мыши, и новый входной сокет для величины Шероховатости будет создан с левой стороны нодовой группы:

Сделайте то же для входного сокета цветового поля Диффузного шейдера; новые сокеты создаются в вертикальном порядке:

Посмотрите на небольшие стрелки сбоку от групповых сокетов:

Щелкните по верхней стрелке, чтобы переместить цветовой сокет вверх.

Я у себя в версии 2.73 нашел возможность поменять местами сокеты только в N-панели справа, там есть поля Входы и Выходы, стрелки для перемещения порядка, добавления, переименования и удаления сокетов — прим пер.

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

Щелкните по именам новых сокетов, чтобы переименовать их на DiffuseColor, SpecColor, и Bump.

Теперь нажмите Tab на клавиатуре, чтобы выйти из режима редактирования и вот оно: простой интерфейс для нодовой группы BasicShader:

Нажмите Tab снова, чтобы вернуться в режим редактирования; поместите курсор мыши внутрь нода и нажмите Shift + A для добавления нода Смешать шейдеры в группу.

Подсоедините Диффузный и Глянцевый шейдеры к новому ноду Смешать шейдеры, а его выход к одному из сокетов BSDF; удалите другой, щёлкнув по кнопке X:

Выйдите из режима редактирования и выберите внешний нод Смешать шейдеры; нажмите Alt + D (это клавиатурная комбинация удаления нода из сети, оставляющая связь нетронутой), чтобы отсоединить его. Удалите его.

Как это работает...

Я думаю, что вы представили картину: в основном любой входной или выходной сокет нодов, свёрнутых в группу, можно перенаправить наружу нодовой группы, чтобы его можно было регулировать; например, мы могли бы также сделать входной сокет для шероховатости Диффузного шейдера, или лучше, вход для сокета Коэфф. (Fac) внутреннего нода Смешать шейдеры, чтобы изменять отражательность (reflectivity) шейдера.

Другая хорошая возможность у нодовых групп — то, что вы можете делать экземпляры (Shift + D) этого нода. Заметьте, что так как вы модифицируете внутреннюю структуру нодовой группы, модификации отражаются во всех экземплярах групы; и наоборот, внешние величины (exposed, выставленные наружу) на интерфейсе нодовой группы локальны для каждого экземпляра и их можно индивидуально регулировать.

Каждая вновь созданная нодовая группа доступна по Shift + A | меню Добавить и также в сокетах в окне Материала панели Свойств, в разделе Группа, чтобы была возможность добавлять её к сети в любой момент.

Чтобы удалить нодовую группу, выберите её и нажмите Alt + G; это сломает нодовый конверт, но всё его содержимое останется целым и соединённым.

Связывание материалов

Точно также как для Встроенного рендера, материалы Cycles можно связывать (link) из библиотек. Каждый blend-файл, содержащий связываемые ресурсы, может быть библиотекой.

Связь материалов является действительно полезной практикой: скажем, у вас есть 20 разных blend-файлов с объектами, использующими шейдер железа, и, что в определенной точке вашего рабочего процесса вам нужно модифицировать этот материал железа во всех файлах; при наличии этого материала, включённого во все 20 файлов из единственного blend-файла, возможно корректировать их все сразу, просто модифицируя один шейдер в одном файле.

Как это сделать...

Просто перейдите в меню Файл в левой части основного заголовка и выберите Связать (Link):

Просмотрите каталог, в котором вы храните ваши библиотечные файлы, и выберите blend-файл, материал из которого вы хотите связать (например, попробуйте файл 1301OS_02_library.blend).

Просмотрите структуру файла, где связываемые ресурсы подразделены на подкаталоги (отображаемое именами Scene, Mesh, Material, NodeTree, Object, и так далее; заметьте, что различные подразделы появляются только в том случае, если в blend-файле соответствующий ресурс, который нужно связать, действительно существует).

Щелкните подраздел Material. Когда войдёте, выберите материал, который вы хотите связать (например, Material_04) и нажмите Enter для подтверждения (или щелкните на Связать из библитеки (Link/Append from Library) справа вверху).

Теперь щелкните по кнопке блока данных Материала в заголовке окна Редактора Узлов и выберите имя связанного материала, помеченное префиксом LF, L - для Связанного и F - для Fake User (фальшивый пользователь).

Это потому, что в библиотечном файле мы назначили Fake User материалу, щелкая по кнопке F сбоку от имени блока данных Материала. Если Фальшивый пользователь не назначен, префикс связанного материала будет L0, что значит Linked и 0 Фальшивых пользователей в этом blend-файле (например, Material_05, который просто назначен объекту, но не имеет Фальшивого Пользователя).

Имя материала отображается серым, чтобы показать, что он связан; справа от имени появилась новая кнопка, с небольшой стрелкой, и количество пользователей скорректировано до 2 (Фальшивый пользователь и объект, которому мы назначили связанный материал).

С этих пор, каждая модификация материала, которую мы произведём в библиотеке, отобразится в связанном материале в тот момент, когда мы загрузим файл.

Связывать можно не только материалы, но также группы нодов: в этом случае связываемый ресурс нужно выбирать из раздела NodeTree, а не Material.

Имя блока данных связанной нодовой группы также серое; вы можете модифицировать выставленные наружу (exposed, те что подаются на вход группы нодов) величины и цвета, но если вы попытаетесь войти в режим редактирования, появится вопрос, хотите ли вы сделать группу локальной; если вы подтвердите, нодовая группа становится редактируемой, но, конечно же, локальной, и потеряет связь с библиотечным файлом.

Глава 3. Создание природных материалов в Cycles

В этой главе мы изучим:

Создание материала камня с использованием карт изображений

Создание материала камня с помощью процедурных текстур

Создание материала песка с помощью процедурных текстур

Создание простого материала почвы с помощью процедурных текстур

Создание материала снега с использованием процедурных текстур

Создание материала льда с использованием процедурных текстур

Создание материала чистой текущей воды

Введение

Копирование "природы" может быть весьма трудной задачей. Естественные материалы обычно наиболее трудны для удовлетворительного воссоздания при использовании компьютеров, главным образом потому, что "нормальный хаос" природы плохо подходит для "нормальной логики" электронной машины.

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

От переводчика: переводя эту главу, я заметил, что во всех разделах в параграфе «Как это сделать...» строится нодовая сеть материала, и выглядят они одинаково. Практически каждый шаг звучит как «Добавьте нод А (нажмите Shift-A и выберите нужный пункт меню), подключите его сокет X к сокету Y нода B». Первые два раздела я честно перевёл полностью, но потом мне это надоело. В конце-концов, целью рецептов является научиться правильно строить тот или иной материал, а тонкости работы в Редакторе узлов уже описаны в первой главе, ну и в двух разделах этой. Так что в дальнейшем параграфы «Как это сделать...» я заменяю скриншотами уже построенной нодовой сети с небольшим количеством пояснений. Наиболее важная информация, на мой взгляд, находится в параграфах «Как это работает...», и их, как и остальные параграфы, я перевожу полностью.

Создание материала камня с использованием карт изображений

В этом рецепте мы создадим реалистичный материал камня, подобный тому, что показан на следующем скриншоте:

Лучший способ начать решать эту задачу — использовать карты изображений (image maps). Карты изображений особенно полезны по нескольким причинам: у них уже есть необходимая цветовая информация естественной (природной) поверхности, готовая к использованию. Их легко можно отредактировать в любом графическом редакторе для получения различной информации, как, например, уровней высот для карт рельефа (bump maps). Они обрабатываются программным обеспечением быстрее, чем процедурные (процедурные текстуры нужно вычислять каждый раз). Кроме того, их легко можно найти в Сети с разными размерами и разрешениями.

Только не забудьте сделать любое изображение, которое вы собираетесь использовать, «повторяемым» (tileable), используя ваш любимый редактор изображений. В Gimp эта работа выполняется автоматически с помощью плагина в меню Фильтры | Карта | Без швов.

Подготовка

Откройте файл 1301OS_03_start.blend, подготовленный для создания материалов:

В слое 1 есть сглаженный подразделённый "сфероидный" куб и модифицированная плоскость, с выдавленными и искривлёнными вертикальными стенами, работающими в качестве заднего фона с назначенным ей белым материалом по-умолчанию.

В слое 6 присутствует меш-светильник, большая плоскость с белым излучающим материалом, интенсивность которого установлена в 6.000.

Есть также темно-серый Мир, его интенсивность установлена в 0.100, и Ambient Occlusion с Множителем (Factor) в 0.10, но оно сейчас отключено.

Как это сделать...

Выполните следующие шаги для создания материала камня:

Выберите подразделённый куб и, для целей этого упражнения, удалите его, нажав X на клавиатуре.

С указателем мыши в окне 3D-вида, нажмите Shift + A, чтобы появилось меню Добавить (Add) и добавьте новый примитив Куб (нажмите Shift + A, и перейдите к Полисетка | Куб). Нажмите Tab для выхода из режима редактирования, если нужно.

Щёлкните по кнопке Создать (New) в окне Материала справа, под панелью Свойств, или в заголовке окна Редактора Узлов.

Поместите мышь в окно Редактора Узлов и добавьте нод Изображение-текстура (Image Texture, нажмите Shift + A и перейдите к Текстура | Изображение-текстура), затем добавьте нод Отображение (Mapping, нажмите Shift + A и перейдите к Вектор | Отображение) и нод Текстурные Координаты (Texture Coordinate, нажмите Shift + A и перейдите к Ввод | Текстурные Координаты).

Подключите сокет Сгенерировать нода Текстурные Координаты к входному сокету Вектор нода Отображение, затем его выход Вектор ко входу Вектор нода Изображение-текстура. Также подключите Цветовой выход нода Изображение-текстура ко входу Цвет шейдера Диффузный BSDF.

Установите режим вида из Камеры на С визуализацией (Rendered). Отрендеренный куб станет розовым, поскольку там пока не загружено никакой текстуры, как показано здесь:

Щёлкните по кнопке Открыть нода Изображение-текстура. Просмотрите каталог текстур и выберите файл с изображением rockcolor_tileable_low.png (просто для этого упражнения, очевидно, что вы сможете использовать любое другое изображение, которое захотите).

Так как мы выбрали способ отображения Сгенерировать, картинка отобразилась плоско на кубе от оси z и выглядит растянутой на сторонах куба. Отсоедините выход Сгенерировать нода Текстурные Координаты и взамен соедините с выходом Объект. Щёлкните по кнопке Плоско в ноде Изображение-текстура, чтобы выбрать Куб. Изображение теперь выглядит правильно отображённым на каждую грань куба.

Перейдите в окно Модификаторов объекта и назначьте кубу модификатор Подразделения поверхности. Установите уровни подразделения как для вида, так и для рендера на 4.

Хотя карта изображения, которую мы использовали, — повторяемая, сильно заметны швы в углах подразделенного куба. В ноде Изображение-текстура установите показатель Blend на 0.500, чтобы смягчить углы (этот показатель должен смешать грани куба, который помнит, что хотя сейчас он выглядит, как подразделенный сфероид, на самом низком уровне он всё ещё шестигранный куб):

Теперь добавьте нод Градиентная карта (ColorRamp, нажмите Shift + A и выберите Преобразователь | Градиентная карта) между нодом Изображение-текстура и Диффузным шейдером. Установите интерполяцию в Ослабление (Ease), переместите маркер черного цвета на середину движка, а белый маркер на четверть с левой стороны движка:

Добавьте нод Рельеф (Bump, нажмите Shift + A и выберите Вектор | Рельеф), подключите выход Цвет нода Градиентная карта ко входу Высота нода Рельеф и выход Нормаль последнего ко входу Нормаль Диффузного шейдера. Отделите связь Цвета от входа Цвет Диффузного шейдера и установите силу Рельефа на 0.500.

Добавьте нод Смешать шейдеры и Глянцевый BSDF и соедините их, чтобы смешать с Диффузным шейдером. Установите величину Шероховатости Глянцевого шейдера в 0.400, а Коэфф. нода Смешать шейдеры на 0.300. Подключите выход Нормаль нода Рельеф к сокету Нормаль Глянцевого шейдера:

Добавьте нод RGB (нажмите Shift + A и выберите Ввод | RGB). Добавьте нод Смесь (нажмите Shift + A и выберите Цвет | Смесь RGB). Соедините оба Цветовых выхода нодов RGB и Изображение-текстура с входными сокетами Цвет1 и Цвет2 нода Смесь. Подключите выход Цвет нода Смесь к входным Цветовым сокетам Диффузного и Глянцевого шейдеров.

Щёлкните цветное поле нода RGB и установите эти величины: R 0.407, G 0.323, и B 0.293. Подключите выход Цвет нода Градиентная карта ко входу Коэфф нода Смесь.

У нода Координаты Текстуры (вообще-то, насколько я понимаю, это надо делать у нода Отображение - прим. пер.) установите угол вращения по Y на 20° и установите масштаб для всех трех осей на 0.500:

Как последний шаг (который не является обязательным, но может улучшить материал), добавьте новый нод Смесь (нажмите Shift + A и выберите Цвет | Смесь RGB). Установите Тип смешивания в Разница (Difference) и перетащите его, чтобы он встал между нодами Градиентная карта и первым нодом Смесь.

Переключите выход Градиентной карты со входа Цвет1 на вход Коэфф нода Разница, подключите выход нода RGB к пустому входу Цвет1 и цветовой выход Изображения-текстуры на вход Цвет2.

Измените Тип Смешивания нода Смесь на Цвет, переключите выход Диффузного нода от сокета Коэфф на вход Цвет2 нода Цвет и подключите цветовой выход нода Изображения-текстуры на вход Цвет1 того же самого нода Цвет. Вы можете выставить величину Коэфф нода Цвет на 0.500. Чем сильнее вы увеличиваете эту величину, даже до максимума 1.000, тем больше цвета от нода RGB будет влиять на конечный результат.

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

Как это работает...

Мы отобразили цветное изображение камня с проецированием Куб, доступным среди опций нода Изображение-текстура (разработанного командой Mango для создания фильма "Слезы Стали", чтобы можно было быстро отображать объекты без необходимости их развёртки) и установили показатель Blend (смешивание между сторонами) на 0.500, чтобы в углах получились плавные переходы.

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

Мы преобразовали цветное изображение в черно-белое, чтобы использовать для рельефа

Перемещая цветовые маркеры, мы переназначили это значение на обратное и увеличили контраст (мы могли бы получить тот же результат, обрабатывая изображение, например, в Gimp, путем его обесцвечивания и игры с инструментом Кривые).

Этот контрастный результат применяется в качестве карты рельефа для Диффузного и Глянцевого шейдеров.

Затем мы смешали коричневатый цвет (нод RGB) с цветовым выходом изображения камня. Контрастные величины нода Градиентная карта используются как показатель смешивания цветов, этим самым давая больше и лучше видоизменений поверхности.

В последнем дополнительном шаге, мы добавили больше вариаций к окраске, вычисляя также "разницу" между изображением и RGB-цветом, с контрастным черно-белым выходом нода Градиентная карта как показателя смешивания, и добавили их к конечному результату, используя нод Цвет.

И больше...

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

По крайней мере в этом случае нет необходимости для точного соответствия между уже текстурированной поверхностью и смещением, поскольку оно будет едва заметным, так что мы можем использовать модификаторы объекта, чтобы получить быстрый, но эффективный результат:

Начните с файла Rock_01, который мы только что создали, выберите куб и перейдите на панель Модификаторов объекта. В уже назначенном модификаторе Подразделения поверхности, установите уровни разбиения как для Вида, так и для Рендера на 3.

Добавьте новый модификатор Подразделения поверхности и установите его уровни на 4.

Теперь добавьте модификатор Смещение поверхности (Displace) и щёлкните кнопку Show textures in texture tab (показать текстуру в панели текстур), последняя кнопка справа от слота Текстура. При этом появится окно Текстур, где нужно щелкнуть по кнопке Создать и затем заменить текстуру Облаков по-умолчанию текстурой Вороной. Установите величину Размер (Size) на 2.00 и пусть все остальные поля будут неизменными. Возвращайтесь к окну Модификаторов Объекта и установите Силу (Strength) модификатора на 0.300.

Добавьте новый модификатор Смещение поверхности (Displace). Переключите на окно Текстур и назначьте новую текстуру. Теперь мы будем использовать текстуру Облаков, но изменим величину Размер (Size) до 0.50 и величину Глубина (Depth) до 8. Теперь, в модификаторах, установите величину Силы (Strength) на 0.350.

Добавьте модификатор Смещения поверхности последний раз. В окне Текстур выберите текстуру Шум (Noise) и установите величину Силы на 0.005. Вот к чему мы пришли:

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

Создание материала камня с помощью процедурных текстур

В этом рецепте мы создадим материал камня, используя процедурные текстуры. Мы создадим что-то, подобное следующему:

Подготовка

Откройте файл 1301OS_03_start.blend и установите вид из Камеры на режим Рендера.

Как это сделать...

Вот как мы собираемся создавать материал камня:

Выберите сфероид (подразделенный куб) и щелкните на кнопке Создать в окне Материала на панели Свойств или в заголовке Редактора Узлов. Переименуйте материал на Rock_procedural_01.

Добавьте текстуру Вороного (Voronoi), текстуру "Масгрейв" (Musgrave), и текстуру Шума (Noise) (нажмите Shift + A и выберите нужную Текстуру) в окне Редактора Узлов. Нажмите Shift + D, чтобы продублировать текстуру Вороного и расставьте их столбцом.

Добавьте ноды Текстурные координаты (Texture Coordinate, нажмите Shift + A и выберите Ввод | Текстурные координаты) и Отображение (Mapping, нажмите Shift + A и выберите Вектор | Отображение). Подключите выход Объект нода Текстурные координаты к синему входу Вектор нода Отображение. Теперь, подключите выход Вектор нода Отображение к входным сокетам Вектор четырех текстурных нодов.

Добавьте нод Смесь (нажмите Shift + A и выберите Цвет | Смесь) и соедините выходы Коэфф первых двух нодов Текстура Вороного ко входам Цвет1 и Цвет2 нода Смесь. Установите тип смешивания нода Смесь на Экран (Screen) и установите величину Коэфф на 1.00.

Подключите выход нода Смесь к цветовому входу Диффузного шейдера.

В текстурах Вороного, переключите тип с Интенсивности на Ячейки. В первой текстуре Вороного установите Масштаб на 2.700, а во втором на 16.000.

Выберите нод Экран и нажмите Shift + D, чтобы продублировать его. Перетащите его на связь, соединяющую нод Экран и Диффузный шейдер, чтобы вклеить его между ними. Установите у него тип смешивания на Умножить (Multiply) и величину Коэфф на 0.950. Подключите выход Цвет текстуры "Масгрейв" к входу Цвет2 нода Умножить.

Установите у нода "Масгрейв" Масштаб (Scale) на 2.776, Детальность (Detail) в 3.500, Размерность (Dimension) на 0.100, и Лакунарность (Lacunarity, вот жеж названьице придумали, но в русской википедии термин «Лакунарность», как математическое и лингвистическое понятие действительно присутствует — прим. пер.) на 1.796.

Выберите нод Умножить и нажмите Shift + D, чтобы дублировать его. Вклейте этот нод на связи, соединяющей первый нод Умножить с Диффузным шейдером. Установите его величину Коэфф на 0.300, и затем подключите выход Коэфф Текстуры шума к входу Цвет2.

Установите величину Масштаб Текстуры шума на 7.980, Детальность в 16.000, и Искажение в 2.380.

Добавьте нод Рельеф (Bump, нажмите Shift + A и выберите Вектор | Рельеф) и подключите его выход Вектор ко входу Вектор Диффузного шейдера (вообще-то у него нет входа с таким названием... надеюсь, имелся ввиду вход Нормаль — прим.пер.). Затем, подключите выход второго нода Умножить к входному сокету Высота нода Рельеф. Разъедините связь с цветовым входом шейдера.

Добавьте четыре нода Градиентная карта (ColorRamp, нажмите Shift + A и выберите Преобразователь | Градиентная карта, затем нажимайте Shift + D) и вставляйте после каждого текстурного нода, на четырех связях с нодами Смесь. Установите их интерполяцию в B-сплайн (B-Spline). На первых двух связях (подключенных к нодам Вороного), сдвиньте черный цветовой маркер на середину движка. На самом деле, вы можете отредактировать сначала только один движок Градиентной карты, затем поместить курсор мыши на движок. Нажмите Ctrl + C, чтобы скопировать его и, с курсором мыши в движке второго, нажмите Ctrl + V, чтобы вставить его.

В третьем ноде Градиентная карта (подключенном к текстуре "Масгрейв"), переместите черный маркер только на одну четверть вправо. В четвертом ноде (подключенном к текстуре Шума), переместите черный маркер на середину, а белый маркер почти на одну четверть налево.

Установите величину Сила нода Рельеф на 1.000.

Добавьте нод Тон/Насыщенность/Яркость (Hue Saturation Value, нажмите Shift + A и выберите Цвет | Тон/Насыщенность/Яркость) и вставьте его между нодом Экран и входом Цвет1 первого нода Умножить. Установите Значение (Value) на 10.000.

Добавьте нод Яркость/Контраст (Bright/Contrast, нажмите Shift + A и выберите Цвет | Яркость/Контраст) и вставьте его между третьим (Musgrave) нодом Градиентная карта и входом Цвет2 первого нода Умножить. Установите Контраст на -0.700.

Добавьте Кадр (Frame, нажмите Shift + A и выберите Разметка | Кадр). Нажмите Shift, чтобы выбрать сразу четыре нода текстуры, четыре нода Градиентная карта, три нода Смесь, нод Яркость/Контраст, нод Тон/Насыщенность/Яркость и, последним, только что добавленный Кадр. Нажмите Crtl + P, чтобы Кадр стал родителем всех выбранных элементов. Нажмите N в окне Редактора Узлов, чтобы появилась панель Активного нода и переименуйте Кадр в 1-й Рельеф (1st Bump). Если хотите, придайте ему цвет фона (отметив галочкой поле Цвет).

Добавьте текстуру Вороного, две текстуры "Масгрейв", одну текстуру Шума (нажмите Shift + A | Текстура), и один нод Градиентная карта (ColorRamp, нажмите Shift + A и выберите Преобразователь | Градиентная карта). Переместите их выше и расположите текстуры в колонку с нодом Градиентная карта сбоку от них. Подключите цветовой выход второго нода "Масгрейв" ко входу Коэфф нода Градиентная карта.

Установите ноду Градиентная карта интерполяцию на B-сплайн и переместите белый маркер на три четверти слева. Переключите раскраску текстуры Вороного с Интенсивности на Ячейки и установите Масштаб на 8.000. Установите тип обеих текстур "Масгрейв" в Гетероповерхность (Hetero Terrain). Установите Масштаб первой текстуры на 3.696, а второй - на 2.192. Также, для обеих текстур установите Детальность на 3.500, Размерность на 0.300, и Лакунарность на 3.000. В текстуре Шума установите величину Масштаб на 15.000, Детальность на 16.000, и Искажение на 0.400.

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

Добавьте три нода Смесь (Mix, нажмите Shift + A и выберите Цвет | Смесь, затем нажимите Shift + D) и переместите их также вверх. Измените их типы смешивания на Экран (Screen), Умножить (Multiply), и Разделить (Divide) соответственно.

Соедините сначала выход Коэфф верхней текстуры Вороного со входом Цвет1 нода Экран и цветовой выход первой текстуры "Масгрейв" со входом Цвет2 нода Экран, затем подключите его выход ко входу Цвет1 нода Умножить. Подключите цветовой выход нода Градиентная карта ко входу Цвет2 нода Умножить. Подключите выход нода Умножить к входному сокету Цвет1 нода Разделить, а выход Коэфф текстуры Шума ко входу Цвет2 нода Разделить.

Добавьте нод Инвертировать (Invert, нажмите Shift + A и выберите Цвет | Инвертировать) и подключите выход нода Разделить ко входу нода Инвертировать. Добавьте новый Кадр и сделайте его родителем всех этих новых нодов. Переименуйте его в 2-й Рельеф (2nd Bump).

Наконец, добавьте нод Смесь (нажмите Shift + A и выберите Цвет | Смесь) и переместите его, чтобы вставить перед нодом Рельеф. Измените его Тип смешивания на Умножить и увеличьте величину Коэфф до 1.000. Подключите выход нода Инвертировать к входному сокету Цвет1 этого нода Смесь.

Теперь выберите Диффузный шейдер и, нажав Shift + D, продублируйте его. Затем, добавьте нод Смешать шейдеры (Mix Shader, нажмите Shift + A и выберите Шейдер | Смешать шейдеры) и вставьте его между первым Диффузным шейдером и нодом Вывод материала. Соедините второй Диффузный шейдер с пустым входным сокетом Шейдер нода Смешать шейдеры.

Измените цвет первого Диффузного шейдера на R 0.365, G 0.379, B 0.400, установите величину Шероховатость на 1.000. Измените цвет второго Диффузного шейдера на R 0.130, G 0.092, B 0.075 и установите величину Шероховатость на 1.000.

Выберите и продублируйте нажатием Shift + D нод Смешать шейдеры. Установите его величину Коэфф на 0.300 и вставьте дубликат между оригиналом и нодом Вывод материала. Добавьте шейдер Глянцевый BSDF (нажмите Shift + A и выберите Шейдер | Глянцевый BSDF) и подключите его выход ко второму входу Шейдер дублированного нода Смешать шейдеры.

Установите цвет Глянцевого шейдера на R 0.560, G 0.742, B 0.800 и величину Шероховатости на 0.400.

Добавьте нод Смесь (Mix, нажмите Shift + A и выберите Цвет | Смесь) и измените Тип Смешивания на Прожигание (Burn). Подключите выход Коэфф текстуры Шума второго рельефа ко входу Цвет1 и выход нода Инвертировать ко входному сокету Цвет2.

Добавьте нод Градиентная карта (ColorRamp, нажмите Shift + A и выберите Преобразователь | Градиентная карта), измените интерполяцию на Ослабление (Ease) и передвиньте белый маркер на три четвертых влево. Подключите выход нода Прожигание ко входу Коэфф нода Градиентная карта, а его цветовой выход ко входу Коэфф первого нода Смешать шейдеры, как показано на следующем скриншоте:

Добавьте нод RGB в оттенки серого (RGB to BW, нажмите Shift + A и выберите Преобразователь | RGB в оттенки серого) и вставьте его между нодом Рельеф и Умножить.

Выберите нод Рельеф и дважды нажмите Shift + D, чтобы продублировать его. Подключите выход RGB в оттенки серого к их входам Высота, затем подключите выход Нормаль второго нода Рельеф к входу Нормаль второго Диффузного шейдера, и выход Нормаль третьего нода Рельеф к входу Нормаль Глянцевого шейдера.

Уменьшите величину Сила первого нода Рельеф до 0.600, а величину Сила третьего нода Рельеф до 0.200. Мы, наконец-то, закончили! Это то, чего мы достигли:

Как это работает...

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

Первый этап, от шага 2 до шага 16, в которых мы построили рисунок "первого рельефа".

Второй этап, с 18 по 23 шаг, где мы добавили рисунок второго рельефа, чтобы увеличить детальность материала, и затем (на шаге 24) мы перемножили его с первым рельефом.

Третий этап, от шага 25 до шага 30, где мы построили цветной рисунок, смешивая два по-разному окрашенных Диффузных шейдера, основываясь на выходе рельефа, как на показателе для смешивания, в дополнение к построению Глянцевого шейдера, добавляющего зеркальности.

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

Создание материала песка с помощью процедурных текстур

В этом рецепте мы создадим материал песка, подходящий как для близких объектов, так и для дальних:

Подготовка

Для подготовки запустите Блендер и переключите на Cycles. Удалите куб по-умолчанию и добавьте плоскость. В режиме редактирования увеличьте её масштабированием в девять раз (длина стороны получится 18 единиц).

Перейдите в окно Мира и щёлкните по кнопке Использовать Узлы, затем щёлкните по небольшому квадрату с точкой справа от поля цвета. Из меню выберите Текстуру Неба. Установите величину Силы на 0.300.

Выберите лампу, переходите в окно Данных объекта лампы, и щёлкайте по кнопке Использовать Узлы. Затем измените тип Лампы на Солнце (Sun) и установите величину Размер в 0.100, а величину Силы в 2.000. Измените цвет свечения на R 1.000, G 0.782, B 0.310. На виде сверху поверните лампу Солнце на 45°.

Установите камеру, чтобы иметь хороший угол на плоскости, и переключите окно 3D-вида на вид из Камеры (нажмите 0 из нумпаде).

Добавьте на сцену куб и UV-сферу, и разместите их так, чтобы они лежали на плоскости.

Выберите куб, и в окне Модификаторов Объекта добавьте модификатор Скоса (Bevel). Установите величину Ширины (Width) на 0.0600. Назначьте модификатор Подразделения Поверхности и установите оба уровня на 2. Назначьте модификатор Гладко (Smooth) и установите величины Множитель (Factor) на 1.000 и Повторять (Repeat) на 25. Нажмите T, чтобы вызвать панель Инструментов слева, и включите режим Затенения Гладко (Smooth).

Разделите окно 3D-вида на две горизонтальные части, измените верхнюю на окно Редактора Узлов, и установите режим просмотра из Камеры на Рендер.

Мы теперь готовы двигаться и сделать это:

Как это сделать...

Как я уже писал ранее, заменяю текст автора с шагами построения нодовой сети на скриншоты этой самой сети — прим. пер.

Создайте новый материал Sand_01 и назначьте его всем трём объектам на сцене.

Общий вид нодовой сети:

Начало сети с текстурными координатами:

Кадр «Цвет песка»:

Здесь:

на вход Текстуры шума подаётся выход нода «Отображение»

бежевый цвет: R 0.8, G 0.7, B 0.5

желтоватый цвет: R 0.52, G 0.51, B 0.34

Кадр «Рельеф песка»:

Здесь:

Все входы Вектор у нодов текстур подаются с выхода нода «Отображение»

Цвет2 нода «Умножить» R 0.5, G 0.5, B 0.5

Кадр «Большие волны»:

Здесь также входы Вектор подключены к выходу нода «Отображение».

Кадр «Гранулированность»:

И здесь вход Вектор подключен к ноду «Отображение», а Цвет2 нода «Умножить» нейтрально серый — R 0.5, G 0.5, B 0.5.

Последний скриншот с кадром «Суммарная сила Рельефа» и отдельными нодами:

Здесь:

Цвет1 первого нода «Умножить» подключен к выходу кадра «Рельеф песка»

Цвет2 первого нода «Умножить» подключен к выходу кадра «Большие волны»

Цвет2 второго нода «Умножить» подключен к выходу кадра «Гранулированность»

Поверхность нода «Вывод материала» подключена к выходу кадра «Цвет песка»

Как это работает...

Концепция структуры этого материала в основном такая же, как и для процедурного камня и также может быть поделена на этапы:

От шага 1 до 7 мы строили цветовую часть шейдера, смешивающую два по-разному окрашенных Диффузных шейдера на основании текстуры Шума (Цвет песка).

От шага 9 до 18 мы строили главный эффект рельефа (Рельеф песка), на этот раз подсоединённый непосредственно целиком ко входу Смещения нода Вывод материала, а не во вход Нормаль шейдера.

В шагах 20-25 мы строили эффект вспомогательного рельефа, на этот раз имитируя большие волны, которые вы обычно можете видеть в песчаных дюнах пустыни. Этот эффект остаётся в стороне от главного рельефа, чтобы его легко можно было уменьшить или устранить при надобности, и кроме того мы добавили два Математических нода, установленных на Умножить, которые управляются нодом Значение, чтобы автоматически устанавливать размер больших песчаных волн (на самом деле это больше эффект "частоты", то есть, чем больше величина, тем меньше и ближе друг к другу волны).

В шагах 28 и 29, мы построили последний эффект рельефа, чтобы добавлять, если необходимо, песчинки (Гранулированность), например, для объектов очень близких к камере. От 31 до 33 шагов мы суммировали все рельефные эффекты, под управлением величины Математического нода.

Каждый этап был "обрамлён" (нодом Кадр) и озаглавлен, чтобы сделать его более удобочитаемым в окне Редактора Узлов.

И больше...

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

Поместите курсор мыши в окно Редактора Узлов и нажмите B. В позиции курсора мыши появятся горизонтальная и вертикальная линии, щёлкните левой кнопкой и тащите мышь, чтобы охватить ноды рамкой, оставьте снаружи только Текстурные координаты, Отображение, и нод Вывод Материала. После отпускания кнопки мыши всё, что вы охватили, будет выбрано.

Нажмите Crtl + G и подтвердите, выбрав меню Создать Группу | Новый и создайте группу:

Как Вы можете видеть, все связи ко внешним нодам создаются с левой и правой стороны интерфейса группы. Переименуйте группу (в небольшом окне на верху-слева от интерфейса) на Sand_group.

Все отображённые координаты для нодов текстур — это Объект, так что одного входа Вектор достаточно. Замените все связи к нодам текстур на первый вход, затем удалите ненужные пустые сокеты, как показано здесь:

У меня в версии 2.73 входы и выходы подсоединены к отдельным нодам Вход группы и Выход группы. Пересоединить связи там можно точно также, добавлять новые нужно на самый нижний свободный выход нода, а удалить лишние входы и переименовать дополнительные нужно на N-панели справа — прим.пер.

Теперь нам нужно вывести наружу (expose) величины, чтобы мы могли модифицировать материал из интерфейса. Из входа Коэфф первого нода Умножить, щелкните и тащите связь на левую границу группы. Во вновь появившемся имени входного сокета, введите Big waves strength (сила Больших волн). Эта величина действительно управляет силой (величина умножения) рельефа Больших Волн суммированного с основным Рельефом песка.

Сделайте то же со вторым нодом Умножить и переименуйте этот вход на Granularity (Гранулированность, зернистость). Кроме того, эта величина будет управлять результатом умножения зернистости песка с остальной частью эффекта рельефа.

Теперь щелкните по ноду Значение у кадра Большие волны и нажмите X, чтобы удалить его. Щелкните и тащите на границу от второго сокета Значение первого нода Волны и переименуйте новый внешний сокет на Big waves repeat (повторение Больших волн). Также, щелкните и тащите связь из второго сокета Значение второго нода Волны и подключите его к сокету Big waves repeat. Щелкая по верхней небольшой стрелке сбоку от сокета, переместите его вверх перед входом Granularity.

Нам также нужно вытащить нод Умножить в кадре Суммарная сила рельефа, вытянув второй сокет Значение. Переименуйте новый сокет на интерфейсе как Bump strength (сила рельефа). Это, фактически, величина для общего рельефа материала.

Нажмите Tab, чтобы закрыть группу. На интерфейсе у нас есть элементы управления для увеличения или уменьшения общего эффекта рельефа, гранулированности песка, силы волн, и повторения. Мы можем вытащить даже больше величин, например, также количество первого рельефа для более тонкой настройки, и два цветовых поля в кадре Цвет песка.

Группа теперь доступна в меню Добавить (Add) (нажмите Shift + A и выберите Группа | Sand_group), и её можно легко использовать для других материалов на том же изображении с другими величинами интерфейса; или через связь/добавление из библиотеки в другом blend-файле.

Создание простого материала почвы с помощью процедурных текстур

В этом рецепте мы создадим базовый материал сырой земли.

Подготовка

Первым шагом нужно запустить Блендер и переключить на Cycles. Удалите куб по-умолчанию и добавьте плоскость. В режиме редактирования увеличьте её масштабированием в девять раз (сторона будет 18 единиц), затем следуйте за этими шагами:

Перейдите в окно Модификаторов объекта и назначьте плоскости модификатор Подразделения Поверхности. Переключите тип алгоритма с Catmull-Clark на Простой (Simple) и установите уровни Подразделения как для Вида так и для Рендера на 2.

Назначьте второй модификатор Подразделения Поверхности. Снова переключите тип на Простой и установите уровни Подразделения как для Вида так и для Рендера на 4.

Назначьте два модификатора Смещение поверхности (Displace). В первом назначьте текстуру Voronoi, увеличьте величину Размер до 1.80 и установите силу смещения на 0.400. Во втором назначьте текстуру Облаков, увеличьте величину Размер до 0.75 и величину Глубины на 5, установите Силу смещения также на 0.400.

На панели Инструментов включите Плавное Затенение (smooth).

Перейдите в окно Мира и щелкните по кнопке Использовать Узлы, затем щелкните по небольшому квадрату с точкой справа от поля цвета. Из меню выберите Текстуру Неба. Установите величину Силы на 0.250.

Выберите лампу, перейдите в окно Данных Объекта лампы и щелкните по кнопке Использовать Узлы. Затем измените тип Лампы на Солнце, установите величину Размер в 0.100, и величину Силы на 1.400. Измените цвет освещения на R 1.000, G 0.935, B 0.810. Переключив на ортогональный вид сверху, поверните Лампу Солнце на 90°.

Установите камеру так, чтобы получить хороший угол просмотра плоскости и переключите 3D-вид на вид из Камеры (нажмите 0 на нумпаде).

Разделите окно 3D-вида на две горизонтальные части и измените верхнюю на окно Редактора Узлов.

Установите для вида из Камеры режим Рендера.

Мы теперь готовы создать это:

Как это сделать...

Добавьте для плоскости новый материал и постройте для него такую нодовую сеть:

Текстурные координаты и Отображение оставлены по-умолчанию:

Кадр «Рельеф»:

Здесь все входы Вектор подключены к выходу нода Отображение.

Кадр «Цвет»:

Здесь:

Вход Вектор нода Текстуры шума подключен к выходу нода Отображение.

Входы Нормаль Диффузных шейдеров подключены к выходу кадра «Рельеф».

У нода Градиентная карта чёрный и белый движки установлены на треть со своих сторон, затем добавлен ещё один чёрный движок, установленный близко к первоначальному чёрному движку.

Выход кадра «Цвет» подаётся на вход Поверхность нода Вывод материала.

Как это работает...

Способом работы этот материал очень похож на материал песка:

Мы смешали два немного различающихся цвета, используя текстуру Шума как показатель-шаблон.

Мы создали шероховатость земли множеством процедурных текстур, чья общая сумма была затем подключена к входным сокетам Нормаль нодов Диффузных шейдеров.

Создание материала снега с использованием процедурных текстур

В этом рецепте мы создадим материал снега и также подделаем легкий эффект Подповерхностного рассеивания (Sub Surface Scattering). (На момент написания книги в версии 2.66 шейдера Подповерхностного рассеяния в Cycles ещё не было — прим. пер.)

Подготовка

Запустите Блендер и откройте файл 1301OS_03_start.blend.

Как это сделать...

Добавьте новый материал, назовите его Snow, и постройте для него такую нодовую сеть:

Ноды Текстурные координаты и Отображение отличаются от добавляемых по-умолчанию только половинным масштабом:

Кадр «Снег_Поверхность», его выход подаётся на вход Поверхность нода Вывод материала:

Здесь:

Цвет Диффузного и Глянцевого шейдеров оставлен по-умолчанию — R 0.8 G 0.8 B 0.8.

Цвет Просвечивающего шейдера (Translucent BSDF) — R 0.6 G 0.72 B 1.0.

Кадр «Снег_Рельеф», его выход подаётся на вход Смещения нода Вывод материала:

Здесь оба входа Вектор текстурных нодов подключены к выходу нода Отображение.

Как это работает...

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

Первый этап: Мы просто сделали базовый шейдер, смешивая Диффузный и Глянцевый шейдеры Показателем Преломления (IOR, Index Of Refraction) нода Френель (Fresnel). Эта величина преломления разделена Математическим нодом, чтобы получить более мягкий переход (попробуйте изменить эту величину с 10.000 на 1.000, чтобы увидеть полностью отличающийся эффект). Затем мы также смешали с голубоватым Просвечивающим (Translucent BSDF) шейдером, но придали преобладание основному шейдеру, устанавливая величину коэффициента во втором ноде Смешать шейдеры на 0.300. Просвечивающий шейдер дает появление света, просачивающегося через снег и видимый в затенённых областях объекта.

Второй этап: Здесь мы добавили два нода Текстуры Шума с разными величинами масштаба, чтобы имитировать мягкую снежную рельефность. Первые два математических нода Умножить отдельно устанавливают влияние каждого шума. Эти величины объединяются нодом Добавить и, наконец, поступают в еще один Математический нод, который установлен также на Умножить, чтобы установить общий вес эффекта рельефа, который, будучи непосредственно подключен ко входу Смещения нода Вывод материала, влияет на все шейдеры в сети.

Создание материала льда с использованием процедурных текстур

В этом рецепте мы создадим полупрозрачный материал льда.

Подготовка

Запустите Блендер и загрузите файл 1301OS_03_start.blend.

Удалите подразделённый куб и добавьте новый примитив куба.

На виде из Камеры, нажмите Shift + F и, используя среднюю кнопку мыши, приблизьте камеру для лучшего обзора куба.

Выберите фоновую плоскость и удалите её. Добавьте новую плоскость, всё ещё в режиме редактирования, масштабируйте её, увеличив в восемь раз. Выходите из режима редактирования и переместите её на одну единицу вниз по оси z. Назначьте ей материал Plane.

Установите цвет Мира на черный.

Выберите куб, войдите в режим редактирования и нажмите W. В выпадающем меню Специальные, выберите Подразделить. Нажмите T, и внизу панели Инструментов установите величину Количество разрезов на 2. Выходите из режима редактирования и нажмите T снова, чтобы спрятать панель Инструментов.

Перейдите на панель Модификаторов объекта и добавьте модификатор Подразделения поверхности. Переключите с Catmull-Clark на Простой и установите уровни Подразделения на 5.

Добавьте модификатор Смещения поверхности (Displace) и в окне Текстур щелкните на Создать и выберите текстуру Вороной (Voronoi); установите величину Размер на 1.20. В окне Модификаторов объекта установите Силу смещения на 0.050.

Добавьте новый модификатор Смещения поверхности, снова назначьте текстуру Вороной, но на этот раз установите величину Размер на 0.80. Установите Силу смещения на 0.075.

Добавьте третий модификатор Смещения поверхности, назначьте текстуру Вороной и оставьте размер по-умолчанию (0.25) неизменным. Установите Силу смещения на 0.020.

Переключите вид из Камеры на Рендер.

(Пожалуй, я ещё гладкое затенение (Smooth) сделал бы — прил. пер.)

Как это сделать...

Добавьте новый материал для куба, переименуйте его в Ice_01. Постройте для него следующую нодовую сеть:

Ноды Текстурные координаты и Отображения используются в неизменном виде. Можно их посмотреть, например, в рецепте про почву.

Основные ноды материала:

Здесь:

Цвет нодов BSDF стекла (Glass BSDF) и Глянцевый BSDF полностью белый – R 1.0 G 1.0 B 1.0.

Цвет нода Прозрачный BSDF (Transparent BSDF) – R 0.45 G 0.81 B 1.0.

Входы Вектор текстурных нодов подключены к выходу нода Отображение.

Вот, наконец, наш результат:

Как это работает...

На этот раз мы начали нодом смешивания шейдера BSDF Стекла и Прозрачного шейдера, с модуляцией нодом Френель, и мы установили Показатель преломления (IOR) как у нода Френель, так и у стекла, в величину льда. Мы также добавили шейдер Глянцевый BSDF, чтобы обеспечить зеркальность, смешанный нодом Вес слоя (Layer Weight) установленным в Поворот (Facing, то есть, чем больше нормаль меша обращёна к точке зрения, тем более очевидным является эффект зеркальности).

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

Создание материала чистой текущей воды

Простейший способ сделать шейдер воды — использовать стеклянный нод и установить величину IOR (показатель преломления, число, определяющее способность среды преломлять свет, проходящий через него) на 1.33, и действительно, этого должно быть достаточно; между прочим, хотя это физически корректно, но может не очень хорошо работать во всех условиях освещения или в конкретной ситуации. Лучшим методом будет использовать стеклянный шейдер, смешанный с другим нодом "отражательности" (specularity) и, в некоторых случаях, также с помощью текстуры.

Подготовка

Запустите Блендер и переключите на движок рендера Cycles. Выберите куб и масштабируйте его по крайней мере до шести единиц по оси z (нажмите S, затем Z, цифру 3, и Enter; куб по умолчанию — уже со стороной 2 единицы, так что 2 x 3 = 6). Затем уменьшите ширину до половины (нажмите S, затем Shift + Z, число 0.5, и Enter).

Войдите в режим редактирования, нажмите Ctrl + R, и поворачивайте колесико мыши, чтобы разделить куб на четыре горизонтальных разреза.

Выберите верхнюю и нижнюю грани и удалите их (нажмите X и выберите Грани (Faces)). Выходите из режима редактирования и установите кубу гладкое затенение (нажмите T, чтобы отобразить панель Инструментов слева и нажмите кнопку Гладко (Smooth) под Затенением).

Нажмите Ctrl + A и выберите Масштаб (Scale), чтобы применить кубу новый размер в качестве оригинала.

Переходите в окно Модификаторов объекта и назначьте модификатор Подразделения поверхности, установите уровни Подразделения на 6.

Добавьте модификатор Смещение поверхности (Displace). Щелкните кнопку Show textures in texture tab (Показать текстуру в панели текстур, как я уже писал, эта подсказка в Блендере почему-то до сих пор не переведена — прим. пер.), последний справа от слота Текстуры; появится окно Текстур. Щелкните по кнопке Создать (New), затем измените величину Размер встроенной текстуры Облаков на 0.50. В окне Модификаторов объекта установите силу смещения на 0.500.

Перейдите в окно Мира, щелкните по кнопке Использовать Узлы и измените цвет на R 0.118, G 0.129, B 0.142.

Войдите в окно Рендера и, в панели Сэмплирование (Sampling), измените Сэмплы на 100, как для Рендера, так и для Предпросмотра. Также, увеличьте величину Ограничить (Clamp) до 1.00.

Разделите окно 3D-вида на два горизонтальных окна и измените тип верхнего на окно Редактора Узлов.

Установите окно 3D-вида на вид из Камеры и в режим Рендера.

В окне Структура проекта (Outliner), выберите лампу, щелкните Использовать Узлы (Use Nodes) и установите величину Силы на 1000.000.

Как это сделать...

Выберите куб, включите Использовать Узлы в окне Материала, переименуйте материал в Running_water.

Сформируйте такую нодовую сеть:

Ноды Текстурные координаты и Отображение:

Основной материал:

Здесь цвет обоих шейдеров полностью белый — R 1.0 G 1.0 B 1.0.

Как это работает…

Материал Воды очень прост: это — шейдер BSDF Стекла (Glass BSDF), смешанный с Глянцевым BSDF (Glossy BSDF), чтобы обеспечить лучшую отражательность среды. Заметьте, что величина Шероховатость Глянцевого шейдера установлена на реально низкий уровень, в 0.010, чтобы обеспечить почти полноценные отражения, и, что индекс преломления как для шейдера Стекла, так и для нода Френель (Fresnel) – 1.330.

Текстура Musgrave — там просто для добавления «pattern» к шейдеру Running_water. Единственное различие между шейдером Running_water (для текущей воды) и шейдером Water_calm для воды, которая лежит в контейнерах, состоит в текстуре Musgrave и, конечно, в смещении, замененном в случае Water_calm модификатором Волна, чтобы обеспечить некоторую "жизнь".

И больше...

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

Добавьте Пустышку (нажмите Shift + A и выберите Пустышка с помощью мыши в окне 3D-вида) на сцену, в опорной точке куба. Снова выберите куб и перейдите в окно Модификаторов объекта. Теперь, в модификаторе Displace, под Текстурными координатами, переключите с Локального (Local) на Объект (Object); в только что появившемся новом поле Объект щелкните, чтобы выбрать имя пустышки Empty. Теперь смещение отображается на позицию этой пустышки.

Глядя на Временную шкалу (Timeline) внизу экрана, убедитесь, что текущим кадром является 1. Выберите Пустышку, нажмите I, и выберите Положение (Location). Таким образом будет установлен ключ положения для пустышки в кадре 1.

Теперь, на Временной шкале перейдите в кадр 25; переместите пустышку на 10 единиц по оси Z вниз, и снова нажмите I и выберите Положение (Location), чтобы установить второй ключ положения для пустышки.

На кнопке Разметки экрана сверху переключите с Default (по умолчанию) на Animation (анимация). В окне Редактора графов нажмите T и выберите Линейно (Linear), нажмите Shift + E и выберите Линейная Экстраполяция (Linear Extrapolation), чтобы сделать двадцатипятикадровую анимацию пустышки постоянной и непрерывной.

Переключитесь обратно на экран Default, перейдите в кадр 1 и выберите куб. В окне Редактора Узлов измените масштаб в ноде Отображения. Поместите мышь в величины Расположение (Location) и нажмите I; величины станут желтыми — это означает, что ключ назначен.

Перейдите в кадр 25, измените величину Расположение Z на -10.000 и снова нажмите I.

Переключите экран на Animation, снова нажмите T, выберите Линейно, нажмите Shift + E и выберите Линейная Экстраполяция в окне Редактора графов.

Глава 4. Создание искусственных материалов в Cycles

В этой главе мы изучим:

Создание материала типичного пластика

Создание материала бакелита

Создание расширенного материала пенопласта

Создание материала прозрачного полистирола (стеклопластика)

Создание материала резины

Создание материала античной бронзы с помощью процедурных текстур

Создание группы нодов универсального металла

Создание материала потёртого металла с помощью процедурных текстур

Создание материала ржавого металла с помощью процедурных текстур

Создание материала дерева с помощью процедурных текстур

Введение

По большей части, искусственные материалы очень просто воссоздать в Cycles. В предыдущих главах мы обсудили механику построения, главным образом с процедурными материалами, используя движок рендера Cycles. В следующей главе мы продолжим обсуждать примеры некоторых материалов, в частности обычно используемые; а именно искусственные материалы, начнём с одного или двух простых примеров материалов, продвигаясь к более сложным. Мы также бегло познакомимся с шейдерами обветшалых материалов, таких как потёртые или ржавые металлы.

Просто как примечание: по умолчанию, в Cycles на самом деле нет необходимости добавлять ноды для отображения текстурных координат в любой шейдерной сети; если они не определены, Cycles использует отображение координат Сгенерировать (Generated) для процедурных текстур и любой существующий слой UV-координат для Изображений-текстур.

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

Создание материала типичного пластика

В этом рецепте мы создадим шейдер обыкновенного пластика, добавив легкую неоднородность (granularity) на поверхность:

Подготовка

Запустите Блендер и загрузите файл 1301OS_04_start.blend. Это - подготовленная сцена с Сюзанной (примитив головы обезьяны, который также является талисманом Блендера), лежащей на плоскости, Камерой, Мешем-светильником и уже настроенным низкоинтенсивным серым Миром.

Как это сделать...

Создайте материал у Сюзанны и назовите его Plastic_green_soft.

Постройте такую сеть материала:

Здесь:

Зеленоватый цвет — R 0.04 G 0.8 B 0.19

Белый цвет — R 0.98 G 0.98 B 0.98

Как это работает...

Это — один из самых простых материалов, который вы можете построить в Cycles; он состоит из цветного Диффузного компонента смешанного на 50% с белым Глянцевым шейдером. Небольшая Текстура шума, подключенная непосредственно ко входу Смещения нода Вывод Материала, добавляет легкий точечный эффект рельефа ко всему материалу; этот эффект на самом деле необязателен, шейдер уже выглядит очень пластмассово без рельефа.

Создание материала бакелита

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

Подготовка

Запустите Блендер и снова загрузите файл 1301OS_04_start.blend.

Выберите меш Сюзанны и нажмите T; на панели Инструментов слева, выберите Плоско (Flat) в опциях Затенения; снова нажмите T, чтобы убрать панель Инструментов.

Перейдите в окно Модификаторов объекта на панели Свойств и установите уровни модификатора Подразделения поверхности как для Вида, так и для Рендера в 1.

Как это сделать...

Добавьте Сюзанне материал и назовите его Plastic_bakelite_black.

Постройте такую сеть материала:

Здесь:

Черный цвет — R 0 G 0 B 0.

Серый цвет — R 0.25 G 0.25 B 0.25

Как это работает...

Анизотропия - метод повышения качества изображения текстур на поверхностях, находящихся далеко и сильно повёрнутых к направлению взгляда; вид анизотропной поверхности изменяется при повороте относительно её геометрической нормали. В основном мы сделали тот же тип материала, как предыдущая зеленая пластмасса, но на этот раз мы расширили отражательность (зеркало) уменьшив величину Шероховатости. Мы также добавили эффект Анизотропного отражения с той же величиной Щероховатости и цвета, что у Глянцевого шейдера.

Величина Вращение (Rotation) шейдера Анизотропный BSDF устанавливает поток из ярких бликов в меше, направление зеркальности поворачивается при возрастании от 0.000 до 1.000.

И больше...

Давайте теперь попытаемся, начиная с черного, сделать иначе обработанный тип материала бакелита:

Выберите Диффузный, Глянцевый, Анизотропный, и два нода Смешать шейдеры и нажмите Ctrl + G, чтобы сделать группу; переименуйте её в Bakelite.

Щелкните и перетащите сокет Цвет Диффузного шейдера, чтобы выставить его наружу (expose); перетащите также сокет Коэфф нода Смешать шейдеры2 и переименуйте его в Aniso. Он будет управлять влиянием Анизотропного шейдера на Глянцевый. Щелкните и перетащите также сокет Коэфф нода Смешать шейдеры1 и переименуйте его в Блик (Spec): он управляет общим количеством зеркальности шейдера. Нажмите Tab, чтобы закрыть группу.

Теперь добавьте: нод Текстурные Координаты (Texture Coordinate, нажмите Shift + A и выберите Ввод | Текстурные Координаты); нод Отображение (Mapping, нажмите Shift + A и выберите Вектор | Отображение); нод Текстуры шума (Noise Texture, нажмите Shift + A и выберите Текстура | Текстура шума); нод Градиентная карта (ColorRamp, нажмите Shift + A и выберите Преобразователь | Градиентная карта); и нод Смесь (Mix, нажмите Shift + A и выберите Цвет | Смесь).

Подключите выход Объект нода Текстурные Координаты ко входу Вектор нода Отображение, затем подключите его выход ко входу нода Текстура шума. Подключите выход Цвет Текстуры Шума к входному сокету Коэфф нода Градиентная карта, и выход Цвет последнего ко входному сокету Цвет1 нода Смесь. Подключите выход Цвет нода Смесь ко входу Цвет нодовой группы Bakelite.

Установите у нода Текстура шума параметры: Масштаб (Scale) на 4.000, Детальность (Detail) на 4.200 и Искажение (Distortion) на 1.700.

Установите интерполяцию нода Градиентная карта на B-Сплайн, и переместите черный цветовой маркер на одну четверть направо, а белый цветовой маркер на одну четверть налево.

Установите Тип смешивания нода Смесь на Разделить (но поэкспериментируйте также с другими типами), величину Коэфф на 0.600 и величину Цвет2 на R 0.799, G 0.442, и B 0.220.

На интерфейсе нодовой группы Bakelite установите величину Блик на 0.300.

Дополнительно, разгладьте меш Сюзанны на панели Инструментов (T) и увеличьте уровни подразделения у модификатора Подразделения поверхности на 2.

Создание расширенного материала полистирола

В этом рецепте мы создадим материал классического белого расширенного пенопласта:

Подготовка

Запустите Блендер и загрузите файл 1301OS_04_start.blend.

Как это сделать...

Создайте для Сюзанны новый материал и переименуйте его в Plastic_expanded_polystyrene.

Постройте нодовую сеть для этого материала:

Ноды Текстурные координаты и Отображение оставлены по-умолчанию.

Вот остальные ноды:

Цвет Диффузного и Глянцевого шейдеров установлен в полностью белый — R 0.99 G 0.99 B 0.99.

Как это работает...

Вы, вероятно, обратили внимание, что этот рецепт является просто вариантом шейдера типичного пластика. Мы изменили Цвет на белый и, вместо нода Текстуры шума мы использовали нод Текстуры Вороного с отличающимся Масштабом, чтобы добавить типичный узор пенопласта; затем, увеличивая величину Шероховатость Глянцевого шейдера, мы сделали зеркальность более рассеянной.

Создание материала прозрачного полистирола (стеклопластика)

В этом рецепте мы создадим материал прозрачного стеклопластика; такой вы можете найти, например, в корпусе шариковой ручки:

Подготовка

Запустите Блендер и загрузите обычный файл 1301OS_04_start.blend.

Выберите меш Сюзанны и нажмите T. На панели Инструментов слева выберите Плоско (Flat) для опции Затенения, снова нажмите Т, чтобы убрать панель Инструментов.

Перейдите в окно Модификаторов объекта на панели Свойств и удалите модификатор Подразделения Поверхности. Добавьте модификатор Объёмность (Solidify) и установите Толщину на 0.0350. Добавьте модификатор Скоса (Bevel) и установите Ширину на 0.0025.

Как это сделать...

Добавьте новый материал и назовите его Plastic_clear_polystyrene.

Постройте такую сеть:

Здесь:

Цвет нода Прозрачный BSDF полностью белый R 1.0 G 1.0 B 1.0

Цвет Стеклянного и Глянцевого нодов — R 0.688, G 0.758, B 0.758

Создание материала резины

В этом рецепте мы создадим шейдер типичной резины:

Подготовка

Запустите Блендер и загрузите файл 1301OS_04_start.blend.

Как это сделать...

Добавьте новый материал и назовите его Rubber.

Постройте такую сеть:

Ноды Текстурные координаты и Отображение оставлены по-умолчанию.

Текстурно-цветовая часть сети:

Здесь нод RGB определяет цвет резины, текстурные ноды подключены к выходу нода Отображение.

Шейдерная часть сети:

Здесь:

Цветовые входы всех шейдерных нодов подключены к выходу нода Умножить.

Нод Умножить подключен к выходу нода Добавить.

Создание материала античной бронзы с помощью процедурных текстур

В этом рецепте мы создадим шейдер бронзы, подобный разрушенной античной статуе:

Подготовка

Запустите Блендер и загрузите файл 1301OS_04_start.blend.

С выбранной Сюзанной, щелкните на кнопке Режим в заголовке окна вида из Камеры и выберите Рисование по Вершинам (Vertex Paint); Сюзанна покроется незатеняемым белым цветом. (В версии 2.66 это действительно так, я пробовал, но в версии 2.73 затенение присутствует — прим. пер.)

Установите курсор мыши в пункте Кисть (Paint) слева от кнопки Режима, щелкните и выберите Черновой цвет вершин (Dirty Vertex Colors), затем нажимите T и в нижней части панели Инструментов задайте Силу размытия (Blur Strength) в 0.01, Черновой Угол (Dirt Angle) на 90, и отметьте опцию Только начерно (Dirt Only).

Перейдите в окно Данных объекта на панели Свойств. В поле Имя под субпанелью Цвета Вершин (Vertex Colors), переименуйте слой цветов вершин в V_col. (В версии 2.73 поля Имя отсутствует, переименовать слой можно прямо в списке слоёв — прим. пер.)

Возвращайтесь в режим Объектов и нажмите T, чтобы убрать панель Инструментов.

Как это сделать...

Теперь давайте создадим материал.

Добавьте материал и назовите его Bronze_antique.

Вся нодовая сеть выглядит так:

Ноды Текстурные координаты и Отображение оставлены по-умолчанию.

Текстурная часть сети:

Здесь:

Цвет2 нода Разница установлен в полностью белый.

Белый движок нода Градиентная карта 1 сдвинут на одну четверть слева.

Черный движок нода Градиентная карта 2 сдвинут на одну треть слева, а белый на одну треть справа.

Все входы Вектор текстурных нодов подключены к выходу нода Отображение.

Следующая часть:

Здесь:

У нода Смесь Цвет1 — R 0.96 G 1.00 B 0.68 и Цвет2 — R 0.22 G 0.03 B 0.03

Вход Цвет2 нода Прожигание подключен к цветовому выходу нода Текстура шума 1.

Шейдерная часть:

Здесь:

Вход Цвет1 нода Наложение подключен к выходу нода Прожигание.

Вход Цвет2 нода Наложение и вход Цвет 1 нода Смесь подключены к выходу нода Градиентная карта 1.

Вход Цвет 2 нода Смесь подключен к выходу нода Текстура шума 1.

Второе Значение нода Добавить подключено к выходу нода Градиентная карта 2.

В поле Имя нода Атрибут название слоя вершин V_col нужно вписать вручную.

Как это работает...

Мы используем слой цветов вершин, настроенный в секции Готовимся, как карту-шаблон, чтобы распределить цвета Диффузного и Глянцевого шейдеров, управляемых также опцией Поворот (Facing) входного нода Вес Слоя.

В остальном, большая часть эффекта состоит в рельефе, полученном из текстур Шума и Масгрейв, смешанных и зажатых определённым образом нодами Градиентная карта.

Как обычно, последний Математический нод, установленный на Умножить, определяет силу рельефа.

Создание группы нодов универсального металла

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

Подготовка

Запустите Блендер и загрузите файл 1301OS_04_start.blend.

Как это сделать...

Добавьте новый материал и начните строить нодовую сеть.

Сначала добавьте такую сеть, из которой будет состоять нодовая группа:

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

По-умолчанию, если в версии 2.73 открыть материал с нодом Рельеф, созданным в более ранней версии, то параметр Расстояние становится равным 0.1, что совсем не подходит для группы Metal, создаваемой здесь. В своём переводе этого раздела я исправил этот параметр, но если вы будете использовать готовую нодовую группу, с сайта издательства, то вам придётся самостоятельно её исправить — дополнение пер.

Выделите все эти ноды, и нажмите Ctrl-G, чтобы объединить их в группу, назовите новую группу Metal:

Теперь нужно соединить входы и один выход группы, результат должен быть таким (подробно про создание нодовых групп описано во второй главе):

(У меня создалось стойкое ощущение, что нод Добавить здесь ни на что не влияет, и можно было сразу соединять входной Цвет с цветовыми входами шейдерных нодов — прим. пер.)

Как это работает...

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

IOR, Индекс преломления: преломляющий индекс материала является числом, которое описывает то, как свет распространяется через этот материал.

В ноде, параметр Показатель преломления (IOR) управляет смешиванием Диффузного компонента с Зеркальным, состоящего из Глянцевого и Анизотропного шейдеров, объединенных в сочетании друг с другом, но смешиванием которых, в свою очередь, можно управлять соответственно через параметр Aniso_Amount.

Параметры Анизотропия и Вращение Анизотропного шейдера также выставлены наружу, как и вход Тангенс — в случае конкретного отображения эту опцию можно использовать (например, слой UV-координат).

Сокет Рельеф позволяет подсоединить любую текстуру, а сокет интерфейса Bump_Strength устанавливает суммарное влияние рельефа.

Выход нода Рельеф подсоединён ко всем трём входам Нормаль Диффузного, Глянцевого, и Анизотропного шейдеров, чтобы сохранить согласующийся эффект среди всех компонентов.

Аналогично, как у Глянцевого, так и у Анизотропного шейдеров, величины Шероховатость выведены единственным входом интерфейса.

Наконец, точно так же сделано для цвета металла, он распределён среди всех трех компонентов шейдера; нод Добавить, вставленный перед ними, должен повысить это (дополнительно вы могли бы также вывести наружу его величину Коэфф для дальнейшей настройки).

Для ознакомления с полным списком Показателей преломления материалов (IOR), вы можете бегло взглянуть на следующие сайты:

http://refractiveindex.info/

http://www.robinwood.com/Catalog/Technical/Gen3DTuts/Gen3DSet.html

http://forums.cgsociety.org/archive/index.php/t-513458.html

Заметьте, что для некоторых материалов (особенно металлов), разные списки сообщают различные величины IOR.

Создание материала потёртого металла с помощью процедурных текстур

В этом рецепте мы создадим шейдер потёртого металла:

Подготовка

Запустите Блендер и загрузите файл 1301OS_04_start.blend.

С выбранной Сюзанной щелкните по кнопке Режим в заголовке вида из Камеры и выберите Рисование по вершинам (Vertex Paint) — Сюзанна станет покрыта незатенённым белым цветом.

Установите курсор мыши на опции Кисть (Paint) слева от кнопки Режим, щелкните и выберите Черновой Цвет Вершин (Dirty Vertex Colors), затем нажмите T и в нижнем окне панели Инструментов установите Силу Размытия (Blur Strength) на 0.01, Черновой Угол (Dirt Angle) на 90, и отметьте опцию Только начерно (Dirt Only).

Перейдите в окно Данных объекта под панелью Свойств, и в поле Имени субпанели Цвета Вершин, переименуйте слой цветов вершин Col_vp.

Возвращайтесь в режим Объектов и нажмите T, чтобы убрать панель Инструментов. На панели Свойств вернитесь к окну Материалов.

Как это сделать...

Из файла 1301OS_04_metal.blend | NodeTree добавьте нодовую группу Metal.

Добавьте новый материал и назовите его Worn_Metal.

Теперь, после присоединения нодовой группы из другого файла, появилась возможность добавлять её к нодовой сети через подменю Группа. Добавьте её, продублируйте, и измените Диффузный шейдер на нод Смешать шейдеры. Соедините их:

Здесь Цвет верхнего шейдера Metal — R 0.23 G 0.31 B 0.30, Цвет нижнего — R 0.58 G 0.79 B 0.77.

На вход Коэфф нода Смешать шейдеры подаётся выход Кадра Vertex Color Stencil (впишите имя карты цветов вершин Col_vp в поле нода Атрибут):

Первая текстурная сеть:

Вторая текстурная сеть:

Здесь у правого нода Градиентная карта у левой границы добавлен третий движок серого цвета (RGB 0.5).

Выходы текстурных сетей складываются нодом Добавить с установленным ограничением. Его выход подаётся на вход Рельеф нижнего шейдера Metal:

На все ноды Отображение и на входы Тангенс шейдеров Metal подаётся выход Объект нода Текстурные координаты.

Общий вид нодовой сети:

Как я писал в предыдущем разделе, между разными версиями Блендера нет полной обратной совместимости. В версии 2.66, для которой писалась эта книга, материал смотрится отлично, как на иллюстрации в начале раздела. А вот в версии 2.73 нужно поправить группу Metal, ко входу Рельеф которой подсоединены текстуры: увеличить параметр Расстояние нода Рельеф внутри группы до 1.0, и увеличить параметр Bump_Strength всей группы с 0.05 хотя бы до 0.4 или ещё больше, но результат всё равно немного отличается — прим пер.

Как это работает...

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

И больше...

Очевидно, что не только через слой Черновой Цвет вершин можно модифицировать и улучшить раскраску вершин меша, но мы могли бы также использовать, вместо этого, черно-белое изображение, нарисованное, например в Gimp, или в сразу в самом Блендере и, затем, отображенный через UV-развёртку на меш, чтобы получить более точно локализованные или специфические эффекты потёртости.

Создание материала ржавого металла с помощью процедурных текстур

В этом рецепте мы создадим шейдер ржавчины для смешивания по трафарету (stencil) с металлическим шейдером:

Подготовка

Запустите Блендер и загрузите файл 1301OS_04_start.blend.

Как это сделать...

Присоедините нодовую группу Metal из файла 1301OS_04_metal.blend | NodeTree.

Добавьте новый материал и назовите его Rusty_Metal.

Общий вид сети материала:

Ноды Текстурные координаты и Отображение оставлены по-умолчанию.

Кадр Трафарет (Stencil):

Здесь входы Вектор текстурных нодов подсоединены к выходу нода Отображение.

Кадр Цвет_Ржавчины (Rust_Color):

Здесь:

Вход нода RGB-кривые подключен к выходу Коэфф нода Текстура шума кадра Трафарет.

Вход Текстуры шума подключен к ноду Отображение.

Движки нодов Градиентная карта слева-направо:

R 0.99 G 0.59 B 0.08,

R 0.93 G 0.46 B 0.11,

R 0.62 G 0.25 B 0.05,

R 0.42 G 0.16 B 0.07,

R 0.25 G 0.10 B 0.03,

R 0.11 G 0.01 B 0.01.

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

Цвет2 нода Наложение полностью белый (RGB 1.0).

Кадр Рельеф_Ржавчины (Rust_Bump):

Здесь все три текстурных нода подключены к ноду Отображение.

Кадр Шейдеры и Вывод:

Здесь:

Вход Высота нода Рельеф подключен к выходу кадра Рельеф_Ржавчины.

Цветовой вход Диффузного шейдера подключен к выходу кадра Цвет_Ржавчины.

Вход Коэфф нода Смешать шейдеры подключен к выходу кадра Трафарет.

Вход Тангенс нодовой группы Metal подключен к выходу Объект нода Текстурные координаты.

Цвет группы Metal: R 0.23 G 0.31 B 0.30

Снова замечание по поводу нода Рельеф. Основные соображения смотрите в разделе про построение нодовой группы Metal, здесь только покажу вид этого нода для версии Блендера 2.66. Автор здесь использует отрицательную величину Силы, в новой версии вместо этого нужно отметить галочку Инвертировать — прим. пер.

Как это работает...

Фактически здесь используются два шейдерных нода: группа Metal (для полированного металла) и Диффузный нод (для ржавчины). Кадр Трафарет (STENCIL) выделяет ржавчину на поверхности металла.

Кадры Рельеф_ржавчины и Цвет_ржавчины определяют соответствующие свойства ржавого материала.

Глава 5. Создание сложных природных материалов в Cycles

В этой главе мы изучим:

Создание материала океана, с использованием процедурных текстур

Создание материалов подводного окружения

Создание горного заснеженного пейзажа с помощью процедурных текстур

Создание реалистичной планеты Земля, как её видно из космоса

Введение

В главе 3, Создание природных материалов в Cycles, мы видели некоторые из простых природных материалов, которые можно построить в Cycles, вне какого-либо контекста ландшафта, чтобы сделать их более доступными для понимания.

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

Создание материала океана, с использованием процедурных текстур

В этом рецепте мы будем строить материал поверхности океана, используя модификатор Ocean и процедурные текстуры для создания пены, и создадим набор нодов, чтобы расположить её на более высоких частях волн, как показано здесь:

Подготовка

Прежде, чем мы начнем создание шейдера, давайте приготовим сцену с океаном:

Запустите Блендер и переключите на движок рендера Cycles. Выберите куб и удалите его (нажмите Х).

Добавьте плоскость (наведите мышь на окно 3D-вида и нажмите Shift + A и выберите Добавление полисеток | Плоскость). В режиме объектов масштабируйте её до 0.300. Не применяйте размер.

Перейти к окну Модификаторов объектов и назначьте модификатор Океан (Ocean). Установите следующие значения: Геометрия (Geometry) на Генерацию (Generate), Повторять по X (Repeat X) и Повторять по Y (Repeat Y) на 4, Пространственный размер (Spatial Size) на 20, и Разрешение (Resolution) на 12.

Нажмите кнопку N, и в панели Преобразование установите эти значения для текущего местоположения плоскости: Х -6.9, Y -7.0, Z 0.0.

Убедитесь, что вы находитесь в кадре 1, и поместите курсор в поле Время (Time) модификатора, нажмите I, чтобы добавить ключ для анимации. Перейдите в кадр 25, измените значение времени с 1,00 на 2,00 и снова нажмите I, чтобы установить второй ключ.

В кнопке текущей раскладки экрана вверху переключите с Default на Animation. В окне редактора Графов нажмите Т, выберите Линейно (Linear) и нажмите Shift + E для перехода к линейной экстраполяции, чтобы анимация океана стала постоянной и непрерывной.

Переименуйте плоскость в Ocean_surface.

Разместите камеру, чтобы иметь хороший угол обзора океана, а затем перейдите к виду из камеры (нажмите 0 на цифровой клавиатуре).

Добавьте куб в середине сцены и, если хотите, также UV-Сферу на переднем плане. Разместите их рядом зависшими в воздухе, их единственной целью будет отражаться от поверхности океана.

Перейдите к окну Мира, нажмите на Использовать узлы, а затем нажмите на маленький квадрат с точкой с правой стороны от поля Цвет. Из полученного меню выберите Текстура неба (Sky Texture).

Выберите лампу, нажмите на Использовать узлы и установите для света желтоватый цвет (R 1.000, G 0.989, B 0.700). Переключите лампу на Солнце, установите значение Размер 0,010 и значение Силы на 2.500.

Перейдите в окно визуализации (Render), и на вкладке Сэмплирование (Sampling) установите значение Ограничить (Clamp) на 1,00 и Сэмплы (samples) как для Рендера, так и для Предпросмотра в 100.

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

Добавьте новую плоскость, в режиме редактирования увеличьте её масштабированием в 10 раз (получится 20 единиц с каждой стороны). Переместите, чтобы расположилась на месте плоскости океана, а затем опустите на 1 единицу вниз по оси Z.

Снова в режиме редактирования нажмите W, чтобы подразделить её с помощью меню Специальные (Specials). Затем нажмите T, чтобы слева появилась панель Инструментов, и в поле Количество разрезов выберите 3.

Перейдите в режим раскрашивания вершин и покрасьте очень простым черно-белым градиентом, переходя от среднего темно-серого в вершинах, близких к расположению Камеры до просто белого цвета на противоположной стороне. В окне данных объекта на вкладке Цвета вершин (Vertex Colors), переименуйте слой цвета вершин в Col_emit.

Переименуйте плоскость в Ocean_bottom.

Как это сделать…

Сначала создадим подводный шейдер. Выберите плоскость Ocean_bottom и добавьте ей материал. Переименуйте его в ocean_bottom.

Вот как выглядит простая сеть для него:

Здесь:

Коричневатый цвет: R 0.18 G 0.15 B 0.08

Голубоватый цвет: R 0.21 G 0.28 B 0.38

Теперь перейдём к созданию шейдера поверхности. Он создаётся в 4 этапа.

Этап 1. Вода

Создайте кадр ВОДА в соответствии с этой иллюстрацией:

Здесь:

Цвет нода RGB – R 0.06 G 0.12 B 0.04.

Цвета Глянцевого и Стеклянного шейдеров светло-серые — RGB 0.8.

Выделите все ноды этого кадра и нажмите Ctrl + G, чтобы создать группу. Группа не имеет входов, и есть только один выход. Нажмите Tab, чтобы её закрыть. Назовите группу Ocean_water. Подробнее про создание групп и работу с ними смотрите во 2 главе.

Этап 2. Пена

Создайте кадр ПЕНА. Его общий вид:

Текстурная часть кадра:

Средняя часть кадра:

Здесь:

Все 4 нода Градиентная карта слева подключены к выходам Цвет текстурных нодов соответственно своему расположению.

Верхний нод Градиентная карта: черный движок — 0.345, белый — 0.633.

Второй и третий сверху ноды Градиентная карта: черный движок — 0.16, белый — 0.938.

Нижний нод Градиентная карта: черный движок — 0.0, белый — 1.0.

Нод Градиентная карта справа: черный движок — 0.298, белый — 0.486.

Все вычисляющие ноды построены из нода Смесь RGB.

Правая (шейдерная) часть кадра ПЕНА:

Здесь:

Вход Цвет1 нода Вычесть подключен к выходу правого нода Градиентная карта.

Вход Цвет2 нода Вычесть подключен к ноду Вычесть из средней части.

Цвет Диффузного шейдера светло-серый — RGB 0.8.

Создайте из этого кадра группу (Ctrl-G). У неё тоже нет входов, есть два выхода: Цвет у нода Вычесть и BSDF у Диффузного шейдера. Назовите группу Foam (Пена).

Этап 3. Расположение пены

Создайте кадр РАСПОЛОЖЕНИЕ_ПЕНЫ. Его общий вид:

Верхняя часть кадра:

Здесь:

Нод Умножить построен из нода Математика.

Нод Разница построен из нода Смесь RGB.

Белый движок нода Градиентная карта расположен на 0.344.

Нижняя часть кадра:

Здесь:

В нод Градиентная карта добавлен полностью черный движок в позиции 0.068.

Вход Цвет1 нода Прожигание подключен к выходу нода Градиентная карта верхней части.

Создайте из этого кадра группу (Ctrl-G). У неё тоже нет входов, есть один выход Цвет нода Прожигание. Назовите группу Foam_location (Расположение пены).

Этап 4. Объединение сети

С использованием 3-х созданных групп постройте сеть материала поверхности:

Здесь ноды Умножить и Прожигание созданы из нода Смесь RGB.

Чтобы впоследствии было понятнее, в полях Метка экземпляров групп тоже можно проставить переведённые на русский язык названия, но уникальные названия групп лучше пусть останутся на латинице — прим. пер.:

Как это работает…

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

Первый этап: Здесь, мы создали основной шейдер океанской воды путем смешивания шейдера Стекла с Прозрачным шейдером в соответствии со значением Поворот (Facing) нода Вес слоя, а затем с Глянцевым шейдером в соответствии с индексом преломления воды (значение IOR нода Френель, которое для воды при 20°С составляет около 1,333). Короче говоря, это означает, что поверхность океана красиво отражает окружающую среду, но для граней, направленных в сторону камеры (фактор Поворот), она прозрачна и показывает "подводное шоу" через себя. Очень важной является нижняя плоскость океана, она используется для имитации объема воды, подводной перспективы, а также излучает свет для усиления эффекта отражения солнца от поверхности океана на любой плавающий объект:

Второй этап: Здесь мы работали над материалом для пены, простым белым Диффузным шейдером. На самом деле, специфика шейдера пены состоит в основном в пенной шероховатости и в кружево-образном контуре, сделанном с помощью процедурных текстур:

Третий этап: Эта группа нодов определяет местоположение пены, которая, в реальном мире, в основном, появляется в верхних участках волн, и эта группа ведет себя как «карта-трафарет» (stencil) в градациях серого. Это немного сложнее, но в основном текстуры градиента отображается на Положение (вершин) и умножается на координаты Нормали меша океана, которые, будучи созданы модификатором Океан, постоянно меняются. Таким образом, как только волны поднимаются, они показывают пену на вершине. Эффект был уменьшен и сделан немного случайным, чтобы отобразить некоторое количество пены, разбросанной также по всей остальной поверхности. Это работает не только для фото, но и в анимации. На следующем рисунке вы можете увидеть результат черно-белой "маски", используемой в качестве трафарета для расположения пены:

Смотрите также

В Блендере модификатор Океан может создать свой собственный эффект пены, сгенерированный в виде цветов вершин и запеченный в серии изображений (кадров), сохраненных в каталоге на диске. Эти изображения затем автоматически отображаются на поверхность, и могут быть использованы также в качестве трафаретной маски вместо группы нодов Foam_location. Чтобы узнать больше о модификаторе Океан, вы можете взглянуть на вики-документацию по адресу http://wiki.blender.org/index.php/Doc:2.6/Manual/Modifiers/Simulate/Ocean.

Создание материалов подводного окружения

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

Подготовка

Давайте начнем с подготовки сцены:

Запустите Блендер и переключите на движок рендера Cycles. Выберите куб и перейдите в режим редактирования, увеличьте его масштабированием в 21 раз (нажмите A, чтобы выбрать всю геометрию, а затем нажмите S, число 21 и нажмите Enter), а затем масштабируйте его по оси Z в 0.300 (нажмите S, затем Z, число 0,3, и Enter).

Выйдите из режима редактирования, перейдите на окно Модификаторов объектов, и назначьте модификатор Подразделение поверхности (Subdivision Surface). Установите тип подразделения в Простой (Simple) и параметр Подразделение как для Просмотра, так и для Визуализации в уровень 4.

Добавьте второй модификатор Подразделение поверхности, установите тип подразделения в Простой и параметр Подразделение для Просмотра и Визуализации в уровень 2.

Теперь назначьте модификатор Океана. Установите Геометрию на Смещение поверхности (Displace), Пространственный размер (Spatial Size) на 20, и Разрешение (Resolution) на 12.

Перейдите в окно Данных объекта и нажмите на кнопку + на панели UV-карты, чтобы добавить набор UV-координат. Здесь нет необходимости разворачивать куб.

Нажмите кнопку N и в панели Преобразование установите эти значения для куба: Положение на X 3.226, Y 2.796, Z -0.204.

Убедитесь, что вы находитесь в кадре 1, и поместите курсор мыши в модификаторе в поле Время, нажмите I, чтобы добавить ключ для анимации. Перейдите в кадр 25, измените значение времени с 1,00 на 2,00 и снова нажмите I, чтобы установить второй ключ.

В верхней части экрана поменяйте Разметку экрана (Screen lay-out) с Default на Animation. В окне Редактора графов, нажмите Т и выберите Линейно (Linear), затем нажмите Shift + E и выберите Линейную экстраполяцию (Linear Extrapolation), чтобы анимация океана была постоянной и непрерывной.

Переименуйте куб в Ocean_surface.

Переместите камеру ниже поверхности океана (задайте Положение на X 20.0 Y 0.15 Z -2.5, и Вращение на X 92° Y 0° Z 90°), и затем перейдите к виду из Камеры (нажмите 0 на нумпаде).

Добавьте куб, UV-сферу, или любой другой объект, который вам нравится, плавающий под поверхностью океана. Обеспечьте их очень простыми цветными Диффузными материалами. Кроме того, добавьте большой цилиндр на фон, ближе к концу куба океана, наполовину погруженный в воду и наполовину находящийся на воздухе, и тоже назначьте ему простой диффузный материал.

Перейдите к окну Мира, нажмите на Использовать узлы, а затем нажмите на маленький квадрат с точкой справа от поля цвета. В появившемся меню выберите Текстура неба (Sky Texture).

Выберите лампу, нажмите на Использовать узлы и задайте желтоватый цвет для света (R 1.0, G 0.99, B 0.70). Переключите её тип на Солнце (Sun) и установите значение Размер в 0,010, а значение Силы в 2.500. Установите значение Вращения (Rotation) для объекта лампы как: X 22°, Y -7°, и Z 144°; как вы уже знаете, для лампы Солнце местоположение не имеет значения.

Перейдите к окну Рендера и на вкладке Сэмплирования (Sampling) установите значение Ограничить (Clamp) на 1,00, а Сэмплы (samples) на 50 для Предпросмотра и 100 для Визуализации. На вкладке Пути света (Light Paths), отметьте опцию Без каустики (No Caustics). (В версии 2.73 вместо опции Без каустики присутствуют две обратные опции Reflective Caustics и Refractive Caustics. Как я понимаю, в нашем случае их обе надо отключить. — прим. пер.)

Теперь добавьте плоскость, переместите её по оси Z до -5,70, и перейдите в режим редактирования. Масштабируйте её, увеличив в 30 раз (нажмите A, чтобы выбрать всю геометрию, затем S, число 30, и нажмите Enter). С помощью меню Специальные (Specials, нажмите W), подразделите плоскость пять или шесть раз. Активируйте инструмент Пропорционального редактирования, случайным образом выберите вершины, и перемещайте, моделируя дюны океанского дна. Далее, выйдите из режима редактирования, разгладьте (smooth) её с помощью панели Инструментов, и назначьте модификатор Подразделение поверхности (Subdivision Surface) с уровнем 2. Переименуйте созданный объект дна в Ocean_bed.

Добавьте куб, в режиме редактирования подразделите его пару раз (нажмите W и перейдите к Подразделить со сглаживанием). В режиме Пропорционального редактирования, выбирая и двигая вершины, быстро смоделируйте большой круглый камень. Продублируйте его три или четыре раза, поворачивая и масштабируя копии, и разбросайте их по дну океана.

В качестве альтернативы, просто откройте файл 1301OS_05_ underwater_start.blend и используйте уже выстроенную сцену (для вас, лентяи!).

Как это сделать…

Во-первых, начнём с простых шагов, где мы добавим уже созданные материалы, чтобы повторно их использовать:

Из файла 1301OS_03_rock_procedural.blend добавьте материал Rock_ procedural_01. Выберите камни, и назначьте им только что добавленный материал. Измените два цвета Диффузных шейдеров на R 0.553, G 0.576, B 0.608 и R 0.567, G 0.391, B 0.314, соответственно.

Из файла 1301OS_03_ground.blend добавьте материал ground_01, выберите океанское дно и назначьте ему этот материал.

Теперь, более сложные шаги:

Из файла 1301OS_05_ocean.blend, добавьте материал ocean_surface, выберите куб поверхности океана и назначьте ему этот материал. Переименуйте его в ocean_surface_under.

Перейдите в режим редактирования, выберите только верхние грани куба океана. Нажмите Ctrl + I, чтобы инвертировать выделение. В окне Материала на панели свойств нажмите справа на значок + (Добавить новый слот материала), переименуйте новый материал на Null (или что-то, что имеет для вас смысл), и нажмите на кнопку Назначить (Assign). Теперь куб океана имеет два материала: прозрачной поверхности воды и непрозрачные стены / низ (простой белый Диффузный материал). После этого выходите из режима редактирования.

В окне Материала нажмите на материал ocean_surface_under, чтобы выбрать его. В окне Редактора узлов удалите группы нодов Foam и Foam_location, а также удалите два узла Смесь. Просто чтобы прояснить ситуацию, разгруппируйте (нажмите Alt + G) оставшуюся нодовую группу Ocean_water.

На время отодвиньте кадр ВОДА (WATER) и нод Смешать шейдеры в сторону для удобства. Добавьте нод Текстурные координаты (нажмите Shift + A и перейдите к Ввод | Текстурные координаты), нод Отображение (нажмите Shift + A и перейдите к Вектор | Отображение), и нод Изображение-текстура (нажмите Shift + A и перейдите к Текстура | Изображение-текстура). Подключите выход UV нода Текстурные координаты ко входу Вектор нода Отображение, а его выход Вектор к входному сокету Вектор нода Изображение-текстура.

В ноде Изображение-текстура загрузите текстуру caustics_tileable_ low.png и установите цветовое пространство в Нецветовые данные (Non-Color Data).

Добавьте шейдеры Диффузный BSDF и Прозрачный BSDF. Добавьте новый нод Смешать шейдеры. Подключите выход Диффузного шейдера на первый шейдерный вход этого нода Смешать шейдеры, а выход Прозрачного шейдера на второй. Подключите цветовой вывод нода Изображение-текстура на цветной входной сокет шейдера Прозрачный BSDF и выход Альфа на вход Коэфф. того же нода Смешать шейдеры.

Теперь соедините выход второго нода Смешать шейдеры к первому до сих пор пустому входному сокету Шейдер первого нода Смешать шейдеры.

Добавьте нод Путь света (Light Path, нажмите Shift + A и перейдите к Ввод | Путь света), и подключите выход Луч из камеры (Is Camera Ray) ко входу Коэфф. первого нода Смешать шейдеры, как показано здесь:

И вот куда мы добрались:

Чего теперь не хватает, так это глубинного подводного эффекта атмосферной перспективы. Существует несколько способов получить её, например, путем композитинга Тумана, отрендеренного во Встроенном рендере (Blender Internal), но мы собираемся сделать это с помощью нодовой группы, назначенной каждому из различных материалов:

Добавьте нод Данные камеры (нажмите Shift + A и перейдите к Ввод | Данные камеры), нод Математика (нажмите Shift + A и перейдите к Преобразователь | Математика), нод Излучение (Нажмите Shift + A и перейдите к Шейдер | Излучение), и нод Смешать шейдеры (нажмите Shift + A и перейдите к Шейдер | Смешать шейдеры).

Подключите выход Z-глубина вида нода Данные камеры к первому входу Значение нода Математика. Установите операцию Математического нода в Умножить, а второе значение на 0,030, установите флажок С ограничением (Clamp). Подключите выход нода Умножить к входному сокету Коэфф нода Смешать шейдеры.

Подключите вывод нода Излучение на второй вход Шейдер нода Смешать шейдеры и установите цвет R 0.040, G 0.117, B 0.124.

Выберите все эти новые ноды и нажмите Crtl + G, чтобы создать группу. Нажмите и перетащите первый входной сокет Шейдер нода Смешать шейдеры и выставьте его наружу (expose) слева, сделайте то же самое справа для выходного сокета Шейдер. Переименуйте группу в Fog_underwater, как показано здесь (в версии Блендера 2.73 группу можно переименовать только снаружи её, в ноде, который её отображает, поэтому прилагаю две иллюстрации — прим. пер.):

Закройте группу (нажмите Tab, чтобы выйти из режима редактирования) и вставьте ее непосредственно перед нодом Вывод материала каждого материала (в нашей сцене он покажет восемь пользователей, если опция Fake User также выбрана).

Как это работает...

Прежде всего, почему куб для поверхности океана вместо простой плоскости?

Причина очень проста: в Cycles Мир излучает свет, и единственный способ избежать этого — сделать его цвет чёрным, как смоль (или комбинировать нод Пути света (Light Path) с материалами Мира, но это уже другая история). В нашей сцене Мир устанавливается в цвет ярко голубого неба, и с плоскостью подводные объекты и дно океана были бы также слишком сильно освещены с боков и снизу, тем самым давая неестественный результат. Куб, вместо этого, закрывает все подводные элементы, ограничивая освещение излучением лампы Солнце, проходящим через поверхность, и проецирующим изображение текстуры каустики — что является более естественным поведением.

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

Благодаря выходу Луч из камеры (Is Camera Ray) нода Путь света (Light Path) текстура изображения каустики не отображается непосредственно на поверхности океана, но всё ещё оказывает влияние на другие материалы. Поскольку Луч из камеры равен 1, лучи, начинающиеся от камеры и попадающие непосредственно на поверхность океана могут рендерить только материал "чистой" воды, подключенный во второй входной сокет нода Смешать шейдеры, в то время как пропускаемая сквозь поверхность каустика (подключенная к первому сокету, т.е. 0) будет отрендерена.

Наконец, нодовая группа Fog_underwater — это просто излучающий материал, окрашенный в цвет фона (в данном случае, темно-зеленый), и он отображается на каждом подводном материале в соответствии с расстоянием (Z-глубиной) от камеры (но он работает также вне поля зрения камеры). «Плотность» тумана устанавливается вторым Значением нода Умножить; в случае океана, значение 0,030 кажется достаточно подходящим. Ось Z камеры не следует путать с осью Z глобальных координат, которой в Блендере является вертикальная синяя линия, видимая в окне 3D-вида. В отличие от неё, осью Z камеры является воображаемая линия, проведённая от начальной точки зрения (положение камеры) до какого-либо видимого элемента в сцене.

Обратите внимание, что мы не стали выставлять наружу параметры нодов в группе Fog_underwater. Это потому, что так мы можем настраивать, в режиме редактирования, внутренние значения только одного нода, и при этом будут автоматически обновляться все экземпляры группы Fog_underwater, назначенные другим материалам, а мы знаем, что значения, выставленные на интерфейс группы, будут перезаписывать внутренние настройки только для одного этого экземпляра нода.

Создание горного заснеженного пейзажа с помощью процедурных текстур

В этом рецепте мы будем создавать снежный горный пейзаж путем повторного использования уже сделанных шейдеров, а именно материалов Rock_procedural и Snow. Мы усовершенствуем эти материалы, сгруппировав их и выставив в интерфейсе нужные параметры; затем мы создадим новую нодовую группу, работающую в качестве трафарета (stencil), чтобы разложить снег более естественным образом на скалах, как показано здесь:

Подготовка

Как обычно, начнем с подготовки сцены, даже если в этом случае мы начинаем с почти готового blend-файла:

Запустите Блендер и откройте файл 1301OS_05_rocksnow_start.blend, где есть сцена с размещённой камерой, простой моделью горного массива, и уже настроенной на излучение света плоскостью.

Выберите объект Mountain, перейдите к окну Модификаторов объекта и назначьте модификатор Подразделение поверхности. Установите уровни как для Просмотра, так и для Рендера на 2.

Назначьте второй модификатор Подразделение поверхности с теми же настройками, просто нажав на кнопку Копировать у первого.

Назначьте модификатор Смещение поверхности (Displace). Нажмите на кнопку Show texture in texture tab (Показать текстуры в панели текстур) справа от слота имени текстуры, чтобы перейти к окну Текстур, и назначьте процедурную текстуру Вороного. Установите значение Размер на 1,00. Вернитесь к модификатору Смещение поверхности и установите значение Силы в -0,200.

Назначьте второй модификатор Смещение поверхности, в окне Текстур назначьте новую текстуру Вороного, и задайте Метрику расстояния (Distance Metric) в Манхэттенское расстояние (Manhattan), а значение Размера на 0.50. В модификаторе Смещение поверхности установите значение Силы в -0,050.

Назначьте третий модификатор Смещение поверхности и выберите текстуру Облака (Clouds). Установите Шум на Жестко и значение Силы модификатора Смещение поверхности на 0,040.

Перейдите к окну Мира и нажмите на кнопку Использовать узлы, а затем нажмите на маленький квадрат с точкой справа от слота цвета. В появившемся меню выберите Текстура неба (Sky Texture) и установите значение Силы на 0.300.

Перейдите к окну Визуализация и на панели Сэмплирование (Sampling) установите значение Ограничить (Clamp) на 1,00, и Сэмплы (samples) на 10 для Предпросмотра и на 25 для Визуализации. На панели Путь света (Light Paths) отметьте опцию No Caustics (без каустики, в версии 2.73 надо, наоборот, отключить опции Reflective Caustics и Refractive Caustics – прим. пер.).

Как это сделать…

Добавление и группирование шейдеров камня и снега.

Во-первых, давайте добавим уже созданные материалы для улучшения из нашей библиотеки:

Из файла 1301OS_03_snow.blend добавьте материал Snow_01 и, на данный момент, назначьте его объекту Mountain.

В окне Редактора узлов выделите все ноды, за исключением нодов Текстурные координаты и Вывод материала, и нажмите Ctrl + G, чтобы сгруппировать их.

Передвиньте кадр Снег_Поверхность (Snow_Diffuse) направо от кадра Снег_Рельеф (Snow_Bump). Удалите выход Значение в правой части интерфейса группы, нажав на маленький значок X, а также удалите последний нод Умножить внутри кадра Снег_Рельеф.

Выберите кадр Снег_Поверхность и добавьте нод Рельеф (Bump, нажмите Shift + A и перейдите к Вектор | Рельеф). Подключите выходное значение нода Добавить внутри кадра Снег_Рельеф к входу Высота нода Рельеф, и подключите выход Нормаль нода Рельеф к входным сокетам Нормаль Диффузного и Глянцевого шейдеров внутри кадра Снег_Поверхность.

Установите значение Сила нода Рельеф на 0.010. Установите значение Масштаб нода Отображение на 1.000. (В версии Блендера 2.73 у нода Рельеф, возможно, придётся увеличить значение параметров Сила и Расстояние. Я выбрал Силу 0.05 и Расстояние 1.0 — прим. пер.)

Закройте группу и переименуйте ее в Snow. Просто, чтобы быть уверенным, что она не потеряется, отметьте у неё опцию F (Fake User).

Из файла 1301OS_03_rock_procedural.blend добавьте материал Rock_procedural_01 и назначьте его объекту Mountain.

При переводе 3-й главы, первые два раздела, в том числе и «Создание материала камня с помощью процедурных текстур», я переводил дословно, т. е. так, как написано в оригинале книги. Поэтому материалы, построенные там, правильно работают в Блендере 2.66. Для Блендера 2.73 необходимо изменить параметры нодов Рельеф. У всех нодов нужно установить параметр Расстояние на 1.0, а параметры Сила я подобрал такие: 1.0 для верхнего, 1.5 для среднего, и 0.6 для нижнего нодов Рельеф — доп. пер.

В окне Редактора узлов снова выделите все ноды, за исключением Текстурных координат и Вывода материала, и нажмите Ctrl + G, чтобы сгруппировать их. Переименуйте группу в Rock_procedural.

Во-первых, мы выставим наружу цвета: нажмите на входной сокет Цвет первого Диффузного шейдера внутри кадра Color (цвет) и перетащите его к крайней левой границе интерфейса группы (к нижнему сокету нода Вход группы в Блендере 2.73 — прим. пер.). Переименуйте созданный входной сокет в Diff_Color1. Сделайте то же самое со вторым Диффузным шейдером и переимеуйте новый сокет в Diff_Color2. Повторите это для сокета Цвет Глянцевого шейдера и переименуйте вход в Spec_Color.

Теперь нажмите на сокет Коэфф второго нода Смешать шейдеры внутри кадра Цвет и перетащите его к левой границе; переименуйте вход в Spec_Amount.

Также, выведите наружу сокет Шероховатость у Глянцевого шейдера.

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

Добавьте нод Математика (нажмите Shift + A и выберите Преобразователь | Математика) и переместите его ближе к первой Текстуре Вороного внутри кадра 2nd Bump (2-й рельеф). Установите операцию Умножить, а в первый слот Значение скопируйте значение Масштаба нода Текстура Вороного. Подключите выходное значение на вход Масштаб текстурного нода. Установите второе Значение в 1.000 и перетащите его к левой границе (к ноду Вход группы в версии 2.73 — прим. пер.); переименуйте новый интерфейс ввода в Scale (масштаб).

Нажмите Shift + D, чтобы продублировать нод Математика, переместите его как можно ближе к следующему ноду Текстура «Масгрейв», скопируйте значение Масштаба и подсоедините второй вход Значение к новому входу Scale на интерфейсе. Подключите выход продублированного Математического нода ко входу Текстуры «Масгрейв».

Повторите тот же процесс для всех текстур внутри кадров 1st Bump и 2nd Bump, в результате у вас должно быть добавлено и подсоединено восемь нодов Математика.

Нажав на маленькую стрелку вверх сбоку от входа Scale на интерфейсе, переместите его перед входом Spec_Amount. (В версии 2.73 это можно сделать на N-панели Редактора узлов — доп. пер.)

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

Смешивание групп материалов

Теперь мы можем начать строить реальный шейдер, путем смешивания материалов Rock_procedural и Snow:

Удалите материал Rock_procedural_01, нажав на кнопку X в заголовке окна Редактора узлов.

Нажмите на Создать в окне Материалов на панели Свойств или в заголовке окна Редактора узлов, и переименуйте этот материал в Rock_Snow.

В окне Материалов справа, на панели Свойств, переключите шейдер Диффузный BSDF на нод Смешать шейдеры. В первый сокет Шейдер загрузите нодовую группу Rock_procedural, а во второй сокет Шейдер загрузите группу Snow (они доступны во всплывающем меню, в разделе Группа, по нажатию на кнопки Шейдер).

Добавьте нод Текстурные координаты (нажмите Shift + A и выберите Ввод | Текстурные координаты), и соедините его выход Объект со входами Вектор обеих нодовых групп, как показано здесь:

Создание материала трафарета

На данный момент, оба материала присвоены объекту Mountain, но если сделать сейчас предварительный просмотр, они будут видны повсюду на меше, смешиваясь друг с другом в пропорции 50 на 50 процентов. Мы должны построить разделитель (separator), который будет определять, где поверхность должна показывать только скалы, и где только снег. Этот разделитель тоже будет оформлен в виде группы нодов с именем Separator.

Общий вид сети группы:

У группы два входа: Вектор и Snow_Amount (снега всего). В основном группа состоит из двух кадров, НАКЛОН и ПЛОТНОСТЬ.

Текстурная часть кадра НАКЛОН:

Преобразующая часть кадра НАКЛОН:

Здесь:

Входы Коэфф нодов Добавить подключены ко входу интерфейса группы Snow_Amount.

Входы Цвет нодов Добавить подключены к выходам Цвет, соответственно, верхнего и нижнего нодов Текстура градиента.

У верхнего нода Градиентная карта два черных движка, первый на отметке 0.51, второй на 0.60, третий движок белый, на отметке 0.69.

У нижнего нода Градиентная карта черный движок на 0.517, белый в крайне правом положении.

Все ноды Добавить и Прожигание созданы из нода Смесь RGB.

Кадр ПЛОТНОСТЬ:

Здесь:

Вход нода Отображение подключен ко входу Вектор интерфейса группы.

Ноды Прожигание созданы из нода Смесь RGB.

Черный движок нода Градиентная карта находится в крайнем левом положении, белый на отметке 0.487.

Выход группы Separator:

Здесь:

Входы Цвет1 и Цвет2 подключены, соответственно, к выходам кадров НАКЛОН и ПЛОТНОСТЬ.

Нод Мягкий свет создан из нода Смесь RGB.

Добавление атмосферной перспективы

Последнее, что мы можем сделать для улучшения нашего материала — это добавить нодовую группу Fog_underwater из файла 1301OS_05_underwater_final.blend | Nodetree. Переименуйте её в Atmos_persp и вставьте непосредственно перед нодом Вывод материала. Затем нажмите Tab, чтобы открыть группу и перейти в режим редактирования, установите значение нода Умножить в 0,010, а цвет шейдера излучения в R 0.078, G 0.133, B 0.250.

Вот окончательный вид материала (я проставил русскоязычные метки всем группам — прим.пер.):

Как это работает…

Давайте теперь посмотрим, разделив процесс на три части, как этот материал действительно работает:

Во-первых, мы добавили материал снега и сделали группу, поменяв только способ, которым работает рельеф, то есть, отсоединили выход от входа Смещения нода Вывод материала и реализовали рельеф «через шейдер». На самом деле, в этом не было большой разницы для финального рендера. Просто следует помнить, что рельеф, который подключен к сокету Смещения, может реагировать на Ambient Occlusion (который мы, кстати, не использовали в сцене), но это не так с рельефом «через шейдеры». Мы также добавили материал Rock_procedural и сделали из него группу. Все необходимые значения были выставлены наружу на интерфейс группы, и, хотя в этой сцене мы оставили материал без изменений, группу теперь можно легко использовать повторно для различных видов горных пород в других проектах или для разных объектов. Мы добавили по одному ноду Математика с операцией Умножить для масштаба каждой текстуры и для значения Силы рельефа, которыми нужно управлять из параметров интерфейса группы. Первое Значение устанавливается равным первоначальному значению масштаба или силы, затем умножается на управляемое второе Значение, тем самым увеличивая или уменьшая (для значений меньше 1) эффект.

Затем мы построили нодовую группу Separator (разделитель), выводящую чёрно-белые значения, которые, при подключении ко входу Коэфф нода Смешать шейдеры, работают в качестве «карты трафарета» (stencil map), разделяющей два различных материала на поверхности меша, соответственно, черным и белым значениями. Две градиентные текстуры в кадре НАКЛОН, отображенные на информацию о Положении и о Нормалях меша, и затем смешанные вместе в ноде Прожигание, делают так, чтобы материал снега (белое значение цвета на "карте трафарета") появлялся больше на гранях меша, которые имеют скорее горизонтальное направление, чем вертикальное. Благодаря нодам Добавить, управляемым через вход интерфейса Snow_amount, и влияющих на градиент нодов Градиентная карта, можно задавать количество снега (то есть, белого цвета в трафарете) всему объекту. Смешанные текстуры в кадре ПЛОТНОСТЬ делают разделительную линию между черным и белым более неровной и естественно выглядящей.

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

Создание реалистичной планеты Земля, как её видно из космоса

В этом рецепте мы создадим реалистичную планету Земля с использованием изображений-текстур, доступных в Интернете:

Подготовка

У изображений текстур, предоставляемых с этой книгой, как правило, в значительной степени были уменьшены разрешения, и они хороши только для демонстрационных целей (или, в данном случае, для визуализации очень далеко от Земли). Для лучших результатов этого рецепта просто замените эти изображения с низким разрешением на версии с высоким разрешением, которые можно скачать, например, с этих адресов:

http://www.shadedrelief.com/natural3/pages/textures.html

http://www.shadedrelief.com/natural3/pages/clouds.html

http://celestia.h-schmidt.net/earth-vt/

http://www.celestiamotherlode.net/catalog/earth.php

Перед тем как скачать что-либо, всегда смотрите на лицензии на изображения, предоставляемые любым сайтом, найденным вами, чтобы убедиться, что они выпущены как свободно используемые, особенно, если вы собираетесь использовать их для коммерческих работ. Предыдущие ссылки вполне должны подходить, но в Интернете всё может измениться очень быстро, так что дважды проверьте!

Вам понадобится, по крайней мере, пять файлов изображений:

Earth-color: цветная поверхность земли/моря при дневном свете

Earth-night: цветная поверхность земли/моря ночью (обычно совмещена с огнями городов)

Earth-bump: карта высоты континентов в градациях серого

Earth-spec: черно-белый контур с континентами, заполненными черным, а водные массы совершенно белые

Clouds: карта облаков в градациях серого

Следует отметить, что, даже в случае изображений в градациях серого, в Cycles все файлы текстур должны быть в цветовом пространстве RGB.

На самом деле, Cycles может достаточно хорошо обрабатывать очень большие текстуры, достигающие размера 16 K (то есть, 16000 пикселей по самой длинной стороне изображения), так что вы можете использовать их в лучшем разрешении, которое можно найти. В любом случае следует помнить, что чем больше разрешение текстур, тем больше времени Cycles рендерит.

Однако, кроме получения изображений текстур, мы также должны выполнить следующие действия:

Запустите Блендер и переключите на движок рендера Cycles.

Удалите куб по-умолчанию и добавьте UV-Сферу (с курсором мыши в окне 3D-вида нажмите Shift + A и выберите Полисетка | UV-Сфера). Переименуйте её в Earth_Surface (поверхность Земли).

В Т-панели инструментов включите для сферы Гладкое затенение. Добавьте модификатор Подразделение поверхности (Subsurf) с уровнем 4. Для сфер Облаков и Атмосферы (см. пункты 4-5) уровень можно снизить до 2. В тексте книги про это не было, но в файле примера модификатор присутствует, без него Земля получается состоящей из уродливых квадратов — доп. пер.

С курсором мыши в окне с видом из Камеры, нажмите 1 на нумпаде, чтобы перейти в ортогональный вид спереди. Теперь войдите в режим редактирования, выберите все вершины и нажмите U. В выпадающем меню UV-разметка выберите Проекция сферы (Sphere Projection). Выйдите из режима редактирования и нажмите 0 на нумпаде, чтобы снова вернуться к виду из Камеры.

Нажмите Shift + D и затем Enter, чтобы продублировать сферу. На панели Преобразование (Transform) справа (нажмите N, если она не активна), установите величину Масштаба для X, Y, и Z в 1.001. Переименуйте её в Earth_Clouds (облака Земли).

Продублируйте сферу снова, установите масштаб в 1.002 и переименуйте её в Earth_Atmosphere (атмосфера Земли).

Добавьте Пустышку (Empty, нажмите Shift + A и выберите Пустышка | Оси), и переименуйте её в Empty_Earth. В окне Данных объекта установите её размер на 2.00. Выберите три UV-сферы, затем Пустышку, и нажмите Ctrl + P, чтобы она стала родителем сфер.

Выберите Empty_Earth, и на панели Преобразование установите величину Вращения на: X= 18.387°, Y = 0.925°, и Z = -4.122° (это делается просто для того, чтобы получить хороший отражающий эффект, видимый на океанах во время рендера).

Выберите камеру, и на панели Преобразование установите эти величины: Положение (Location) X = -0.64, Y = - 4.7, и Z = 0.12; Вращение (Rotation) X = 89°, Y = 0°, и Z = -9°. Перейдите в окно Данных объекта и измените величину Фокусного Расстояния на 60.000 (миллиметров).

Перейдите в окно Мира. Щелкните по кнопке Использовать узлы, измените цвет фона на чисто черный, и установите величину Силы на 0.000.

Выберите лампу и установите её тип на Солнце (Sun). Установите величину Размер в 0.100 и величину Сила в 8.000. Установите цвет на R 1.000, G 0.902, B 0.679. На панели Преобразование установите эти величины: Положение X = 145.00000, Y = -65.00000, и Z = 110.00000; Вращение X = 30.579°, Y = 48.615°, и Z = 14.078°.

Перейдите в окно Рендера, и на под-панели Сэмплирование установите величину Ограничить в 1.00, Сэмплы Предварительного просмотра на 20, и Сэмплы Визуализации на 50.

Как это сделать…

В окне Структура проекта (Outliner) скройте, на время, сферы Earth_Clouds и Earth_Atmosphere, щелкнув по небольшим символам глаза, чтобы в окне 3D-вида с предпросмотром рендера в реальном времени было видно только сферу Earth_Surface, с материалом которой мы работаем.

Выберите сферу Earth_Surface и щелкните по кнопке Создать в окне Материала на панели Свойств или в заголовке окна Редактора Узлов. Переименуйте материал в Surface (Поверхность).

В окне Материала справа, на панели Свойств, переключите шейдер Диффузный BSDF на нод Сложить шейдеры (Add Shader). В первый сокет Шейдер подключите шейдер Диффузный BSDF. Во второй сокет Шейдер подключите нод Глянцевый BSDF и установите его величину Шероховатость на 0.700.

Добавьте нод Изображение-текстура (Image Texture, нажмите Shift + A и выберите Текстура | Изображение-текстура), и подключите его выход Цвет к входным сокетам Цвет Диффузного и Глянцевого шейдеров. Щелкните по кнопке Открыть в ноде Изображение-текстура и, поискав в вашем каталоге текстур, загрузите изображение Earth-col_low.png (или версию с высоким разрешением, если она у вас есть).

Нажмите N в окне Редактора Узлов, чтобы появилась панель Свойств нода. В поле Метка переименуйте нод Изображение-текстура в Дневной_цвет (Color_Day).

Добавьте новый нод Изображение-текстура (Image Texture, нажмите Shift + A и выберите Текстура | Изображение-текстура) и нод Рельеф (Bump, нажмите Shift + A и выберите Вектор | Рельеф). Подключите цветовой выход этого второго нода Изображение-текстура ко входному сокету Высота (Height) нода Рельеф, затем подключите выход Нормаль (Normal) нода Рельеф к входным сокетам Нормаль как Диффузного, так и Глянцевого шейдеров.

Переименуйте второй нод Изображение-текстура в Рельеф (Bump), затем щелкните по его кнопке Открыть и загрузите изображение Earth-bump_low.png. Установите Цветовое Пространство в Нецветовые данные (Non-Color Data). Выберите векторный нод Рельеф, переименуйте его в Рельеф_земли (Bump_Lands) и установите его величину Силы на 0.01 (0.002 в версии 2.66 — прим. пер.).

Добавьте Кадр (Frame, нажмите Shift + A и выберите Разметка | Кадр), выберите два нода Изображение-текстура, нод Рельеф_земли, Диффузный и Глянцевый шейдеры, и затем кадр. Нажмите Ctrl + P, чтобы он включил в себя эти ноды, и переименуйте кадр в ЗЕМЛИ (LANDS):

Теперь добавьте Текстуру шума (Noise texture, нажмите Shift + A и выберите Текстура | Текстура шума), нод Рельеф (Bump, нажмите Shift + A и выберите Вектор | Рельеф), Диффузный шейдер (нажмите Shift + A и выберите Шейдер | Диффузный BSDF), и Глянцевый шейдер (нажмите Shift + A и выберите Шейдер | Глянцевый BSDF).

Установите величину Масштаб у Текстуры шума на 1000.000 и подключите выход Цвет к входному сокету Высота нода Рельеф. Переименуйте последний в Рельеф_океанов (Bump_Oceans), установите величину Силы на 0.01 (0.001 для версии 2.66 — прим.пер.) и подключите выход Нормаль к соответствующим входам новых Диффузного и Глянцевого шейдеров. Установите величину Шероховатось у Глянцевого шейдера на 0.100.

Добавьте Кадр (Frame, нажмите Shift + A и выберите Разметка | Кадр), выберите новые ноды и кадр и нажмите Ctrl + P для включения их в этот кадр; переименуйте кадр в МОРЯ (SEAS).

Добавьте нод Смешать шейдеры (нажмите Shift + A и выберите Шейдер | Смешать шейдеры) и разместите его под нодом Сложить шейдеры. Установите величину Коэфф. на 0.100 и соедините выход Диффузного шейдера кадра МОРЯ с первым входом Шейдер, а выход Глянцевого шейдера кадра МОРЯ со вторым входом Шейдер.

Нажмите Shift + D, чтобы продублировать нод Смешать шейдеры и вклейте его между нодами Сложить шейдеры и Вывод материала. Подключите выход первого нода Смешать шейдеры ко второму входу Шейдер.

Добавьте новый нод Изображение-текстура (нажмите Shift + A и выберите Текстура | Изображение-текстура) и переименуйте его в Spec/Mask. Подключите выход Цвет к входному сокету Коэфф. последнего нода Смешать шейдеры. Щелкните по кнопке Открыть, чтобы загрузить файл с изображением Earth-spec_low.png, и установите Цветовое Пространство в Нецветовые данные (Non-Color Data).

Добавьте Кадр (Frame, нажмите Shift + A и выберите Разметка | Кадр), выберите нод Spec/Mask и кадр и нажмите Ctrl + P, чтобы нод стал частью кадра; переименуйте кадр в РАЗДЕЛИТЕЛЬ ЗЕМЛИ/МОРЯ (SEPARATOR LANDS/SEAS).

Теперь щелкните на выходе Цвет текстурного нода Дневной_цвет в кадре ЗЕМЛИ и подключите его к цветовому входу Диффузного шейдера в кадре МОРЯ.

Добавьте нод Смесь (Mix, нажмите Shift + A и выберите Цвет | Смесь RGB) и вставьте его перед Диффузным шейдером кадря МОРЯ. Переключите связь со входа Цвет1 на входной сокет Цвет2 и затем установите Цвет1 на R 0.0065, G 0.0065, B 0.024.

Добавьте нод Градиентная карта (ColorRamp, нажмите Shift + A и выберите Преобразователь | Градиентная карта) в кадр МОРЯ (просто добавьте его и вставьте в кадр). Подключите выход Цвет ко входу Цвет Глянцевого шейдера. Установите интерполяцию на B-сплайн и измените черный цвет на чисто белый, а белый цвет на R 0.209, G 0.117, B 0.117. Щелкните по кнопке + (добавить), чтобы добавить ещё один движок в середину, и измените цвет нового движка на R 0.965, G 0.462, B 0.223.

Добавьте нод Вес Слоя (Layer Weight, нажмите Shift + A и выберите Ввод | Вес Слоя) в кадр МОРЯ, подключите выход Поворот (Facing) к входным сокетам Коэфф. нодов Градиентная карта и Смесь.

Добавьте нод Изображение-текстура (нажмите Shift + A и выберите Текстура | Изображение-текстура), нод Градиентная карта (ColorRamp, нажмите Shift + A и выберите Преобразователь | Градиентная карта), нод Смесь (Mix, нажмите Shift + A и выберите Цвет | Смесь RGB), и шейдер Излучение (Emission, нажмите Shift + A и выберите Шейдер | Излучение).

Переименуйте нод Изображение-текстура в Ночной_цвет (Color_Night) и подключите его цветовой выход ко входу Коэфф. нода Градиентная карта, а цветовой выход последнего ко входному сокету Цвет1 нода Смесь. Подключите выход нода Смесь к цветовому входу нода Излучение.

В текстурном ноде Ночной_цвет загрузите изображение Earth-night_low.png. Установите интерполяцию нода Градиентная карта на B-Сплайн и переместите белый движок на середину, затем переместите черный движок на одну четверть вправо. Установите Тип смешивания нода Смесь на Умножить, величину Коэфф. на 1.000 и измените поле Цвет2 на R 1.000, G 0.257, B 0.090. Установите величину Сила нода Излучение на 0.400.

Добавьте Кадр (Frame, нажмите Shift + A и выберите Разметка | Кадр), выберите новые ноды и кадр, и нажмите Ctrl + P, чтобы ноды стали частью кадра; переименуйте кадр в НОЧЬ (NIGHT).

Добавьте нод Смешать шейдеры (нажмите Shift + A и выберите Шейдер | Смешать шейдеры) и вставьте его перед нодом Вывод материала. Подключите выход нода Излучение ко второму входному сокету Шейдер последнего нода Смешать шейдеры.

В окне Структура проекта (Outliner), включите видимость сферы Earth_Clouds и выберите её. Щелкните по кнопке Создать в окне Материала на панели Свойств или в заголовке окна Редактора узлов. Переименуйте материал в Clouds (Облака).

В окне Материала справа переключите шейдер Диффузный BSDF на нод Смешать шейдеры. В первом слоте Шейдер загрузите шейдер Прозрачный BSDF (Transparent BSDF), а во второй — новый нод Смешать шейдеры. В его первом слоте Шейдер загрузите нод Диффузный BSDF, а во второй — Глянцевый BSDF. Установите величину Шероховатость Глянцевого шейдера в 0.800 и цвета обоих шейдерных нодов на чисто белый.

Добавьте нод Изображение-текстура (нажмите Shift + A и выберите Текстура | Изображение-текстура), нод Градиентная карта (ColorRamp, нажмите Shift + A и выберите Преобразователь | Градиентная карта), и нод Рельеф (Bump, нажмите Shift + A и выберите Вектор | Рельеф).

Переименуйте нод Изображение-текстура в Облака (Clouds) и подключите его выход Цвет ко входу Коэфф нода Градиентная карта и во входной сокет Высота нода Рельеф.

Установите интерполяцию нода Градиентная карта в Ослабление (Ease) и подключите его цветовой выход к входному сокету Коэфф. первого нода Смешать шейдеры. Подключите выход нода Рельеф ко входам Нормаль как Диффузного, так и Глянцевого шейдеров, и установите величину Силы на 0.01 (0.002 для Блендера 2.66 — прим.пер.).

Щелкните кнопку Открыть текстурного нода Облака и загрузите файл Clouds.png. Установите Цветовое Пространство в Нецветовые данные (Non-Color Data).

В окне Структура проекта (Outliner), включите видимость сферы Earth_Atmosphere и выберите её. Щелкните по кнопке Создать в окне Материала на панели Свойств или в заголовке окна Редактора узлов. Переименуйте материал в Atmosphere (Атмосфера).

В окне Материала справа переключите шейдер Диффузный BSDF на нод Смешать шейдеры. В первом слоте Шейдер загрузите шейдер Прозрачный BSDF (Transparent BSDF), а во второй — новый нод Смешать шейдеры. В его первом слоте Шейдер загрузите нод Диффузный BSDF, а во второй — Глянцевый BSDF. Установите величину Шероховатость Глянцевого шейдера в 0.800. Установите Цвет Прозрачного шейдера на R 0.640, G 0.692, B 0.753.

Добавьте нод Вес Слоя (нажмите Shift + A и выберите Ввод | Вес Слоя) и нод Градиентная карта (ColorRamp, нажмите Shift + A и выберите Преобразователь | Градиентная карта) и подключите выход Поворот (Facing) нода Вес Слоя ко входу Коэфф. нода Градиентная карта. Установите интерполяцию нода Градиентная карта на B-Сплайн и переместите черный цветовой движок на одну четверть вправо.

Переместите их ближе к первому ноду Смешать шейдеры и подключите выход Цвет нода Градиентная карта ко входу Коэфф. первого нода Смешать шейдеры. Установите параметр Смешение нода Вес Слоя на 0.200.

Выберите и нажмите Shift + D, чтобы продублировать ноды Вес Слоя и Градиентная карта, и переместите дубликаты ближе к Диффузному и Глянцевому шейдерам. Подключите цветовой выход Градиентной карты к цветовым входам двух шейдеров и установите параметр Смешение нода Вес Слоя на 0.700.

Установите интерполяцию нода Градиентная карта на Ослабление (Ease) и переместите белый цветной движок на середину. Установите его цвет на R 0.266, G 0.491, B 0.753. Измените цвет черного цветного движка на R 0.500, G 0.000, B 0.139. Щелкните по кнопке + (добавить) и измените цвет нового маркера на чисто черный.

Как это работает…

Техника трёх перекрывающихся сфер восходит почти к 2004 году (по крайней мере для того, что имеет отношение к Блендеру), или, если быть точнее, к уроку How to make a realistic planet in Blender, который я написал в это время для Блендера версии 2.23/2.30. Этот урок теперь устарел, по крайней мере в части, касающейся материалов, но основной принцип этой техники все ещё работает даже в Cycles, то есть, поверхность Земли на меньшей сфере, слой облаков на немного большей, и атмосферный Френель-эффект на самой большой, таким образом вмещающей две другие.

Сначала мы построили самый сложный из всех трех шейдеров — материал Поверхности — на самой меньшей из трех сфер:

От 1 до 7 шага мы строили шейдер для континентов, просто изображение текстуры связали в качестве показателя цвета с Диффузным и Глянцевым шейдерами. От 8 до 12 шага мы строили базовый шейдер для океанов.

В шагах 13 и 14, мы "отделили" континентальную компоненту от океанов, используя карту Earth-spec, черно-белое изображение, работающее как трафарет для входа Коэфф. нода Смешать шейдеры. Мы также подключили карту Earth-color к Диффузному шейдеру кадра МОРЯ, чтобы вернуть цвет океанам.

От 15 до 18 шага мы добавили к кадру МОРЯ нод Градиентная карта, управляемый выходом Поворот нода Френель, чтобы улучшить расцветку отражения воды (согласно тому, что часто показывают на фотографиях спутников НАСА), и глубокий синий цвет смешали с изображением цветной карты нодом Смесь. Благодаря информации Поворот (Facing Fresnel), синий цвет отображается на гранях меша, перпендикулярных к точке зрения, в результате чего около центра Земной сферы водные массы становятся темнее.

От шага 19 до 23 мы строили ночной шейдер. Изображение Earth-night сжали (увеличили контраст) нодом Градиентная карта, и результирующие более яркие величины умножили на красноватый цвет в ноде Смесь. Все это затем направлено в шейдер Излучение, смешанный в соотношении 50 процентов с остальными компонентами поверхностного шейдера. Поскольку величина излучения довольно низкая, "ночная поверхность" видна только на теневой стороне Земли.

Затем, от 24 до 29 шага, мы построили облачный слой Clouds во второй сфере.

От шага 30 до 35 мы строили слой атмосферы для третьей сферы.

Как вы, вероятно, обратили внимание, мы не использовали нодов Текстурные координаты или Отображение для текстурных карт. Это потому, что сферы были развернуты, и Cycles автоматически отображает существующий слой UV-координат для нодов Изображение-текстура. Для рельефа океана, полученного процедурным нодом Текстура шума, используется автоматически выбранное отображение Сгенерировать (если вы помните раздел об отображении текстур в Cycles из Главы 1, Обзор Материалов в Cycles).

Глава 6. Создание более сложных искусственных материалов

В этой главе мы изучим:

Создание материалов тканей с помощью процедурных текстур

Создание кожаного материала с помощью процедурных текстур

Создание материала синтетической губки с помощью процедурных текстур

Создание материала кирпичной стены с помощью процедурных текстур

Создание корпуса космического корабля

Введение

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

Единственным различием является уровень сложности, которого они могут достичь (например, просто взгляните на шейдер корпуса космического корабля или кирпичной стены).

Создание материалов тканей с помощью процедурных текстур

В этом рецепте мы создадим материал типичной ткани, подобно той, что показана на следующей иллюстрации:

Подготовка

Запустите Блендер и загрузите файл 1301OS_cloth_start.blend; на сцене уже есть настроенная симуляция ткани.

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

После того, как симуляция будет полностью кеширована (всего 100 кадров), в окне Физики справа, на панели Кэш ткани (Cloth Cache), щелкните по кнопке Текущий кэш в запекание (Current Cache to Bake), чтобы сохранить симуляцию; 100 кадров симуляции теперь кешированы и сохранены в каталоге, названном также, как blend-файл, и расположенном в том же каталоге, где этот blend-файл находится.

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

Как это сделать...

Перейдём к созданию материала. Установите кадр 100. Добавьте новый материал и назовите его cloth_generic.

Общий вид сети:

Начинается сеть с нода Текстурные координаты, используется выход UV. Все ноды Отображение подключены к нему.

Кадр ЦВЕТ:

Здесь:

Нод Умножить построен из нода Смесь RGB.

Цвета градиентов в нодах Градиентная карта определяют расцветку ткани. В книге используются белый (RGB 1.0), фиолетовый (R 0.57 G 0.0 B 1.0) и голубой (R 0.0 G 0.3 И 1.0), но в других случаях нужно применять свою расцветку.

Кадр РЕЛЬЕФ:

Здесь все ноды с математическими действиями созданы из нода Математика.

Шейдерная часть нода:

Здесь:

Диффузный шейдер подключен к выходу кадра ЦВЕТ.

Вход Смещения нода Вывод материала подключен к выходу кадра РЕЛЬЕФ.

Цвет Глянцевого шейдера — R 0.8 G 0.73 B 0.37.

Как это работает...

От 1 до 3 шага мы всего лишь создавали простой базовый шейдер.

От шага 4 до 10 мы строили текстуру рельефа ткани, смешивая две волновые текстуры с различной ориентацией, и добавив немного шума.

От шага 11 до 18 мы строили простой цветной клетчатый узор.

И больше...

Много вариаций можно получить установкой других параметров для рельефа, но особенно используя различные текстурные ноды и их комбинации для цветового узора:

Все эти примеры включены в файл 1301OS_06_cloth.blend.

Создание кожаного материала с помощью процедурных текстур

В этом рецепте мы создадим коже-подобный материал:

Подготовка

Запустите Блендер и загрузите файл 1301OS_06_start.blend, где уже присутствует развернутый меш Сюзанны.

Как это сделать...

Добавьте Сюзанне новый материал и назовите его Leather_dark.

Общий вид сети:

Текстурная часть рельефа:

Здесь ноды Разница построены из нода Смесь RGB.

Преобразующая часть рельефа:

Здесь:

Входы нодов Градиентная карта подключены к, соответственно, верхнему и нижнему нодам Разница.

Вход верхнего нода Умножить подключен к выходу нода Текстура Вороного1.

Первый нод Умножить создан из нода Смесь RGB, остальные (2 шт. Умножить и Добавить) — из нода Математика.

Простая цветовая часть:

Здесь ноды RGB определяют цвет кожи (Не очень понятно, зачем их два — прим.пер.).

Шейдерная часть сети:

Здесь:

Вход Цвет шейдера Диффузный BSDF подключен к выходу нода Смесь цветовой части.

Входы Нормаль Диффузного и Глянцевого шейдеров подключены к выходу нода Рельеф1.

Вход Нормаль Анизотропного шейдера подключен в выходу нода Рельеф2.

Цвет Глянцевого и Анизотропного шейдеров полностью белый — RGB 1.0.

Очередное отступление на тему изменённого с версии 2.66 нода Рельеф. В моём тексте параметры нодов адаптированы для версии 2.73, вот как выглядела часть сети в оригинале материала для версии 2.66:

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

Как это работает...

От 1 до 7 шага мы построили базовый шейдер для материала кожи; там удобнее смешивать два разных цвета через RGB входы нода Смесь, хотя можно подключить и к одному, таким образом можно легче получить те или иные оттенки.

От шага 8 до 19 мы строили узор рельефа для кожи. Мы использовали два разных нода Рельеф (Bump) с различными величинами для Рассеянного и Глянцевого и отдельно для Анизотропного шейдеров, чтобы получить немного отличающиеся отражения света на поверхности.

Заметьте, что мы использовали информацию слоя UVMap меша для нода Тангенс, который нужно подключить к Анизотропному щейдеру, и, вместо этой информации использовали режим отображения Объект для текстур рельефа; действительно, поскольку меш уже развернут, мы могли бы использовать выход UV-отображения для нодов текстуры тоже, но в этом случае величины масштаба для всех нодов будут двойными, и поток текстур на полигонах разный (поскольку направляется потоком развернутых граней в UV-окне).

Создание материала синтетической губки с помощью процедурных текстур

В этом рецепте мы создадим полиуретановый материал губки того типа, который вы можете обычно найти в любой кухне:

Подготовка

Запустите Блендер и переключите на движок рендера Cycles.

Если он в данный момент не выбран, выберите куб по-умолчанию и на панели Преобразование (Transform) справа в окне 3D-вида, под заголовком Размеры (Dimensions) введите эти величины: X 0.350, Y 0.235, и Z 0.116. Нажмите Ctrl + A, чтобы применить масштаб.

Поместите мышь в окно 3D-вида и добавьте плоскость к сцене (Shift + A | Добавление полисеток | Плоскость). Выходите из Режима редактирования и в панели Преобразование введите Размеры: X 20.000 и Y 20.000. Снова нажмите Ctrl + A, чтобы применить масштаб. Переместите плоскость вниз (G | Z | -0.06 | Enter), чтобы она стала полом для куба.

Выберите Лампу, в окне Данных объекта щелкните по кнопке Использовать узлы и измените тип на Солнце. Установите Размер на 0.500, Цвет в чисто белый, и Силу на 5.000. На панели Преобразование введите эти величины: Положение X 3.5, Y -1.2, Z 14.1; Вращение X 15°, Y 0°, Z 76°.

Выберите Камеру, и в окне Данных Объекта, на панели Объектив (Lens), измените Фокусное Расстояние (Focal Length) на 60.0. На панели Преобразование введите эти величины: Положение X 0.82385, Y -0.64613, Z 0.39382; Вращение X 68°, Y 0°, Z 51°.

Перейдите в окно Мира и щелкните по кнопке Использовать узлы на панели Поверхность; щелкните по небольшому квадрату с точкой справа от поля Цвет: из появившегося меню выберите Текстура неба (Sky Texture). Установите Силу на 0.100.

Перейдите в окно Визуализации и на панели Сэмплирование установите величину Ограничить в 1.00, а Сэмплы для Рендера и Предпросмотра на 50.

Разделите окно 3D-вида на две половины: измените тип верхней на окно Редактора Узлов. Разделите нижний вид на две части и измените левую часть на другой 3D-вид. Поместите мышь в левый 3D-вид и нажмите 0 на нумпаде, чтобы перейти к виду из Камеры.

Выберите куб и, с курсором мыши в окне с видом из Камеры, нажмите Shift + S | Курсор к выделению, чтобы установить курсор на опорную точку куба (в случае, если он находится где-то ещё); добавьте Решетку (Lattice) на сцену (Shift + A | Решетка), нажмите Tab, чтобы выйти из режима Редактирования и на панели Преобразование, под заголовком Масштаб, введите X 0.396, Y 0.264, и Z 0.129. Перейдите в окно Данных объекта и на панели Решетка установите величины U, V, и W на 3.

Снова выберите куб и перейдите к окну Модификаторов объекта; назначьте модификатор Подразделения поверхности, переключите тип алгоритма разбиения с Catmull-Clark на Простой (Simple), и установите уровень Подразделения на 2 как для Вида, так и Визуализации.

Назначьте модификатор Скос (Bevel) и установите Ширину на 0.0010. Назначьте модификатор Решетка и в поле Объект выберите имя решетки Lattice. Снова выберите Решетку и нажмите Tab, чтобы войти в режим Редактирования; выберите вершины Решетки, как указано на следующей иллюстрации:

Масштабированием немного уменьшите выбранное только по осям X и Y (S | Shift + Z | 0.9 | Enter), затем масштабированием немного уменьшите только верхние вершины, и так далее, чтобы получить в результате форму, подобную кухонной губке. Когда сделаете, выходите из режима Редактирования (Tab).

Снова выберите куб, и на панели Инструментов, под Затенением, выберите Гладко (Smooth). С курсором мыши в окне 3D-вида нажмите N и T, чтобы убрать панели Преобразования и Инструментов. Переходите к окну Материала.

Как это сделать...

Начнём создание материала.

Во-первых, выберите плоскость и щелкните по кнопке Создать в окне Материала на панели Свойств или в заголовке Редактора узлов. В окне Материала поменяйте нод Диффузный BSDF на нод Смешать шейдеры: к первому сокету Шейдер подключите нод Диффузный BSDF, а ко второму — шейдер Глянцевый BSDF. Установите величину Коэфф нода Смешать шейдеры в 0.400, а цвет Диффузного шейдера сделайте синим.

Теперь выберите куб, в окне Материала щелкните по кнопке Использовать узлы, и назовите материал sponge_polyurethane.

Общий вид сети:

У нода Текстурные координаты используется выход Объект, нод Отображение используется по-умолчанию.

В построении рельефа используется три текстуры, две из которых почти идентичны друг другу.

Первая текстура:

Здесь:

Вход Вектор текстурного нода подключен к выходу нода Отображение.

Координаты управляющих точек в ноде RGB-кривые:

X 0.26 Y 0.50

X 0.74 Y 0.51

Нод Умножить1 создан из нода Математика.

После создания первой текстуры продублируйте её (Shift-D), и измените у дубликата параметр Масштаб нода Текстура Вороного на 62.3. Вот как должна выглядеть вторая текстура:

Третья текстура и ноды, объединяющие все три текстуры:

Здесь:

Вход Вектор текстурного нода подключен к выходу нода Отображение.

Входы Цвет1 и Цвет2 подключены, соответственно, в выходам нодов Умножить1 и Умножить2 первых двух текстур.

Ноды Умножить 3 и Умножить4 созданы из нодов Математика.

Ноды Добавить1 и Добавить2 созданы из нодов Смесь RGB.

Опять напишу, что не понимаю, зачем нужны целых три нода Умножить, которые умножают на единицу, т. е. ничего не делают — прим.пер.

Шейдерная часть сети:

Здесь:

Вход Смещения нода Вывод материала подключен к текстурной части — к выходу нода Умножить4.

Нод RGB определяет цвет губки — можно задать любой, автор взял R 0.319, G 1.000, B 0.435.

Как это работает...

От 2 до 6 шага мы строили основной шейдер материала губки и цвет (шейдерная часть сети — прим. пер.). Если вы посмотрите на Рендер из камеры без текстуры рельефа, там присутствует видимый артефакт на дальней стороне сетки; это является следствием Гладкого затенения, которое мы включили на последнем шаге в разделе Подготовка этого рецепта; при включении Плоского затенения артефакт исчезнет снова, но будут видны плоские грани деформированной сетки губки. Кстати, из-за рельефности рисунка и того факта, что меш подразделяется, выбор типа затенения не тривиален, и каждое из двух решений (Гладкое затенение с артефактом, или Плоское, но с заметными гранями) работает хорошо.

От шага 7 до шага 20 мы строили узор рельефа.

Создание материала кирпичной стены с помощью процедурных текстур

В этом рецепте мы создадим стену, сделанную из кирпичей и бетона, подобную такой:

Подготовка

Запустите Блендер и переключите на движок рендера Cycles.

Выберите куб по-умолчанию и, набирая величины в области Размеры (Dimensions) на панели Преобразование (Transform), расположенной справа в окне 3D-вида (нажмите N, чтобы она появилась, если её на видно), масштабируйте её так: X 10.000, Y 1.000, и Z 6.000. Нажмите Ctrl + A, чтобы применить размер.

Разделите нижнее окно на две части, измените тип левой на окно Редактор UV/Изображений. Перейдите в режим Редактирования (Tab) и выберите рёбра, как указано на иллюстрации (красные рёбра на изображении справа):

Нажмите Ctrl + E | Пометить шов (Mark Seams), чтобы сделать выбранные рёбра швами, затем нажмите U, и в появившемся меню UV-разметка выберите Развернуть (Unwrap). Выходите из режима Редактирования.

Добавьте к сцене плоскость (мышь в окне 3D-вида, Shift + A | Полисетка | Плоскость), и, всё ещё находясь в режиме Редактирования, масштабируйте её, увеличив в 10 раз (нажмите A, чтобы выбрать все вершины, затем S | 10 | Enter). Нажмите U | UV-разметка | Развернуть. Выходите из режима Редактирования и сдвиньте её на три единицы вниз (G | Z | -3 | Enter).

Соедините обратно два нижних окна в единственный 3D-вид, чтобы убрать окно Редактора UV/Изображений.

Выберите Лампу и удалите её. Добавьте новую Плоскость к сцене (Shift + A | Полисетка | Плоскость), выходите из режима Редактирования и увеличьте её масштабированием в шесть раз (S | 6 | Enter). Переименуйте её в Emitter. На панели Преобразование задайте эти величины: Положение X 87.0, Y -39.7, Z 58.0 и Вращение X 22°, Y 60°, Z 0°.

Выберите Камеру и на панели Преобразование установите эти величины: Положение X 11.0, Y -21.0, Z 6.2 и Вращение X 74.7°, Y 0°, Z 26.5°. Перейдите к окну Данных объекта и установите Фокусное Расстояние (Focal Length) на 60.000.

Перейдите в окно Мира и щелкните по кнопке Использовать узлы на панели Поверхность; щелкните по небольшому квадрату с точкой справа от поля Цвет: из меню выберите Текстура неба. Установите Силу на 0.500.

Перейдите в окно Рендера и на панели Сэмплирование установите величину Ограничить (Clamp) в 1, а Сэмплы для Визуализации и Предпросмотра на 25. На панели Производительность (Performance) установите Область просмотра (Viewport) на Статический BVH (Static BVH) и отметьте обе опции Простр. Разбивка (Use Spatial Splits) и Кешировать BVH (Cache BVH).

Нажмите N, чтобы убрать панель Преобразование в окне 3D-вида, и разделите его на две части: измените тип верхнего окна на Редактор Узлов.

Как это сделать...

Теперь мы собираемся создавать материал:

В окне Структура проекта (Outliner) выберите плоскость Emitter и щелкните по кнопке Создать в окне Материала на панели Свойств или в заголовке Редактора узлов; переименуйте новый материал в Emitter и в окне Материала переключите нод Диффузный BSDF на нод Излучение; установите Силу на 500.000.

Выберите плоскость пола и щелкните по кнопке Создать в окне Материала на панели Свойств или в заголовке Редактора узлов; переименуйте новый материал в Brickwall. Выберите куб, затем нажмите Shift и выберите плоскость пола, затем нажмите Ctrl + L | Материалы, чтобы назначить этот материал на оба объекта.

Общий вид сети:

У нода Текстурные координаты используется выход UV, нод Отображение используется по-умолчанию.

Всего здесь 4 кадра, будем рассматривать их по очереди.

1. Кадр ЦЕМЕНТ.

Текстуры кадра ЦЕМЕНТ, верхняя часть:

Здесь:

Все входы Вектор текстурных нодов (здесь и во всех остальных кадрах) подключены к выходу нода Отображение.

Черный движок нода Градиентная карта1 находится в положении 0.05.

Черный движок нода Градиентная карта2 находится в положении 0.48.

Белый движок нода Градиентная карта2 находится в положении 0.74.

Ноды Добавить и Умножить1 созданы из нода Математика.

Текстуры кадра ЦЕМЕНТ, нижняя часть:

Здесь:

Черный движок нода Градиентная карта3 находится в положении 0.48.

Белый движок нода Градиентная карта3 находится в положении 0.74.

Черный движок нода Градиентная карта4 находится в положении 0.25.

Белый движок нода Градиентная карта4 находится в положении 0.49.

Третий движок нода Градиентная карта4 находится в положении 0.73, его цвет серый — RGB 0.5.

Ноды Умножить созданы из нода Математика.

Ноды Разделить созданы из нода Смесь RGB.

Вход Цвет1 нода Разделить1 подключен к выходу нода Умножить1.

Цветовая и шейдерная части кадр ЦЕМЕНТ:

Здесь:

Цвет1 нода Смесь тёмно-серый — RGB 0.1.

Цвет2 нода Смесь светло-серый — R 0.55 G 0.57 B 0.57.

Вход Цвет2 нода Добавить подключен к выходу Цвет нода Градиентная карта1.

Вход Высота нода Рельеф подключен к выходу нода Разделить2.

Как и ранее в этой книге, параметры нода Рельеф (здесь и в кадре КИРПИЧИ) были мной скорректированы для адекватной работы в Блендере 2.73. Здесь у автора параметр Сила равняется 0.1 — прим. пер.)

2. Кадр КИРПИЧНАЯ_МАСКА.

Здесь:

Ноды с именем brick_mask – это нод Текстура плитки (Brick Texture). Их параметры почти совпадают (можно копировать один из другого), отличается только параметр Размер цемента. Цвет1 и Цвет2 — полностью белый RGB 1.0, цвет Цемент полностью чёрный — RGB 0.0.

Ноды Умножить и Экран созданы из нода Смесь RGB.

3. Кадр ГРЯЗЬ.

Здесь нод Разница создан из нода Смесь RGB.

4. Кадр КИРПИЧИ.

Текстуры рельефа, верхняя часть:

Здесь:

Черный движок нода Градиентная карта5 находится в положении 0.48.

Черный движок нода Градиентная карта6 находится в положении 0.48.

Белый движок нода Градиентная карта6 находится в положении 0.74.

Ноды Умножить созданы из нода Математика.

Нод Разница создан из нода Смесь RGB.

Текстуры рельефа, нижняя часть:

Здесь:

Черный движок нода Градиентная карта7 находится в положении 0.25.

Черный движок нода Градиентная карта8 находится в положении 0.036.

Ноды Умножить6, Умножить7, Умножить9, Добавить созданы из нода Математика.

Ноды Умножить8 и Разделить созданы из нода Смесь RGB.

Вход Цвет1 нода Умножить8 подключен к выходу нода Разница.

Верхний вход Значение нода Умножить9 подключен к выходу нода Экран кадра КИРПИЧНАЯ_МАСКА.

Цветовая часть кадра:

Здесь:

Цвета нода Текстура плитки:

Цвет1 — R 1.0 G 0.23 B 0.05

Цвет2 — R 0.46 G 0.05 B 0.01

Цемент — RGB 0.56

Все ноды Смесь и нод Цвет созданы из нода Смесь RGB.

Цвет2 нода Цвет — R 0.66 G 0.10 B 0.02

Цвет2 нода Смесь3 — R 0.60 G 0.06 B 0.01

Вход Коэфф нода Смесь3 подключен к выходу нода Градиентная карта8.

Цвет1 нода Смесь1 — RGB 0.02.

Вход Коэфф нода Смесь1 подключен к выходу нода Яркость/контраст2 кадра ГРЯЗЬ.

Цвет1 нода Смесь2 полностью белый — RGB 1.0.

Вход Коэфф нода Смесь2 подключен к выходу нода Яркость/контраст1 кадра ГРЯЗЬ.

Шейдерная часть кадра:

Здесь:

Вход Высота кадра Рельеф подключен к выходу нода Добавить.

Вход Цвет Диффузного шейдера подключен к выходу нода Смесь2.

Вход Цвет Глянцевого шейдера подключен к выходу нода Смесь3.

Результат работы всех кадров объединяется нодом Смешать шейдеры:

Здесь:

Вход Коэфф подключен к выходу кадра КИРПИЧНАЯ_МАСКА.

Верхний вход Шейдер подключен к выходу кадра ЦЕМЕНТ.

Нижний вход Шейдер подключен к выходу кадра КИРПИЧИ.

Как это работает...

Даже если этот материал может выглядеть довольно сложным, концепция очень проста: мы построили два отдельных материала, кирпич и цемент (строительный раствор), и затем мы смешали их комбинацией нодов Текстура плитки (Brick Texture), расположенных таким образом, чтобы получить менее регулярный и точный результат.

Мы начали с материала Кирпича:

От 1 до 4 шага мы построили основной шейдер, от шага 5 до 15 мы построили компонент рельефа кирпичного материала, а от шага 16 до 18 мы добавили базовую окраску кирпичей.

После этого мы построили материал Цемента: от 20 до 21 шага снова комбинация основного шейдера, от шага 22 до 32 мы построили рельеф для цемента, а от шага 33 до 35 — цвет для цемента.

Затем мы стали маскировать кирпичи, от шага 37 до шага 41; вторая Текстура плитки объединилась с первой для того, чтобы оставить искаженную границу пространства строительного раствора, чтобы получить нерегулярную форму кирпичей. В шаге 43 мы добавили черную и белую величины маскирующего кирпича в общий эффект рельефа.

В конце мы добавили легкий эффект грязи кирпичам, от шага 44 до 49.

Создание корпуса космического корабля

В этом рецепте мы создадим материал корпуса космического корабля, добавив также случайные световые окна и логотип с именем космического корабля, как будто нарисованного красным на самом корпусе:

Подготовка

Запустите Блендер и переключите на движок рендера Cycles. Выберите куб по-умолчанию и удалите его.

С курсором мыши в окне 3D-вида нажмите Shift + A на клавиатуре и добавьте примитив тора (Shift + A | Полисетка | Тор). Все еще в режиме Редактирования, масштабируйте его, увеличив по крайней мере в два раза (нажмите A, чтобы выбрать все вершины, затем клавиши S | 2 | Enter).

Выходите из режима Редактирования и в Структуре проекта (Outliner) выберите лампу; в панели Данных объекта справа измените её тип на Солнце, затем установите Размер на 0.100. Щелкните по кнопке Использовать узлы, и установите Силу на 10.000. Измените цвет на RGB 0.800.

Переходите в окно Мира и щелкните по кнопке Использовать узлы на панели Поверхность; щелкните по небольшому квадрату с точкой с правой стороны от поля Цвет: из меню выберите Текстура неба. Установите Силу на 0.100.

Выберите Камеру и на панели Преобразование (Transform) установите эти величины: Положение X 6.10677, Y -0.91141, Z -2.16840; Вращение X 112.778°, Y -0.003°, Z 81.888°.

Перейдите к окну Рендера и, на панели Сэмплирование (Sampling), установите Сэмплы на 50 как для Визуализации, так и для Предпросмотра. На панели Пути света (Light Paths) отметьте опцию Без каустики (No Caustics, в версии Блендера 2.73 надо, наоборот, отключить опции Светоотражающая каустика и Рефракционная каустика — доп.пер.) и установите Фильтр Глянца на 1.000. На панели Производительность (Performance) установите структуру Ускорения (Acceleration structure) на Статический BVH и отметьте опции Пространственная разбивка (Use Spatial Splits) и Кешировать BVH (Cache BVH).

Нажмите N с курсором мыши в окне 3D-вида, чтобы убрать панель Преобразование (Transform) и T, чтобы убрать панель Инструменты; разделите 3D-вид на две части и измените тип верхней на окно Редактора Узлов.

Разделите нижнее окно на две части и измените тип левой на окно Редактора UV/Изображений; выберите тор и нажмите Tab, чтобы войти в режим Редактирования. В заголовке окна измените режим выбора на Выделение граней и выберите только одну грань в меше (любую); нажмите два раза A, чтобы выбрать все грани и сохранить первую выбранную грань в качестве активной, затем нажмите U: в меню UV-разметки выберите Следовать активным граням (Follow Active Quads), затем, в следующем появившемся окне, выберите Четные (Even) для опции Режим длины рёбер (Edge Length Mode) и щёлкните по кнопке OK.

Поместите курсор мыши в окно Редактора UV/Изображений и нажмите A, чтобы выбрать все вершины UV-координат, затем уменьшите их масштабированием (S | .3 | Enter). Нажмите Tab, чтобы выйти из режима Редактирования и измените Редактор UV/Изображений на 3D-вид. Измените 3D-вид справа на вид из Камеры, нажав 0 на нумпаде (с курсором мыши, установленным в окне 3D-вида).

Переходите в окно Модификаторов объекта и назначьте тору модификатор Подразделения поверхности (Subdivision Surface): установите уровень Подразделения на 4 как для Вида, так и для Рендера; установите режим просмотра в окне с видом из Камеры на Рендер и переходите в окно Материала.

Как это сделать...

Добавьте новый материал и назовите его spacehull.

Общий вид сети:

Входы всех нодов Отображение кадров КОРПУС, ИМЯ, МАСКИРОВАНИЕ ОКОН и ОКНА подключены к выходу UV нода Текстурные координаты.

Кадр КОРПУС:

Здесь у обоих нодов Изображение-текстура используется файл изображения spacehull.png.

Кадр ИМЯ:

Здесь у нода Изображение-текстура используется файл изображения spacehull_name.png.

Кадр ШЕЙДЕР, общий вид:

Под-кадр ЗЕРКАЛЬНОСТЬ (specular):

Здесь:

Вход нода Яркость/Контраст подключен к выходу среднего текстурного нода (Изображение-текстура) кадра КОРПУС.

Вход Значение левого нода Умножить (он построен из нода Математика) подключен к нижнему текстурному ноду (Масгрейв) кадра КОРПУС.

Два нода справа (Умножить и Вычесть) построены из нода Смесь RGB.

Вход Цвет2 нода Вычесть подключен к выходу Цвет нода Изображение-текстура кадра ИМЯ.

Под-кадр РЕЛЬЕФ:

Здесь:

Нод Умножить создан из нода Смесь RGB.

Вход Коэфф нода Умножить подключен к выходу нода Яркость/Контраст под-кадра ЗЕРКАЛЬНОСТЬ.

Вход Цвет1 нода Умножить подключен к выходу среднего текстурного нода (Изображение-текстура) кадра КОРПУС.

Вход Цвет2 нода Умножить подключен к выходу верхнего текстурного нода (Изображение-текстура) кадра КОРПУС.

Как и почти во всей остальной книге, параметры нода Рельеф скорректированы для использования в версии Блендера 2.73. В оригинале значение параметра Сила равняется 0.05, для версии 2.66 нужно установить такое значение — прим. пер.

Формирование цвета в кадре ШЕЙДЕР:

Здесь:

Все ноды, кроме Вес слоя2, построены из нода Смесь RGB.

Цвет1 первого нода Смесь — R 0.40 G 0.46 B 0.50.

Цвет2 первого нода Смесь — R 0.33 G 0.33 B 0.26.

Цвет2 нода Цвет — R 0.50 G 0.68 B 0.80.

Вход Цвет2 нода Умножить подключен к выходу нода Яркость/Контраст под-кадра ЗЕРКАЛЬНОСТЬ.

Вход Коэфф нода Смесь подключен к выходу Альфа нода Изображение-текстура кадра ИМЯ.

Вход Цвет2 нода Смесь подключен к выходу Цвет нода Изображение-текстура кадра ИМЯ.

Собственно, сами шейдеры кадра ШЕЙДЕР:

Здесь:

Вход Цвет Диффузного шейдера подключен к выходу части этого кадра, формирующей цвет.

Входы Нормаль всех шейдерных нодов подключены к выходу под-кадра РЕЛЬЕФ.

Вход Шероховатость Глянцевого шейдера подключен к выходу нода Вычесть под-кадра ЗЕРКАЛЬНОСТЬ.

Цвет шейдеров Глянцевый BSDF и Анизотропный BSDF оставлен светло-серым по-умолчанию — RGB 0.8.

Кадр МАСКИРОВАНИЕ ОКОН:

Здесь:

Цвет1 нода Текстура плитки белый — RGB 1.0.

Цвет2 нода Текстура плитки серый — RGB 0.5.

Цвет Цемент нода Текстура плитки чёрный — RGB 0.0.

Цвет1 нода Текстура шахм. доски светло-серый — RGB 0.8.

Цвет2 нода Текстура шахм. доски чёрный — RGB 0.0.

Ноды Прожигание и Умножить построены из нодов Смесь RGB.

Вход Цвет1 нода Умножить подключен к выходу нода Яркость/Контраст под-кадра ЗЕРКАЛЬНОСТЬ.

Лично мне не понравилось слишком регулярное расположение окон, получаемое в результате действий этого кадра (клетки Текстуры шахматной доски там слишком заметны). Тут нужны какие-нибудь более случайные текстуры, например Текстура шума — прим. пер.

Кадр ОКНА:

Здесь:

Здесь у нода Изображение-текстура используется файл изображения spacehull_windows.png.

Цвет2 нода Цвет — R 0.80 G 0.48 B 0.18.

Окончательное формирование материала:

Здесь:

Вход Коэфф подключен к выходу кадра МАСКИРОВАНИЕ ОКОН.

Верхний вход Шейдер подключен к выходу кадра ШЕЙДЕР.

Нижний вход Шейдер подключен к выходу кадра ОКНА.

Автор переименовал нод Смешать шейдеры в ADD WINDOWS (добавить окна), но мне показалось это лишним. У себя можете всё-таки это сделать — прим. пер.

Как это работает...

От 1 до 8 шага мы строили общий шейдер для металлического корпуса (кадр ШЕЙДЕР).

От шага 9 до 14 мы строили кадр КОРПУС, который не используется в шейдере сразу же, но предоставляет основной узор, который нужно использовать для рельефа и для отражательной (specular) компоненты (и для цвета также). В шагах 15 и 16 мы добавили под-шейдер рельефа (под-кадр РЕЛЬЕФ), накладывающий две по-разному масштабированные версии одного и того же изображения панелей корпуса, получаемых из кадра КОРПУС.

От 17 до 20 шага мы строили под-кадр ЗЕРКАЛЬНОСТЬ (specular), в котором меняется контраст компоненты КОРПУС, и подключили его затем напрямую ко входу Шероховатость Глянцевого шейдера; эффект добавляется к Анизотропному отражению нодом Сложить шейдеры, чтобы придать металлический вид. От шага 21 до шага 25 мы строили кадр ОКНА для светящихся окон, которые мы прибавили к корпусу.

От 26 до 30 шага мы создали маскирование окон, чтобы они появлялись произвольно и неоднородно (по-моему, этого не получилось — прим. пер.). От шага 31 до шага 35 мы добавили логотип с именем к корпусу, используя собственный альфа-канал изображения в качестве показателя смешивания (кадр ИМЯ).

В шаге 36 мы добавили небольшое улучшение в цвета, умножая изображение панелей корпуса с увеличенным контрастом (нод Умножить в кадре ШЕЙДЕР), и наконец в шаге 37 мы вычли изображение логотипа из зеркальности корпуса, чтобы сделать его менее блестящим (нод Вычесть в под-кадре ЗЕРКАЛЬНОСТЬ).

И больше...

Вот чего мы достигли:

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

Перейдите в окно Модификаторов объекта и назначьте тору второй модификатор Подразделения поверхности; установите уровни Подразделения на 2 как для Вида, так и для Рендера.

Назначьте модификатор Смещения поверхности, затем нажмите кнопку Show texture in texture tab (показать текстуру на панели текстур) справа от слота Текстура; в окна Текстур нажмите на кнопку Создать, затем измените текстуру Облаков по-умолчанию на текстуру Изображение или фильм (Image or Movie).

Щелкните по кнопке Открыть и загрузите текстуру spacehull_displ.exr. Возвращайтесь к окну Модификаторов объектов и установите Силу смещения на 0.200; в поле Текстурные координаты выберите UV.

Таким образом, детали смещения смешиваются с шейдерными панелями корпуса, что приводит к хорошему результату. Файл spacehull_displ.exr - это 32 битная карта смещения, запечённая во Встроенном движке рендера Блендера (в данный момент Cycles не имеет возможности запекать текстуры или шейдеры). Я смоделировал с помощью плоскостей и масштабированных кубов простую greeble-панель, затем я запёк смещение на другую развернутую плоскость:

Яндекс-словарь не даёт перевода слова «greeble», английская википедия рассказывает про «добавление детализации на поверхность большого объекта». Для Блендера существует аддон Discombobulator, добавляющий этот эффект. У Блендера 2.4 он присутствовал в стандартной поставке, для нынешних версий его надо искать и скачивать отдельно, я нашел здесь http://code.metager.de/ source/raw/blender/release/scripts/addons_contrib/mesh_discombobulator.py — прим. пер.

Если вы хотите бегло ознакомиться со сценой, откройте файл 1301OS_06_greeble.blend.

Последняя вещь, которую мы можем сделать для улучшения модели — это назначить мешу тора, после модификатора Смещения поверхности, модификатор Аппроксимация (Decimate), с типом Планарно (Planar) и с коэффициентом 0.3000 или аналогичным; вы неизбежно потеряете какое-то количество деталей, но получите намного более лёгкую сетку.

Смотрите также

Есть интересная и длинная тема о технике смещения поверхности на форуме Blender Artist, по следующей ссылке: http://blenderartists.org/forum/showthread.php?273033-Sculpting-with-UVs-and-displacements

Глава 7. Подповерхностное рассеивание (SSS) в Cycles

Эта глава взята из третьего издания книги, в первом издании аналогичная глава (с разделами о создании кожи человека, но без описания встроенного шейдера SSS, его на тот момент не существовало) была восьмой. Соответственно, бывшая седьмая глава «Создание органических материалов» стала восьмой главой, и раздел о создании шейдера кожи человека перенесён туда. Имена используемых файлов указаны в соответствии с третьим изданием, имя соответствующего файла из первого издания я буду оговаривать, если там такой файл существует. Как и ранее в этом переводе, работу всех материалов я проверяю в версии Блендера 2.73 — прим. пер.

В этой главе мы изучим:

Использование шейдера Подповерхностного рассеивания

Имитация Подповерхностного рассеивания в Cycles с использованием Просвечивающего шейдера

Имитация Подповерхностного рассеивания в Cycles с использованием Цвета вершин

Имитация Подповерхностного рассеивания в Cycles с использованием выхода Длина луча нода Путь Света

Создание нодовой группы Фальшивого Подповерхностного рассеивания

Введение

Подповерхностное рассеивание (Subsurface Scattering, SSS) является таким эффектом, когда свет не отражается непосредственно поверхностью, но проникает в неё и проходит внутри, перед тем как поглотится или покинет поверхность в соседней точке. Короче говоря, свет рассеивается.

RGB-каналы цвета поверхности могут иметь различные величины рассеивания, в зависимости от материала; например, для человеческой кожи красный компонент рассеивается сильнее (в качестве грубой аппроксимации, величины для трех каналов можно считать такими: синий = 1, зеленый= 2, и красный = 4).

В Cycles нод настоящего (true) Подповерхностного рассеивания появился в Блендере 2.67. С версии 2.72 он также работает с GPU (только, если установлен Экспериментальный режим).

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

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

Также, в зависимости от рецепта, вы увидите, что эффекты Подповерхностного рассеивания могут сильно отличаться, и нужно использовать более подходящий метод в зависимости от того типа материала, который вы собираетесь создавать. Различия в этих рецептах состоят в основном в способе примешивания прозрачности в зависимости от разных типов входа.

Использование шейдера Подповерхностного рассеивания

Давайте сначала посмотрим, как настоящий нод Подп. Рассеивание (Subsurface Scattering) работает в Cycles, пример показан на следующем скриншоте:

Нод SSS в Cycles

Подготовка...

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

Давайте начнём с настройки Плоскости под Сюзанной, как источника света, чтобы усилить эффект просвечивания у эффекта SSS:

Запустите Блендер и откройте файл 9931OS_07_start.blend, где уже присутствует развернутый меш Сюзанны, лежащий на Плоскости, с двумя меш-светильниками и Камерой, как показано на следующем скриншоте (если имеется архив с blend-файлами от первого издания книги, то имя файла будет, соответственно 1301OS_08_start.blend — прим. пер.):

Скриншот файла 9931OS_07_start.blend

Перейдите к окну Структура проекта (Outliner) и выберите объект Plane (плоскость). Как вы можете видеть в окне Редактора Узлов, он уже имеет материал с именем Plane.

Перейдите к окну Материала на панели Свойств, и в подпанели Поверхность, переключите шейдер Диффузный BSDF на шейдер Излучение (Emission), как показано на следующем скриншоте:

Переключение шейдера Диффузный BSDF на шейдер Излучение в окне Материала

Задайте значение Силы на 5.0.

Со стрелкой мыши в 3d-окне, нажмите Shift + Z, чтобы перейти в режим вида С визуализацией (рендер).

Как это сделать...

Теперь давайте начнем создавать материал SSS, используя следующие шаги:

Выберите Сюзанну, и щелкните по кнопке Создать в подпанели Поверхность в окне Материала на панели Свойств, или в окне Редактора Узлов.

Используя только окно Материала, замените шейдер Диффузный BSDF на нод Подп. рассеивание, как показано на следующем скриншоте:

Предпросмотр рендера Сюзанны с нодом SSS в качестве материала

Как вы можете видеть, рассеивающий эффект ясно заметен в предварительном просмотре рендера, но на самом деле он такой сильный, что все черты лица бедной Сюзанны слились и результат выглядит как желе, muddish материалом.

По умолчанию, величина Масштаб (Scale) нода Подп. рассеивание установлена в 1.000, что очевидно многовато для объекта, который предполагает быть 2 метра высотой (помните, что по умолчанию, одна единица Блендера предполагается соответствующей 1 реальному мировому метру).

Постепенно уменьшайте параметр Масщтаб, или в Редакторе Узлов, или в окне Материала, чтобы выбрать величину в диапазоне от 0.100 до 0.200. В моем случае, я остановился на 0.150. Теперь некоторые черты лица Сюзанны стали ясно различимыми, как показано на следующем скриншоте:

Модификация параметра Масштаб нода SSS

Щелкните по кнопке Радиус в интерфейсе нода в окне Редактора Узлов (или непосредственно в окне Материала), и измените величины R на 4.000, G на 2.000, и B на 1.000, как показано на следующем скриншоте (К сожалению, буквы R,G,B в интерфейсе отсутствуют, нужно помнить, что R сверху, G в середине, B снизу — прим. пер.):

Модификация параметра Радиус нода SSS

Уменьшите величину Масштаба до 0.070; установите величину Острогранность (Sharpness) на 1.000; и щелкните по полю Цвет, чтобы установить величины R на 1.000, G на 0.500, и B на 0.250.

Установка цвета плоти для SSS Сюзанны

Переименуйте материал в SSS_01 и сохраните файл с именем SSS_material.

Теперь щелкните по кнопке F справа от имени блока данных Материала, чтобы включить фальшивого пользователя. Затем щелкните по кнопке с цифрой 2 и переименуйте новый материал в SSS_02. Также включите фальшивого пользователя для этого материала.

Добавьте нод Сложить шейдеры (Add Shader, нажмите Shift + A и выберите Шейдер | Сложить шейдеры) и вставьте его между нодом SSS и нодом Вывод материала.

Добавьте нод Смешать шейдеры (Mix Shader, нажмите Shift + A и выберите Шейдер | Смешать шейдеры) и подключите его к первому входному сокету Шейдер нода Сложить шейдеры, чтобы предыдущая связь, приходящая от нода SSS, автоматически перенеслась на второй входной сокет Шейдер.

Добавьте ноды Диффузный BSDF и Глянцевый BSDF (нажмите Shift + A и выберите Шейдер | ...), и подключите их, соответственно, к первому и второму входным сокетам Шейдер нода Смешать шейдеры, как показано на следующем скриншоте:

Добавление Диффузно-Глянцевого шейдера к ноду SSS

Добавьте нод Вес Слоя (Layer Weight, нажмите Shift + A и выберите Ввод | Вес Слоя) и подключите его выход Поворот (Facing) к входному сокету Коэфф. нода Смешать шейдеры. Установите величину Смешение (Blend) на 0.800.

Добавьте нод RGB (нажмите Shift + A и выберите Ввод | RGB), и подключите его выход к входным сокетам Цвет нодов Диффузный BSDF, Глянцевый BSDF, и SSS. Установите значения цвета R на 1.000, G на 0.500, и B на 0.250, как показано на следующем скриншоте:

Установка цвета плоти для всех шейдерных нодов

Сохраните файл.

Давайте теперь попробуем немного другую настройку, с двумя движками для примешивания SSS и базовых шейдеров. Мы также присвоим индивидуальные цвета для отдельных компонент Диффузного BSDF, Глянцевого BSDF, и SSS, чтобы выделить их распределение в меше.

Сначала выберите объект Plane, и в окне Материала переключите шейдер Излучения на нод шейдера Диффузный BSDF.

Снова выберите Сюзанну и щелкните по кнопке с цифрой 2 рядом с именем блока данных Материала. Переименуйте новый материал в SSS_03. Затем также включите фальшивого пользователя для этого материала.

Удалите нод RGB. Затем установите величину Цвета у шейдера Диффузный BSDF: R на 0.031, G на 0.800, и B на 0.000 (ярко зеленый); у нода Глянцевый BSDF установите такой Цвет: R на 0.646, G на 0.800, и B на 0.267 (желтый). Установите величину Шероховатость у нода Глянцевый BSDF в 0.200 и Распределение на Beckmann. Установите значения Цвета шейдера SSS: R на 0.800, G на 0.086, и B на 0.317 (ярко розовый). Замените Спад с Кубического на Гауссовский (Gaussian).

Задайте Метку (Label) нода Смешать шейдеры как Смешать шейдеры1, нажмите Shift + D, чтобы продублировать его, и пометьте дубликат как Смешать шейдеры2. Вставьте его между нодами Сложить шейдеры и Вывод материала.

Подключите выход нода Смешать шейдеры1 к первому входному сокету Шейдер нода Смешать шейдеры2, чтобы связь от нода Сложить шейдеры автоматически переключилась на второй входной сокет Шейдер.

Нажмите Shift + D, чтобы продублировать нод Смешать шейдеры2, пометьте дубликат как Смешать шейдеры3, и вставьте его между нодами Смешать шейдеры2 и Вывод материала.

Соедините выход нода Подп. рассеивание ко второму входному сокету Шейдер нода Смешать шейдеры3, как показано на следующем скриншоте:

Добавление еще одного нода Смешать шейдеры, чтобы в дальнейшем настраивать количество SSS

Сохраните файл с именем SSS_material_02.blend.

Как это работает...

Суммарное рассеивание для трех цветовых RGB-каналов устанавливается в поле Радиус на интерфейсе нода, тогда как Масштаб должен устанавливать размеры, которые объект должен иметь в реальном мире. Начиная со значения по умолчанию 1.000, величина Масштаба обычно должна обратно пропорционально уменьшаться. Чем большим объект должен быть в реальном мире, тем ниже значение Масштаба в ноде. В противном случае, эффект рассеивания может стать слишком сильным.

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

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

Различные эффекты различных величин Коэфф. последних нодов Смешать шейдеры

Смотрите также

Объяснение эффекта SSS в википедии: https://ru.wikipedia.org/wiki/ Подповерхностное_рассеивание

Имитация Подповерхностного рассеивания в Cycles с использованием Просвечивающего шейдера

В этом рецепте мы создадим материал фальшивого Подповерхностного рассеивания, используя нод Просвечивающего BSDF (Translucent BSDF), как показано на следующем скриншоте:

Результат рендера фальшивого SSS в этом рецепте

Как кто-то подсказал, этот материал на самом деле может неплохо делать свечи.

Подготовка

Запустите Блендер и откройте файл 9931OS_07_start.blend (1301OS_08_start.blend в случае использования файлов от первого издания — прим. пер.)

Перейдите в окно Рендера, и в подпанели Сэмплирование (Sampling), щелкните по выбору Метода сэмплирования источников освещения и материалов (Method to sample lights and materials), чтобы переключить с Трасировки путей (Path Tracing) на Трассировку Путей с расщеплением (Branched Path Tracing). Включите галочку Возвести сэмплы в квадрат (Square Samples), и в поле Сэмплы сглаж. (AA Samples), установите величину Визуализация на 8. Наконец, щелкните на кнопке Шаблон (Pattern), чтобы выбрать пункт Коррелированное множественное дрожание (Correlated Multi-Jitter) (у меня этот самый Шаблон пропадает, если в данный момент включены GPU-вычисления — прим. пер.).

Сохраните файл с именем 9931OS_SSS_translucent.blend.

Как это сделать...

Выберите Сюзанну и создайте для неё материал с именем SSS_translucent.

Общий вид сети:

Текстурная часть сети:

Шейдерная часть сети:

Здесь:

Вход Высота нода Рельеф подключен к выходу нода Текстура шума.

Выход нода Смешать шейдеры2 подключен к ноду Вывод материала.

Цвет Диффузного шейдера: R 0.03 G 0.8 B 0.0.

Цвет Глянцевого шейдера: R 0.65 G 0.8 B 0.27.

Цвет Просвечивающего шейдера: R 0.8 G 0.09 B 0.32.

Как это работает...

Это, вероятно, простейшая форма эффекта фальшивого Подповерхностного рассеивания, которую вы можете получить в Cycles. Он получен просто смешиванием эффекта полупрозрачности с базовым Диффузно-Глянцевым шейдером. Изменяя величину Показателя преломления (IOR) в ноде Френель (выставленной очень большой в качестве отправного пункта), можно настроить суммарную прозрачность в меше. Мы также добавили к материалу эффект рельефа с Текстурой Шума, просто, чтобы сделать его более желеобразным.

Заметьте, что мы дали почти противоположные цвета для шейдеров Диффузный BSDF и Просвечивающий BSDF, чтобы показать эффект более четко, но подобные друг другу цвета могут работать лучше. Также заметьте, что просвечивающий эффект на самом деле следует за направлением освещения. Попробуйте поворачивать плоскости Emitter и Emitter_back вокруг меша Сюзанны, чтобы удостовериться в этом в реальном времени, через Предпросмотр рендера, как показано на следующем скриншоте:

Предпросмотр фальшивого SSS, освещённого под другим углом.

Заметьте, что для трех компонентов щейдера (Диффузный BSDF, Глянцевый BSDF, и Просвечивающий BSDF) мы использовали (и также будем использовать в следующих рецептах) те же цвета, что и в материале SSS_03. Это сделано, чтобы было легче сравнивать эффекты, полученные в рецептах.

Имитация Подповерхностного рассеивания в Cycles с использованием Цвета вершин

В этом рецепте мы создадим материал с фальшивым Подповерхностным рассеиванием, который показан на следующем скриншоте, используя Цвета вершин:

Результат рендера фальшивого SSS в этом рецепте

Подготовка

Запустите Блендер и откройте файл 9931OS_07_start.blend (1301OS_08_start.blend в случае использования файлов от первого издания — прим. пер.)

Перейдите в окно Рендера, и в подпанели Сэмплирование (Sampling), щелкните по выбору Метода сэмплирования источников освещения и материалов (Method to sample lights and materials), чтобы переключить с Трасировки путей (Path Tracing) на Трассировку Путей с расщеплением (Branched Path Tracing). Включите галочку Возвести сэмплы в квадрат (Square Samples), и в поле Сэмплы сглаж. (AA Samples), установите величину Визуализация на 8. Наконец, щелкните на кнопке Шаблон (Pattern), чтобы выбрать пункт Коррелированное множественное дрожание (Correlated Multi-Jitter).

Выберите меш Сюзанны, щелкните по кнопке Режим в заголовке окна с видом из Камеры, и выберите Рисование по вершинам (Vertex Paint, можно просто нажать клавишу V). Теперь Сюзанна перешла в режим Раскрашивания вершин.

Щелкните по меню Кисть (Paint) слева от кнопки Режима и выберите Черновой Цвет Вершин. Затем нажмите T, и в подпанели последнего действия (Черновой Цвет Вершин) внизу панели Инструментов, введите Силу размытия (Blur Strength) на 0.50, Угол подсветки (Highlight Angle) на 90°, и Черновой Угол (Dirt Angle) на 90°. Включите пункт Только начерно, как показано на следующем скриншоте:

Скриншот Сюзанны в режиме Рисования по вершинам и значения параметров Чернового Цвета Вершин внизу панели инструментов

Меш Сюзанны в файле 9931OS_07_start.blend уже имел слой Цветов Вершин с именем Col. Своими действиями мы его переписали.

Перейдите в окно данных Объекта на главной панели Свойств, чтобы увидеть этот слой в подпанели Цветов Вершин. Затем вернитесь в Режим объектов и нажмите T, чтобы убрать панель Инструментов.

Сохраните файл с именем 9931OS_07_SSS_vcol.blend.

Как это сделать...

После подготовки цветов вершин давайте перейдём к материалу. Добавьте Сюзанне новый материал и назовите его SSS_vcol.

Общий вид сети:

Текстурная часть сети:

Управляющая часть сети:

Здесь:

В поле Имя нода Атрибут введено название слоя Цветов вершин Col.

Белый движок нода Градиентная карта находится на отметке 0.35.

Первая точка графика нода RGB-кривые находится в месте X=0.0, Y=0.88, вторая точка осталась в правом верхнем углу.

Шейдерная часть сети:

Здесь:

Вход Высота нода Рельеф подключен к выходу нода Текстура шума.

Цвет Диффузного шейдера: R 0.03 G 0.8 B 0.0.

Цвет Глянцевого шейдера: R 0.65 G 0.8 B 0.27.

Цвет Просвечивающего шейдера: R 0.8 G 0.09 B 0.32.

Вход Коэфф. нода Смешать шейдеры2 подключен к выходу нода RGB-кривые.

Выход подключен к ноду Вывод материала.

Цвета шейдеров используются те же, что и в предыдущем рецепте.

Как это работает...

По сравнению с предыдущим рецептом, в этом случае мы использовали информацию о Цвете вершин, улучшили нодом Градиентная карта, чтобы управлять смешиванием прозрачности с остальными компонентами шейдера. Ясно, что конечный результат в значительной степени зависит от раскраски вершин. Мы быстро получили этот результат через инструмент Черновой Цвет Вершин, но можно также окрасить вручную (представьте себе, что вы рисуете маску для черепа под кожей лица).

Имитация Подповерхностного рассеивания в Cycles с использованием выхода Длина луча нода Путь Света

В этом рецепте мы создадим материал фальшивого Подповерхностного рассеивания, используя выход Длина луча нода Путь света.

Подготовка

Запустите Блендер и откройте файл 9931OS_07_start.blend (1301OS_08_start.blend в случае использования файлов от первого издания — прим. пер.)

Перейдите в окно Рендера, и в подпанели Сэмплирование (Sampling), щелкните по выбору Метода сэмплирования источников освещения и материалов (Method to sample lights and materials), чтобы переключить с Трасировки путей (Path Tracing) на Трассировку Путей с расщеплением (Branched Path Tracing). Включите галочку Возвести сэмплы в квадрат (Square Samples), и в поле Сэмплы сглаж. (AA Samples), установите величину Визуализация на 8. Наконец, щелкните на кнопке Шаблон (Pattern), чтобы выбрать пункт Коррелированное множественное дрожание (Correlated Multi-Jitter).

Сохраните файл с именем 9931OS_07_SSS_raylength.blend.

Как это сделать...

Создайте материал для Сюзанны и назовите его SSS_raylength.

Общий вид сети:

Управляющая часть сети:

Здесь ноды Умножить, Степень и Добавить созданы из нода Математика.

(В этом рецепте автор изменил себе и не стал добавлять перед текстурным нодом обычную пару нодов Текстурные координаты и Отображение — прим. пер.)

Шейдерная часть сети:

Здесь:

Вход Высота нода Рельеф подключен к выходу Цвет нода Текстура Вороного.

Цвет Диффузного шейдера: R 0.03 G 0.8 B 0.0.

Цвет Глянцевого шейдера: R 0.65 G 0.8 B 0.27.

Цвет Просвечивающего шейдера: R 0.8 G 0.09 B 0.32.

Смешивающая часть сети:

Здесь:

Вход Коэфф. нода Смешать шейдеры4 подключен к выходу нода Добавить.

Верхний вход Шейдер нода Смешать шейдеры4 подключен к выходу Диффузного шейдера.

Нижний вход Шейдер нода Смешать шейдеры4 подключен к выходу Просвечивающего шейдера.

Нижний вход Шейдер нода Сложить шейдеры подключен к выходу Просвечивающего шейдера.

Верхний вход Шейдер нода Смешать шейдеры3 подключен к выходу Диффузного шейдера.

Нижний вход Шейдер нода Смешать шейдеры2 подключен к выходу Глянцевого шейдера.

Верхний вход Шейдер нода Смешать шейдеры1 подключен к выходу Диффузного шейдера.

Выход подключен к ноду Вывод материала.

Как это работает...

В этом рецепте мы использовали выход Длина луча нода Путь света, чтобы управлять количеством прозрачности в меше. Нод Длина луча делает именно то, что говорится в его имени. Он возвращает длину светового луча, проходящего через объект. Таким образом в Cycles появляется возможность учитывать толщину меша. В толстых частях прозрачность будет уменьшена или даже сойдёт на нет, в то же время она будет более заметна в тонких частях меша.

Заметьте, что в шейдерной сети выход Длина луча был усилен набором Математических нодов и был добавлен к выходу нода Текстура Вороного. Затем он был подключен ко входу Коэфф нода Смешать шейдеры, чтобы управлять смешиванием Диффузной и Просвечивающей компонент.

Честно говоря, мне всё равно непонятно всё это нагромождение четырёх смешивающих нодов, и из каких соображений они соединены именно так — прим. пер.

Создание нодовой группы фальшивого Подповерхностного рассеивания

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

Результат рендера нодовой группы фальшивого SSS, назначенной Сюзанне

На следующем скриншоте вы можете видеть эффект нодовой группы, добавленной к материалу с обычным базовым шейдером :

Снова мы использовали цвета предыдущих рецептов.

Подготовка

Запустите Блендер и откройте файл 9931OS_07_start.blend (1301OS_08_start.blend в случае использования файлов от первого издания — прим. пер.)

Перейдите в окно Рендера, и в подпанели Сэмплирование (Sampling), щелкните по выбору Метода сэмплирования источников освещения и материалов (Method to sample lights and materials), чтобы переключить с Трасировки путей (Path Tracing) на Трассировку Путей с расщеплением (Branched Path Tracing). Включите галочку Возвести сэмплы в квадрат (Square Samples), и в поле Сэмплы сглаж. (AA Samples), установите величину Визуализация на 8. Наконец, щелкните на кнопке Шаблон (Pattern), чтобы выбрать пункт Коррелированное множественное дрожание (Correlated Multi-Jitter).

Сохраните файл с именем 9931OS_07_SSS_ngroup.blend.

Как это сделать...

Вначале будем строить сеть, из которой потом создадим группу.

Общий вид сети:

Левая часть:

Здесь все ноды с математическими действиями созданы из нода Математика.

Правая часть:

Здесь:

Ноды Минимум и Степень созданы из нода Математика.

Верхний вход Значение нода Минимум подключен к выходу нода Добавить левой части.

Нод Контраст — это нод Значение (Value), у которого переименована Метка на слово «Контраст».

У нода Градиентная карта добавлен посередине (Положение 0.5) третий движок с серым цветом RBG 0.5.

Нод Наложение создан из нода Смесь RGB.

В данный момент Цвет2 нода Наложение установлен в R 0.5 G 0.054 B 0.077, но так как он будет подключен к одному из входов группы, то это не так важно.

Выход шейдера Просвечивающий BSDF в данный момент подключен к ноду Вывод материала.

Теперь выполним создание группы:

Нужно выделить всё, кроме нодов Вывод материала и Контраст (Значение). Нажмите Ctrl-G для создания нодовой группы.

Выделите нод Вход группы. На N-панели Интерфейс переименуйте выставленный наружу сокет Value в Контраст, задайте его значение по-умолчанию 1.0. Снаружи группы теперь можно удалить нод Контраст.

Перетащите входной сокет Цвет2 нода Наложение на нижний пустой сокет нода Вход группы. Переименуйте этот сокет в Цвет_SSS.

Перетащите входной сокет Нормаль нода Просвечивающий BSDF на нижний пустой сокет нода Вход группы.

Нажмите Tab для выхода из группы. Переименуйте её в SSS_group.

Таким образом, мы создали нодовую группу Подповерхностного рассеивания, готовую для смешивания с любым материалом поверхности.

Давайте теперь создадим простой материал, чтобы смешать с нодовой группой.

Общий вид сети:

Здесь цвета взяты такие же, как в предыдущих рецептах:

Цвет Диффузного шейдера: R 0.03 G 0.8 B 0.0.

Цвет Глянцевого шейдера: R 0.65 G 0.8 B 0.27.

Цвет нодовой группы SSS: R 0.8 G 0.09 B 0.32.

Как это работает...

Ключевым для этого материала, очевидно, является нод Путь Света, с его несколькими типами выходов. В этом случае нас интересуют два из них:

Выходы Длина луча (Ray Length) и Луч из камеры (Is Camera Ray) нода Путь Света складываются. Длина луча определяет толщину меша, и она также сначала зажимается (clamped) нодами Умножить и Степень. Выход Луч из камеры даёт Cycles для рендера только те точки поверхности, в которые лучи света, выходящие из камеры, попадают непосредственно. После их сложения, два типа выходов совместно производят эффект трафарета, в котором изображение в градациях серого распределяется в соответствии с толщиной меша.

Затем добавляется выход Обратный разворот (Backfacing) нода Геометрия, чтобы принять во внимание цвет задних граней меша. Все это умножается вторым нодом Степень на входную величину группы Контраст и далее сжимается (clamped) нодом Градиентная карта.

В этом месте, результат в ноде Наложение смешивается с величиной Цвет_SSS, подаваемой на вход группы, и наконец, подключается к входному сокету Цвет шейдера Просвечивающий BSDF, в результате получается выглядящий-полу-прозрачным шейдер из первого изображения в начале этого рецепта.

Глава 8. Создание органических материалов

Как я уже писал в начале седьмой главы, нумерация глав в третьем издании была изменена. Большинство рецептов этой главы в первом издании были в 7 главе. Имена файлов я указываю для обоих изданий — прим. пер.

В этой главе мы изучим:

Создание змееподобного чешуйчатого материала с помощью изображений и процедурных текстур (из 1 издания)

Создание органически-выглядящего шейдера с помощью процедурных текстур (из 3 издания)

Создание хитинового материала для осы с помощью процедурных текстур

Создание хитинового материала для жука с помощью процедурных текстур

Создание шейдера травы (из 1 издания)

Создание шейдера дерева — кора

Создание шейдера дерева — листья

Создание многоуровневого материала человеческой кожи в Cycles

Создание меха и волос

Создание материала кожи Серого Инопланетянина с помощью процедурных текстур

Введение

Мы видели природные материалы в Главе 3, Создание природных материалов в Cycles, и Главе 5, Создание сложных природных материалов в Cycles, теперь настало время бегло знакомиться с органическими шейдерами.

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

Во всяком случае, процедурные текстуры часто добавляются в сети материалов, для уточнения деталей или добавления "беспорядка" к слишком повторяющемуся узору.

Создание змееподобного чешуйчатого материала с помощью изображений и процедурных текстур

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

В этом рецепте мы создадим чешуйчатый материал кожи, как у змеи, вот он на иллюстрации:

Подготовка

Запустите Блендер и откройте файл 9931OS_08_start.blend (если имеется архив с blend-файлами от первого издания книги, то имя файла будет, соответственно 1301OS_07_start.blend — прим.пер.), где уже настроена сцена с примитивом Сюзанны с UV-развёрткой.

Как это сделать...

Добавьте новый материал и назовите его scales(чешуйки).

Нажмите Tab, чтобы войти в режим редактирования, и выделите вершины обоих глаз (наведите курсор мыши на глаз и нажмите L, чтобы выделить связанные вершины). Нажмите на кнопку + в окне материалов, чтобы добавить новый материал, затем кнопку Назначить (Assign). Переименуйте новый материал в eyes. Нажмите Tab, чтобы выйти из режима редактирования.

Полная сеть материала scales:

Ноды Текстурные координаты и Отображение:

Цветовая часть сети:

Здесь:

Входы текстурных нодов подключены к выходу нода Отображение.

В ноде Изображение-текстура загружен файл scales_tile.png.

У нода Градиентная карта узор 5 движков, делящих диапазон на 4 чёрные и белые примерно равные по длине части.

Цвет1 нода Чешуйки узор (переименованный нод Смесь) — R 0.5 G 0.35 B 0.0

Цвет2 нода Чешуйки узор — R 0.43 G 0.5 B 0.34.

Цвет1 нода Чешуйки затемнение (переименованный нод Смесь) — R 0.13 G 0.05 B 0.03.

Нод Чешуйки суммарное затемнение тоже является переименованным нодом Смесь.

Рельефная часть сети:

Здесь:

Входы текстурных нодов подключены к выходу нода Отображение.

Вход нода Инвертировать подключен к выходу нода Изображение-текстура.

Ноды с математическими действиями — ноды Математика.

Шейдерная часть сети:

Здесь:

Вход Коэфф нода Связующий цвет (переименованный нод Смесь) подключен к выходу нода Градиентная карта чешуйки

Вход Цвет1 нода Связующий цвет подключен к выходу нода Чешуйки суммарное затемнение

Вход Высота нода Рельеф подключен к выходу нода Добавить2

Цвет2 нода Связующий цвет — R 0.5 G 0.36 B 0.3

Цвет1 шейдера Глянцевый BSDF – R 0.53 G 0.71 B 0.8

Как это работает...

Вот как предыдущие шаги работают для создания змееподобного чешуйчатого материала:

От шага 3 до 6 мы построили основу для смешивания шейдеров, как обычно, диффузный и глянцевый ноды, в соответствии с выходом нода Френель (последняя, шейдерная часть сети — прим пер.).

Начиная с шага 7, мы начали строить узор рельефа чешуек, используя "повторяемое" (tile-able) изображение. А начиная с шага 11 мы улучшили детальность в узоре чешуек, добавив выход нескольких процедурных текстур. На шаге 18 узор рельефа был завершен (Здесь, в основном, рельефная часть + нод Изображение-текстура из цветовой части — прим.пер.).

От шага 19 до 28 мы строили цветовой узор, смешивая величины изображения-текстуры с процедурным шумом, чтобы добавить неравномерную темную окраску к чешуйкам, и используя края изображений чешуек, как шаблон для нода Связующий_цвет (Цветовая часть сети — прим. пер).

Создание органически-выглядящего шейдера с помощью процедурных текстур

От переводчика: этот рецепт появился в третьем издании книги.

В этом рецепте мы создадим некий органический, отвратительный на вид материал, как показано на следующем скриншоте:

Отвратительный органический материал, как он выглядит в финальном рендере

Подготовка

Запустите Блендер и откройте файл 9931OS_08_start.blend (если имеется архив с blend-файлами от первого издания книги, то имя файла будет, соответственно 1301OS_07_start.blend — прим.пер.), где уже присутствует настроенная сцена с простым объектом развернутой Сюзанны, лежащей на Плоскости Plane, излучающим меш-светильником, и Камерой.

Перейдите в окно Рендера, и в подпанели Сэмплирование замените Шаблон (Pattern) с Соболь (Sobol) на Кореллированное множественное дрожание (Correlated Multi-Jitter).

Как это сделать...

Создайте новый материал и назовите его Organic.

Общий вид сети:

Текстурная часть сети:

Здесь нод Векторная_деформация — это переименованный нод Смесь RGB.

Преобразующая часть сети:

Здесь:

Входы всех трёх нодов Градиентная карта подключены к выходу нода Текстура Вороного.

Черный движок нода Градиентная карта1 расположен на отметке 0.4.

Белый движок нода Градиентная карта1 расположен на отметке 0.7.

Черный движок нода Градиентная карта2 расположен на отметке 0.0.

Белый движок нода Градиентная карта2 расположен на отметке 0.3.

Черный движок нода Градиентная карта3 расположен на отметке 0.805.

Белый движок нода Градиентная карта3 расположен на отметке 0.0.

Интерполяция нода Градиентная карта3 установлена на Кардинальный сплайн (Cardinal).

Ноды Добавить и Умножить созданы из нода Смесь RGB.

Цветовая часть сети:

Здесь:

Цвет нода RGB – R 0.9 G 0.12 B 0.40.

Ноды Диффузный_Цвет, Диффузный_Умножить и Глянцевый_Цвет — созданы из нода Смесь RGB и переименованы.

Вход Цвет2 нода Диффузный_Умножить подключен к выходу Цвет нода Градиентная карта2.

Цвет2 нода Диффузный_Цвет: R 0.32 G 0.50 B 0.13.

Цвет2 нода Глянцевый_Цвет: R 0.86 G 0.61 B 0.20.

Шейдерная часть сети:

Здесь:

Вход Цвет Диффузного шейдера подключен у выходу нода Диффузный_Умножить.

Вход Цвет Глянцевого шейдера подключен у выходу нода Глянцевый_Цвет.

Вход Цвет шейдера Подп. рассеивание подключен к выходу нода RGB.

Входы Нормаль всех трёх шейдеров подключены к выходу нода Рельеф.

Как это работает...

От шага 1 до 7, мы строили шейдер, который очень похож на шейдеры, которые мы уже видели для материалов с SSS (Шейдерная часть сети - прим. пер.).

От 8 до 13 шага мы строили узор рельефа, используя единственный текстурный нод Текстура Вороного, отрегулированный через три нода Градиентная карта с различными настройками (Текстурная и преобразующая части — прим.пер.).

От 14 до 16 шага мы добавили, через нод Смесь RGB с очень низким значением, текстуру Шума на вход Вектор нода Текстура Вороного, чтобы получить менее регулярный узор (Ноды Текстура шума и Векторная_деформация — прим. пер.).

От 17 до 25 шага мы построили цветной образец, установив базовый цвет нодом RGB и вводя изменение через ноды Смесь RGB, подключенные к входным сокетам Цвет компонентов шейдера. Заметьте, что базовый розовый цвет, установленный в ноде RGB, идет напрямую в шейдер SSS. Смесь RGB варьирует зеленоватый оттенок умножением на текстуру и затем идет в Диффузный компонент шейдера, тогда как для Глянцевого компонента варьируется желтоватый цвет (Цветовая часть сети — прим. пер.).

Создание хитинового материала для осы с помощью процедурных текстур

В этом рецепте, мы создадим материал, подобный хитину насекомого, окрашенный черно-жёлтым узором наподобие осиного, как показано здесь:

Подготовка

Запустите Блендер и откройте файл 9931OS_08_start.blend (если имеется архив с blend-файлами от первого издания книги, то имя файла будет, соответственно 1301OS_07_start.blend — прим.пер.), где есть уже настроенная сцена с развернутым примитивом Сюзанны

Как это сделать...

Добавьте новый материал и назовите его chitin_wasp.

Нажмите Tab, чтобы войти в режим редактирования, и выделите вершины обоих глаз (наведите курсор мыши на глаз и нажмите L, чтобы выделить связанные вершины). Нажмите на кнопку + в окне материалов, чтобы добавить новый материал, и кнопку Назначить (Assign). Переименуйте новый материал в eyes. Нажмите Tab, чтобы выйти из режима редактирования.

Сеть материала целиком:

Рельефная часть сети:

Здесь вход нода Отображение подключен к выходу UV нода Текстурные координаты.

Цветовая часть сети:

Здесь:

Вход нода Отображение подключен к выходу UV нода Текстурные координаты.

Нод Градиентная карта разделён на примерно равные по длине части 8-ю движками с чередованием цвета.

Желтый цвет нода Градиентная карта — R 1.0 G 0.43 B 0.0

Шейдерная часть сети:

Здесь:

Вход Цвет Диффузного шейдера подключен к выходу нода Градиентная карта цветовой части

Входы Нормаль шейдерных нодов подключены к выходу нода Рельеф.

Вход Смещения нода Вывод материала подключен к выходу нода Умножить.

Зелёный цвет первого Глянцевого шейдера — R 0.04 G 0.14 B 0.05.

Желтый цвет второго Глянцевого шейдера — R 0.5 G 0.44 B 0.09.

Как это работает...

Вот как работают предыдущие шаги для создания хитинового материала, как у осы:

От 3 до 5 шага мы строили базовые шейдеры, используя два Глянцевых шейдера с разными цветами, чтобы имитировать цвет, сдвигающийся в области "отражения" (specularity). (Шейдерная часть сети — прим. пер.)

От шага 6 до шага 10 мы построили хитиновый рельеф, назначив поры у пре-шейдера Рельеф и общий шум на выход смещения (который всё ещё работает как простой рельеф в этом случае). (Рельефная часть — прим. пер.)

От шага 11 до 15, мы построили простую и случайную окраску осы. Очевидно, её можно изменить и модифицировать так, как вы предпочитаете. На самом деле для использования её в более подходящей модели, будет лучше использовать окрашенную цветную текстуру, чтобы построить более подходящий и менее случайный цветовой узор. (Цветовая часть — прим. пер.)

Создание хитинового материала для жука с помощью процедурных текстур

В этом рецепте мы создадим материал, подобный хитину радужного жучка, как показано здесь:

Подготовка

Запустите Блендер и откройте файл 9931OS_08_start.blend (если имеется архив с blend-файлами от первого издания книги, то имя файла будет, соответственно 1301OS_07_start.blend — прим.пер.), где есть уже настроенная сцена с развернутым примитивом Сюзанны.

Как это сделать...

Добавьте новый материал и назовите его chitin_beetle.

Нажмите Tab, чтобы войти в режим редактирования, и выделите вершины обоих глаз (наведите курсор мыши на глаз и нажмите L, чтобы выделить связанные вершины). Нажмите на кнопку + в окне материалов, чтобы добавить новый материал, и кнопку Назначить (Assign). Переименуйте новый материал в eyes. Нажмите Tab, чтобы выйти из режима редактирования.

Общий вид сети:

Рельефная часть сети почти полностью повторяет эту часть из предыдущего рецепта:

Здесь вход нода Отображение подключен к выходу UV нода Текстурные координаты.

Очередное замечание по поводу нода Рельеф: в оригинале книги поле Сила установлено на 0.025, но в версии 2.73 с таким значением поры в хитине совсем не видны, пришлось сильно увеличить этот параметр — прим. пер.

Цветовая часть сети:

Здесь зеленоватый цвет нода Тон/насыщенность/яркость — R 0.1 G 0.5 B 0.23

Шейдерная часть тоже почти такая же, как в предыдущем рецепте:

Здесь:

Вход Цвет нода Диффузный BSDF подключен к выходу нода Тон/насыщенность/яркость.

Входы Нормаль текстурных нодов подключены к выходу нода Рельеф.

Вход Смещения нода Вывод материала подключен к выводу нода Умножить.

Розовый Цвет — R 1.0 G 0.0 B 0.56

Бежевый Цвет — R 0.8 G 0.57 B 0.23

Как это работает...

Базовые шейдеры и рельефная часть практически совпадают с соответствующими частями в материале chitin_wasp из предыдущего рецепта.

От 12 до 15 шага, мы строили цветовой компонент, идущий от нода Тон/насыщенность/яркость, и он, благодаря комбинации нодов Вес Слоя и Математических, показывается главным образом на гранях меша, перпендикулярных к точке зрения, и кроме того проскальзывает на других цветах спектра на прямо-видимых сторонах меша. Добавление нода Тон/насыщенность/яркость сделано также для будущих настроек цвета. Особенно полезна величина Коэфф, чтобы регулировать интенсивность смешивания радужных цветов с базовым зеленым цветом.

Создание шейдера травы

От переводчика: этот рецепт был в первом издании книги, а в третьем почему-то был выкинут. Тем не менее не вижу причин тоже выкидывать его вслед за автором.

В этом рецепте мы создадим шейдер типичной травы, используя экземпляры мешей листьев травы, размноженных системой частиц, как показано здесь:

Подготовка

Запустите Блендер и откройте файл 1301OS_07_grass_start.blend (так как в третьем издании этой главы нет, то файл можно найти только в архиве от первого издания — прим. пер.), где уже настроена сцена с плоскостью эмиттера, работающая как источник света, неровная плоскость, исполняющая роль земли, и несколько объектов листьев травы, сгруппированных и размноженных на плоскости земли с помощью системы частиц.

Как это сделать...

Давайте начнём, назначив материал почвы на плоскость земли, и создав шейдер травы, работающий на объектах мешей листьев травы, которые были размножены:

Выберите плоскость земли и щелкните по кнопке Создать (New) в заголовке окна Редактора Узлов или в окне Материала справа. Переименуйте материал на ground (почва) и установите величину Цвет Диффузного шейдера в R 0.141, G 0.082, B 0.031.

Выберите один из объектов листа травы и снова щелкните по кнопке Создать в заголовке окна Редактора Узлов или в окне Материала. Присвойте материалу имя grass.

Выберите рамкой (нажмите B и перетаскивайте с нажатой левой кнопкой мыши) остальные объекты листьев травы, затем нажмите Ctrl + L. В выпадающем меню Создать связи (Make Links) выберите Материалы (Material), чтобы назначить шейдер травы всем выбранным объектам.

Теперь будем строить непосредственно сам шейдер.

Общий вид сети:

Ноды Текстурные координаты и Отображение используются по-умолчанию, у нода Текстурные координаты используется выход UV.

Текстурная часть, рядом показан вид изображений, используемых в качестве текстур:

Шейдерная часть сети:

Здесь:

Выход нода Изображение-Текстура1 подключен ко входам Цвет шейдерных нодов.

Выход нода Изображение-Текстура2 подключен к:

входу Высота нода Рельеф

входу Шероховатость нода Глянцевый BSDF

входу Коэфф первого нода Смешать шейдеры

Как это работает...

Это очень простой материал. Просвечивающий (translucent) компонент смешивается с диффузным компонентом в соответствии с текстурой grass_spec.png, это изображение в градациях серого действует как трафарет (stencil) для коэффициента смешивания, а также в соответствии с этим изображением добавлен слабый рельеф. Затем также примешивается глянцевый компонент, и здесь изображение grass_spec.png используется как показатель шероховатости.

Заметьте, что цветное изображение подключено к входным сокетам Цвет всех трех шейдерных нодов: Просвечивающий, Диффузный, и Глянцевый. Это необходимо, чтобы избежать белых прозрачности и зеркальности, и позволяет получить более естественный вид.

Создание шейдера дерева — кора

Есть несколько разных способов построения деревьев в 3D-пакете: начиная с простых низкополигональных объектов, как например, billboards, используемых в видеоиграх (простые плоскости с изображением дерева на прозрачном фоне), немного более сложных объектов, где есть меш ствола с приложенной массой листвы, созданной из небольших текстурированных с альфой плоскостей, каждая из которых представляет лист или даже ветку, до более сложных и тяжелых мешей, где каждая небольшая ветка и лист смоделированы на самом деле.

Для этого рецепта шейдера дерева из двух частей мы используем модель, взятую из большого количества ресурсов, созданных для короткого анимационного фильма Big Buck Bunny, второго открытого фильма, созданного Blender Foundation. Все ресурсы фильма доступны для свободной загрузки, распространения, и повторного использования, даже для коммерческих проектов, поскольку они лицензированы под лицензией Creative Commons Attribution 3.0 (http://creativecommons.org/ licenses/by/3.0/).

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

Модель дерева состоит из нескольких частей: на первом слое есть меши tree_trunk (ствол дерева), tree_branch (ветка дерева), и tree_branches (ветки дерева), а на втором слое листья, созданные из единственного объекта листа, дублированного (duplivert) на небольшие грани объекта leaves_dupli (объект leaf_tobeswitched является дочерним к объекту leaves_dupli и затем, в окне Объекта, на панели Дублирование (Duplication), выбран метод дублирования Грани (Faces), установлена опция Масштаб и величина Наследовать масштаб (Inherit Scale) была установлена на 1110.000. Таким способом объект leaf_tobeswitched размножен на множестве граней объекта leaves_dupli в соответствии с их позицией, поворотом, и масштабом).

В одиннадцатом слое есть три объекта листа с тремя разными уровнями детализации: простая плоскость, подразделенная и искривленная плоскость, и смоделированный лист. Они своим наличием должны представлять низкий, средний, и высокий уровни разрешения данных меша — выбирая объект leaf_tobeswitched и перейдя в окно Данных объекта, можно переключаться между уровнями разрешения листвы leaf_generic_low, leaf_generic_mid, leaf_generic_hi.

В первой части этого составного рецепта мы создадим материал для коры:

Подготовка

Запустите Блендер и откройте файл 9931OS_08_tree_start.blend (1301OS_07_tree_start.blend для архива от первого издания — прим.пер.). Для этого рецепта деактивируйте второй слой и выберите объект tree_trunk.

Как это сделать...

Начнём создание материала коры. Добавьте новый материал и назовите его bark.

Общий вид сети:

Сеть состоит из двух почти одинаковых частей, сначала делается одна часть, потом дублируется с помощью Shift-D.

Верхняя часть:

Здесь:

Нод Отображение оставлен по-умолчанию, его вход подключен к выходу UV нода Текстурные координаты.

В верхний нод Изображение-текстура загружено изображение bark_color_tile.png.

В нижний нод Изображение-текстура загружено изображение bark_norm_tile.png.

Нижняя часть сети:

Она отличается от верхней части параметром Масштаб нода Отображение. Он равен 0.35.

Центральная часть сети:

Здесь:

Вход Вектор нода Текстура шума подключен к выходу UV нода Текстурные координаты.

Верхний и нижний входы Шейдер нода Смешать шейдеры подключены соответственно к выходам верхней и нижней частей сети.

После построения материала выберите меши tree_branch и tree_branches и, в последнюю очередь, снова выберите меш tree_trunk, чтобы он стал активным объектом. Теперь нажмите Ctrl + L. В выпавшем меню Создать связи выберите Материалы, чтобы назначить материал коры двум другим мешам.

Как это работает...

Для этого материала мы построили простой шейдер, используя два "повторяемых" (tileable) изображения — цветное для диффузного и глянцевого компонентов и карту нормалей для компонента рельефа. Затем мы продублировали всё и примешали вторую копию материала, с другими величинами масштаба, с показателем, заданным процедурной текстурой Шума, чтобы добавить разнообразие к рисунку коры и избежать неприятного эффекта повторения, который часто появляется при использовании текстур из "повторяемых" изображений.

И больше...

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

Очевидно, это является следствием того, что при развертке меша были отделены UV-островки веток от основного ствола, хотя эффект едва заметен. Допустим, что вы захотели совершенно избавиться от него. Вот почему мы теперь собираемся рассмотреть решение проблемы, используя второй набор UV-координат и слой Цветов вершин:

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

Как вы можете видеть, реберные-циклы "соединения вершин" — чёрные, но гладко смешиваются с белым — цветом вершин по-умолчанию. Они будут использоваться как карта шаблона для смешивания двух различных экземпляров одного и того же материала коры. Перейдите в окно Данных Объекта и переименуйте слой Цветов вершин в Join_branches (соединения веток).

Войдите в режим редактирования и выберите все грани, окружающие вершины на соединениях веток со стволом. В окне Данных объекта, на панели UV-карты, щелкните по кнопке + (Добавить UV-карту). Переименуйте новый слой UV-координат на UVMap2, поместите указатель мыши в окно 3D-вида, нажмите U, и выберите Развернуть (Unwrap) в выпадающем меню UV-разметки.

Выходите из режима редактирования. Щелкните по кнопке Количество пользователей справа от имени материала в заголовке окна Редактора Узлов и переименуйте новый материал в bark_seamless. Теперь, посмотрите на следующее изображение, и станет ясно, что вы должны делать:

Сделайте дубликат материала коры и смешайте два шейдера с помощью нода Смешать шейдеры, управляемого шаблоном цветов вершин Join_branches. Используйте нод Атрибут (Attribute) как для выхода слоя Цвета вершин, так и для установки слоя координат UVMap2 у второй копии материала коры.

Нод Атрибут на входе кадра BARK1:

Ноды на выходе сети:

Как вы можете видеть на предыдущей иллюстрации, видимых швов больше нет. Два материала с различными UV-картами плавно сливаются.

Создание шейдера дерева — листья

В этом втором рецепте о дереве мы создадим шейдеры листьев, как показано здесь:

Подготовка

Продолжите работу с blend-файлом предыдущего рецепта, только теперь нажмите Shift и активизируйте второй и одиннадцатый слои, затем выберите объект leaf_generic_mid.

Как это сделать...

Давайте перейдём прямо к созданию шейдера листьев:

Создайте новый материал и назовите его leaf_alpha.

Вот общий вид сети:

Здесь все ноды, названные русскими словами с большими буквами — это ноды Изображение-текстура, каждый со своим файлом изображения.

Цветовая и рельефная части сети:

Здесь желтоватый цвет Глянцевого шейдера — R 0.8 G 0.8 B 0.4.

Полупрозрачная и маскирующая части сети:

Здесь:

Вход Цвет нода Тон/Насыщенность/Яркость подключен к выходу текстуры ЦВЕТ.

Вход Нормаль шейдера Просвечивающий BSDF подключен к выходу нода Рельеф.

Верхний шейдерный вход нода Mix Shader Add Translucency подключен к выходу Диффузного шейдера.

Верхний шейдерный вход нода Mix Shader2 подключен к выходу нода Mix Shader1.

Цвет нода Прозрачный BSDF полностью белый — RGB 1.0.

Как это работает...

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

От 12 до 15 шага мы добавили цвет листа, используя его также с изменением цвета и интенсивности для эффекта прозрачности. Затем мы добавили рельеф, содержащий очень низкий суммарный уровень.

И больше...

Теперь назначьте этот же материал как мешу leaf_generic_low, так и мешу leaf_generic_hi в одиннадцатом слое.

Мешу смоделированного листа не нужен альфа-канал. Поэтому выберите объект leaf_generic_hi и в заголовке окна Редактора Узлов щелкните по количеству пользователей данных, чтобы сделать его единственным пользователем. Переименуйте новый материал на просто leaf (лист), и удалите ноды МАСКА и Прозрачный BSDF. Нажмите Alt + D, чтобы отсоединить нод Mix Shader Cutout и удалите его также.

Помните, что примеры, приведенные в предыдущих и последующих изображениях, сделаны с очень стилизованными моделями, созданными для короткого фильма Big Buck Bunny. Реальные объекты имеют больше тонких деталей и более случайные узоры, но в данном случае это зависит только от изображений текстур, которые вы собираетесь использовать для вашего материала.

Такой шейдер хорошо использовать не только для листьев, но также для других типов растений. Во многих случаях его достаточно, чтобы придать изменения цвету.

Создание многослойного материала человеческой кожи в Cycles

В этом рецепте мы создадим многослойный материал кожи, используя открытую модель персонажа Синтел (Sintel).

Синтел — главное действующее лицо третьего открытого кино с таким же именем, созданного Blender Foundation; Персонаж Синтел и все остальные материалы фильма лицензированы под лицензией Creative Commons Attribution 3.0 (http://creativecommons.org/licenses/by/3.0/). На этом скриншоте лицо Синтел:

Лицо Синтел в окончательном рендере

Подготовка

Запустите Блендер и откройте файл 9931OS_08_skin_start.blend, где уже настроена сцена с моделью Синтел, стоящей на Плоскости, Лампой типа Солнце, и Камерой (1301OS_08_skin_start.blend для первого издания, правда там вместо лампы используются два меш-светильника — прим. пер.).

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

Как это сделать…

Давайте начнём создание шейдера многослойной кожи.

Выберите объект Sintel и создайте материал, назовите его skin_layered.

Общий вид сети:

Текстурно-цветовая часть сети:

Здесь:

Нод Изображение-текстура переименован в ЭПИДЕРМИС (верхний слой кожи, см. https://ru.wikipedia.org/wiki/Эпидермис).

Нод Тон/насыщенность/яркость переименован в Тон/насыщенность/яркость ДЕРМА (основной слой кожи под эпидермисом, см. https://ru.wikipedia.org/wiki/Дерма).

Ноды Градиентная карта Блики1 и Градиентная карта Блики2 — переименованные ноды Градиентная карта.

Черный движок нода Градиентная карта Блики1 расположен на отметке 0.55.

Белый движок нода Градиентная карта Блики1 расположен на отметке 0.0.

Черный движок нода Градиентная карта Блики2 расположен на отметке 0.1.

Белый движок нода Градиентная карта Блики2 расположен на отметке 0.0.

Текстурно-рельефная часть сети:

Здесь нод Изображение-текстура переименован в Текстура РЕЛЬЕФА.

Шейдерная часть сети:

Здесь:

Ноды Сложить блики и Прибавить SSS – это переименованные ноды Сложить шейдеры.

Вход Цвет нода Подп. рассеивание подключен к выходу нода Тон/насыщенность/яркость ДЕРМА.

Цветовые входы Диффузного и двух Глянцевых шейдеров подключены к выходу нода ЭПИДЕРМИС.

Вход Шероховатость нода Глянцевый BSDF_1 подключен к выходу нода Градиентная карта Блики1.

Вход Шероховатость нода Глянцевый BSDF_2 подключен к выходу нода Градиентная карта Блики2.

Входы Нормаль всех четырёх шейдеров подключены к выходу нода Рельеф.

Как это работает…

В этом рецепте мы использовали многослойный подход для построения шейдера человеческой кожи, но что означает многослойный?

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

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

В нашем случае, мы имели только две текстурные карты, цветная карта sintel_skin_diff.png и карта sintel_skin_bmp.png в градациях серого, которую мы напрямую использовали для рельефа; мы могли бы получить недостающие карты с помощью графического редактора (такого как, например, GIMP), но ради этого упражнения для получения необходимых недостающих изображений мы использовали ноды: так, начиная со слоя ЭПИДЕРМИС, который является цветовой картой, мы получили с помощью нода Тон/насыщенность/яркость ДЕРМА слой кровеносных сосудов, который лежит под эпидермисом, как показано на следующем скриншоте:

Нормальная цветовая карта и версия, где кровеносные сосуды отрендерены отдельно

Использованием двух нодов Градиентная карта и двух полутоновых версий для зеркальной компоненты, мы получили одну резкую зеркальную карту и одну мягкую, они показаны на следующем скриншоте:

Две различных глянцевых карты, полученных из одной и той же цветовой карты, и отдельно отрендеренных

Затем, подключили карту sintel_skin_bmp.png к ноду Рельеф для по-шейдерного (per-shader) эффекта рельефа.

Заметьте, что поскольку мы использовали цветовую карту для получения всех остальных, определённые области изображений получились неправильными; например, брови, показанные чисто белыми на зеркальных картах, должны быть удалены. В любом случае, это не не сильно заметно в финальном рендере, и результат более чем приемлемый.

Создание меха и волос

Этот раздел в первом издании был в 9 главе — прим. пер.

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

Блендер не новичок в создании меха; одной из основных целей открытого кино Big Buck Bunny было добавить инструменты для создания меха во встроенный движок рендера, и это сделали через новый тип примитива, пряди (strands), которые нужно включить на панели Частиц (опция Визуализация прядей, Strand render); пряди — очень instanced в системе частиц, но их можно редактировать, причесывать, и регулировать несколькими способами для получения наилучшего результата.

Почти тот же принцип применяется в движке рендера Cycles; больше нет необходимости включать опцию Визуализация прядей, поскольку пряди автоматически рендерятся в Cycles, если Типом Частиц являются Волосы.

Фактически, как только для Типа Частиц выбраны Волосы, внизу окна Частицы появятся две подпанели: Визуализация волос Cycles (Cycles Hair Rendering) и Настройки волос Cycles (Cycles Hair Settings). Вот скриншот визуализированной покрытой мехом Сюзанны (в оригинале было teddy bear Suzanne — прим. пер.):

Рендер покрытой мехом Сюзанны

Подготовка

Запустите Блендер и откройте файл 9931OS_08_hair_start.blend; в сцене присутствует примитив Сюзанны (с именем Suzanne_teddybear) с системой частиц teddybear типа Волосы (Hair), и настроенной так (перейдите в окно Частиц, чтобы это увидеть), чтобы иметь сходство с мехом мягкой игрушки (в случае использования архива от первого издания, имя файла 1301OS_09_hair_start.blend, но настройки системы частиц в нём немного отличаются — прим. пер.).

Меш Suzanne_teddybear уже развернут и имеет Группу вершин с именем density (плотность), используемую в окне Частицы (подпанель Группы Вершин), чтобы задать Плотность распределения меха на меше (короче говоря, чтобы меха не было на глазах, на носу, и во рту), как показано на следующем скриншоте:

Скриншот Системы частиц, как она выглядит в режиме Сплошного затенения, и её настройки

Как это сделать…

Мы собираемся добавить три разных материала к объекту Suzanne_teddybear: base_stuff, который является основным материалом для поверхности меша, материал для глаз eyes, и материал teddybear для меха, используя следующие шаги:

Выберите меш Сюзанны и щелкните по кнопке Создать в окне Редактора Узлов или в окне Материала справа; переименуйте материал в base_stuff.

Нажмите Tab, чтобы войти в режим Редактирования и выберите вершины глаз (поместите указатель мыши над интересуемой частью и нажмите клавишу L, чтобы выбрать все связанные вершины); щелкните по небольшой кнопке + справа в окне Материала (добавьте новый слот материала), и добавьте новый материал. Щелкните по кнопке Создать и переименуйте новый материал в eyes (глаза), затем щелкните по кнопке Назначить (Assign). Нажмите Tab, чтобы выйти из режима Редактирования.

Снова щелкните по небольшой кнопке + справа в окне Материала (добавить новый слот материала), чтобы добавить третий материал (не назначая его никаким вершинам или граням; фактически, мы вышли из режима Редактирования); щелкните по кнопке Создать и переименуйте новый материал в teddybear.

Перейдите в окно Частицы в подпанель Визуализация (Render) и щелкните по выпадающему списку Слот Материала (Material Slot, слот материала, используемого для визуализации частиц), выберите teddybear.

Перейдите в подпанель Визуализация волос Cycles (Cycles Hair Rendering), чтобы удостовериться, что опция Примитив (Primitive) установлена на Сегменты Кривых (Curve Segments), и установите Форму (Shape) на Толщина (Thick); затем, перейдите на Настройки волос Cycles (Cycles Hair Settings), чтобы удостовериться, что величина Форма равна -0.50, величина Корень — 1.00, величина Конец — 0.05, величина Масштабирование — 0.01, и опция Сомкнуть концы (Close Tip) включена.

Теперь, в окне Материала, выберите материал base_stuff; в окне Редактора Узлов добавьте нод Текстурные Координаты (Texture Coordinate, нажмите Shift + A и выберите Ввод | Текстурные Координаты), нод Отображение (Mapping, нажмите Shift + A и выберите Вектор | Отображение), нод Изображение-текстура (Image Texture, нажмите Shift + A и выберите Текстура | Изображение-текстура), нод Глянцевый BSDF (Glossy BSDF), и нод Смешать шейдеры (Mix Shader, нажмите Shift + A и выберите …; повторите аналогичные шаги для добавления других нодов).

Подключите выход UV нода Текстурные координаты к входному сокету Вектор нода Отображение, и выход этого нода ко входному сокету Вектор нода Изображение-текстура. Вставьте нод Смешать шейдеры между нодами Диффузный BSDF и Вывод Материала и подключите выход шейдера Глянцевый BSDF ко второму входному сокету Шейдер нода Смешать шейдеры.

Подключите выход Цвет нода Изображение-текстура к входному сокету Цвет Диффузного и Глянцевого шейдеров; щелкните по кнопке Открыть и найдите в каталоге textures изображение teddybear.png (простая цветная карта, раскрашенная непосредственно в Блендере). Установите Распределение для нода Глянцевый BSDF на Ашихмин-Ширли (Ashikhmin-Shirley), величину Шероховатость в 0.300, и величину Коэфф. у нода Смешать шейдеры на 0.400.

Вернитесь в окно Материала, выберите материал eyes и переключите шейдер Диффузный BSDF на нод Смешать шейдеры; в первом слоте Шейдер выберите Диффузный BSDF, во втором выберите Глянцевый BSDF.

Установите величину Коэфф. нода Смешать шейдеры на 0.200; измените Цвет у нода Диффузный BSDF на R 0.010, G 0.003, и B 0.001; и измените величину Шероховатость у нода Глянцевый BSDF на 0.100.

На следующем скриншоте система частиц teddybear спрятана блокировкой видимости в окне Модификаторов объекта:

Материал base_stuff в окне Редактора Узлов и в окне 3D-вида с Предварительным просмотром

В окне Материала выберите материал teddybear, переключите нод Диффузный BSDF на нод Смешать шейдеры и переименуйте его в Смешать шейдеры1 (на всякий случай напомню, что при "переименовании" нода надо добавить имя в поле Метка в N-панели Свойства справа в окне Редактора узлов, поле Имя трогать не рекомендуется — прим. пер.); в первом слоте Шейдер выберите другой нод Смешать шейдеры, а во втором выберите нод Прозрачный BSDF.

Пометьте второй нод Смешать шейдеры как Смешать шейдеры2; затем, в первом слоте Шейдер, выберите шейдер Диффузный BSDF, а во втором выберите Глянцевый BSDF. Установите Распределение нода Глянцевый BSDF в Ашихмин-Ширли, и Шероховатость на 0.200.

Добавьте нод Френель (Fresnel, нажмите Shift + A и выберите Ввод | Френель) и подключите его ко входному сокету Коэфф. нода Смешать шейдеры2; установите Показатель преломления (IOR) на 1.580. Добавьте нод Информация о волосе (Hair Info, нажмите Shift + A и выберите Ввод | Информация о волосе) и подключите выход Доля отрезка (Intercept) к входному сокету Коэфф. нода Смешать шейдеры1.

Добавьте нод Изображение-текстура (Image Texture, нажмите Shift + A и выберите Текстура | Изображение-текстура) и подключите его выход Цвет к входному сокету нода Диффузный BSDF; щелкните по небольшой стрелке слева от кнопки Открыть, чтобы выбрать уже загруженное изображение teddybear.png.

Добавьте нод Смесь RGB (MixRGB, нажмите Shift + A и выберите Цвет | Смесь RGB), установите Тип смешивания на Добавить и величину Коэфф. на 1.000, затем вставьте его между нодами Изображение-текстура и Диффузным шейдером. Установите поле Цвет2 на R 0.277 G 0.179 B 0.084, затем подключите его выход также ко входному сокету Цвет нода Глянцевый BSDF.

Дополнительно, добавьте нод Текстурные координаты (Texture Coordinate, нажмите Shift + A и выберите Ввод | Текстурные Координаты) и нод Отображение (Mapping, нажмите Shift + A и выберите Вектор | Отображение), подключите выход UV нода Текстурные координаты ко входу Вектор нода Отображение, а выход последнего к входному сокету Вектор нода Изображение-текстура, как показано на следующем скриншоте:

Сеть материала teddybear; заметьте, что прозрачность управляется выходом Доля отрезка нода Информация о волосе

Как это работает…

От 1 до 3 шага мы подготовили три материала, которые будем использовать; мы вошли в режим Редактирования, чтобы назначить второй материал, eyes, вершинам глаз меша, и затем мы вернулись в режим Объектов, чтобы добавить третий материал, который не стали назначать никаким граням меша, поскольку будем использовать его только для рендера волос.

В шагах 4 и 5 мы удостоверились, что настройки системы частиц установлены правильно, чтобы материал рендерился как мех.

От 6 до 8 шага мы строили материал base_stuff, простой базовый шейдер, созданный из Диффузной и Глянцевой компонент, смешанных нодом Смешать шейдеры и окрашенных текстурой teddybear с помощью UV-развёртки; заметьте, что текстура, которую мы использовали в этом первом материале, также используется для цвета волос; полезно иметь такую же раскраску на основном меше, чтобы скрыть какие-либо отверстия или недостатки в системе частиц.

В шагах 9 и 10 мы строили шейдер глаз, который снова является тем же базовым материалом, созданным из темной Диффузной и светло-серой Глянцевой компонент, просто через смешивание нодом Смешать шейдеры.

От 11 до 16 шага мы строили шейдер для системы частиц меха, смешивая уже использованную карту изображения teddybear.png, отображенную через UV-координаты, с нодом Смесь RGB коричневатого цвета, выход которого подаётся на обычный Диффузно/Глянцевый базовый шейдер; заметьте, что Диффузно/ Глянцевый шейдер смешивается с шейдером Прозрачный BSDF в соответствии с величиной Доля отрезка нода Информация о волосе вдоль длины каждой пряди волос.

И больше…

Текстура teddybear.png используется в материалах base_stuff и teddybear; это часто не требуется, поскольку в Блендере системы частиц волос получают текстуры от поверхностей, от которых они начинаются, так что было бы достаточно использовать материал base_stuff также и для меха (выбрав его в слоте Материала на подпанели Визуализация в окне Частицы, так как у нас было больше одного материала в меше Сюзанны); нам понадобилось сделать новый отличающийся материал, поскольку мы захотели добавить коричневатый оттенок через нод Смесь RGB к UV-текстуре, и нужно было сделать шейдер, тускнеющий и становящийся прозрачным к концам прядей.

Заметьте, что в ноде Информация о волосе, есть также логический выход Является прядью (Is Strand), который подобен выходам нода Путь света (Луч из камеры, Луч тени, и так далее), и может использоваться вместо кнопки Материала в окне Частиц для назначения материала меша поверхности (в случае 0) и материала прядей меха (в случае 1) Такой вариант представлен в файле 9931OS_08_hair_isstrand.blend (1301OS_09_hair_isstrand.blend для архива от первого издания — прим. пер.) и показан на следующем скриншоте:

Настройки для материала hair_isstrand и результат рендера

Это также означает, очевидно, что мы можем использовать также разные изображения для текстур для получения материалов меха, отличающихся от материала меша, испускающего частицы: например, в следующем скриншоте, текстура tiger.png используется только для меха, поскольку материал base_stuff все ещё использует текстуру teddybear.png (и, если честно, это явно заметно... лучше всё-таки использовать одно и то же изображение как для меха, так и для меша):

Отрендеренный объект Suzanne_tiger

Объект Suzanne_tiger также имеет две разных системы частиц для создания меха, tigerfur_long и tigerfur_short, и три Группы Вершин для модулирования появления меха, density_long (плотность длинно), density_short (плотность коротко), и length (длина).

Чтобы взглянуть на объект Suzanne_tiger, откройте файл 9931OS_08_tiger.blend (1301OS_09_tiger.blend для архива от первого издания — прим. пер.).

Смотрите также

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Hair_Rendering (к сожалению, на момент перевода система онлайн-документации на сайте поменялась, и где теперь эта страница, я не нашел — прим. пер.)

http://www.blender.org/manual/render/cycles/nodes/more.html

http://blenderdiplom.com/en/tutorials/all-tutorials/536-tutorial-fur-with-cycles-and-particle-hair.html

Создание материала кожи Серого Инопланетянина с помощью процедурных текстур

Этот перевод раздела из первого издания — прим. пер.

В этом рецепте мы создадим шейдер кожи Серого Инопланетянина (Gray Alien), используя процедурные текстуры в Cycles, как показано здесь:

Подготовка

Запустите Блендер и откройте файл 9931OS_08_alienskin_start.blend (1301OS_07_alienskin_start.blend, для архива от первого издания — прим. пер.), где уже есть настроенная сцена с простым объектом развернутой Сюзанны. Меш Сюзанны был "инопланетизирован" (alienizated) с помощью ключей формы, которые трансформируют её обезьяно-подобный вид в голову существа, подобного Серому Инопланетянину (в окне Данных Объекта, на панели Ключей формы, ключ формы alien имеет Значение 1.000, а его сдвиг к положению 0.000 постепенно восстанавливает оригинальную форму Сюзанны).

Во втором слое есть плоскость, отслеживающая (ограничение Слежение с амортизацией (Damped Track), в окне Ограничений Объекта) Камеру так, чтобы оставаться в перпендикулярном к точке зрения положении, которую мы используем, чтобы создать простой звездный фон для нашей инопланетной Сюзанны.

Как это сделать...

Давайте начнём с настройки изображения фона:

Выберите плоскость фона и щелкните по кнопке Создать в заголовке окна Редактора Узлов или в окне Материала. Переименуйте материал в star_backdrop и в окне Материала переключите шейдер Диффузный BSDF на шейдер Излучение. Установите величину Силы на 0.500.

Добавьте нод Изображение-Текстура (Image Texture, нажмите Shift + A и выберите Текстура | Изображение-Текстура) и подключите выход Цвет к входному сокету Цвет нода Излучение. Щелкните по кнопке Открыть, и из каталога textures загрузите изображение galaxy-constellation-star-background.png (любезно предоставленный nasaimages.org).

Добавьте нод RGB-Кривые (RGB Curves, нажмите Shift + A и выберите Цвет | RGB-Кривые) и вставьте его между нодами Изображение-Текстура и Излучение. Щелкните по окну кривой, чтобы добавить управляющую точку и установите её в координатах X = 0.36667 и Y = 0.12778. Снова щелкните в этом окне, чтобы добавить вторую управляющую точку и установите её в координатах X = 0.65556 и Y = 0.81111.

Теперь давайте продолжим создание шейдера кожи Инопланетянина (с отдельным материалом для глаз):

Выберите объект инопланетной Сюзанны. Щелкните по кнопке Добавить в заголовке окна Редактора Узлов или в окне Материала и переименуйте материал в alienskin.

Войдите в режим редактирования (нажмите Tab), выберите вершины глаз и нажмите на кнопку + справа в окне Материала, чтобы добавить второй материал. Щелкните по кнопке Добавить и переименуйте материал в alieneyes. Затем, щелкните по кнопке Назначить (Assign), чтобы назначить его выбранным вершинам. Выходите из режима редактирования.

Вот простая сеть материала глаз alieneyes:

Здесь:

Цвет Диффузного шейдера почти черный: R 0.01 G 0.006 B 0.01.

Цвет Глянцевого шейдера: R 0.34 G 0.73 B 0.8.

Теперь построим сеть материала кожи alienskin.

Вот общий вид сети:

Вот общий вид кадра РЕЛЬЕФ:

Кроме всего прочего надо пояснить, что здесь все ноды с математическими действиями (Разница, Умножить, Добавить) строятся на основе одного из двух нодов: либо нода Преобразователь | Математика (в сети он сразу отображается как нод Добавить), либо нода Цвет | Смесь RGB (сначала отображается как Смесь). Чтобы отличать их в этом довольно сложном материале, смотрите на входы. Если это серые сокеты Значение, то это нод Математика, а если желтые сокеты Цвет, то ноды Смесь.

Текстурная часть кадра РЕЛЬЕФ:

Преобразующая часть кадра РЕЛЬЕФ:

Здесь:

Вход нода Градиентная карта1 подключен к выходу нода Текстура Вороного1.

Вход нода Градиентная карта2 подключен к выходу нода Разница1.

Вход нода Градиентная карта3 подключен к выходу нода Разница2.

Финальная часть кадра РЕЛЬЕФ:

Здесь:

Верхний вход нода Добавить2 подключен к выходу нода Добавить1.

Нижний вход нода Добавить2 подключен к выходу нода Умножить4.

Верхний вход нода Добавить5 подключен к выходу Коэфф нода Текстура Вороного1.

Цветовая часть сети материала:

Здесь:

Вход Вектор нода Текстура шума2 подключен к выходу верхнего нода Отображение.

Вход нода Градиентная карта4 подключен к выходу нода Умножить2.

Черный движок нода Градиентная карта5 находится на отметке 0.49.

Белый движок нода Градиентная карта5 находится на отметке 0.77.

Цвет1 нода Добавить3 серый — RGB 0.5.

Цвет2 нода Добавить3 — R 0.55 G 0.60 B 0.47.

Цвет2 нода Добавить4 — R 0.24 G 0.20 B 0.13.

Шейдерная часть сети материала:

Здесь:

Вход Цвет Диффузного нода подключен к выходу нода Добавить4.

Вход Нормаль Диффузного нода подключен к выходу нода Рельеф_дифф.

Входы Нормаль Глянцевых шейдеров подключены к выходу нода Рельеф_глянц.

Цвета Глянцевых шейдеров светло-серые — RGB 0.8.

Как это работает...

Вот как предыдущие шаги работают для создания материала кожи Серого Инопланетянина:

От 1 до 3 шага мы построили простой и быстрый шейдер для звездного фона. Заметьте, что фон действительно излучает свет (конечно, в соответствии с величинами черного и белого на изображении, отображенном на плоскости), так что он влияет на меш Инопланетной Сюзанны. Но в нашем случае это не имеет значения, поскольку это влияние не видно из точки зрения Камеры. Чтобы посмотреть, как настроить яркий, но не излучающий свет шейдер фона, который ведёт себя как незатеняемый (shadeless) материал, имеющийся во Встроенном движке рендера в Блендере, перейдите в Главу 9, Специальные Материалы, этой поваренной книги.

От шага 6 до шага 9 мы построили основной шейдер для кожи Инопланетной Сюзанны. Диффузный компонент смешивается, на основании выхода Поворот (Facing) нода Вес слоя, с отражающим компонентом, созданным из суммы двух Глянцевых нодов с различными величинами Шероховатости, таким образом, чтобы иметь четкий зеркальный эффект на более рассеянном.

От 10 до 30 шага мы построили довольно сложный узор рельефа для кожи. Заметьте, что есть два различных эффекта рельефа, один для диффузного компонента, и ещё один такой же, сложенный с чистой текстурой Вороного, присоединённый к нодам отражающего компонента (кадр РЕЛЬЕФ).

Наконец, от 31 до 35 шага мы построили очень простой цветовой узор.

Глава 9. Особые материалы

Большинство разделов этой главы взято из третьего издания — прим. пер.

В этой главе мы рассмотрим следующие рецепты:

Использование материалов объёма в Cycles

Создание объёмного материала облака

Создание шейдера «огня и дыма»

Создание незатеняемого материала в Cycles

Создание шейдера каркасного отображения (из 1 издания)

Создание материала эффекта фальшивого погружения

Создание материала фальшивого объёмного света

Введение

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

Использование материалов объёма в Cycles

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

Всё становится более сложным, когда есть необходимость показать внутренность объекта, например, воду в стеклянном контейнере, дым и облака в толстой атмосфере, и так далее.

Как правило, это эффекты, которые для эффективного рендера требуют больше использовать атрибуты объёма, чем атрибуты поверхности.

Так, в первых рецептах этой главы мы собираемся посмотреть на использование входного сокета Объём нода Вывод Материала. Данный рецепт является, вместо изучения конкретного материала, скорее, «экскурсией», показывающей возможности, относящиеся к шейдеру Объёма, назначенному на меш-объект. Бегло взгляните на следующий скриншот:

Подготовка

Запустите Блендер и откройте файл 9931OS_09_start.blend (1301OS_09_start.blend для архива от первого издания — прим. пер.), с обычным объектом Сюзанны, лежащим на Плоскости, меш-светильником Emitter, и Камерой.

Перейдите в окно Рендера, и на подпанели Сэмплирование установите Сэмплы для Предварительного просмотра на 50 и для Визуализации на 100. Переключите Шаблон (Pattern) с Соболь (Sobol) на Кореллированное множественное дрожание (Correlated Multy-Jitter).

Все еще в окне Рендера, перейдите в подпанель Сэмплирование объёма, и под пунктом Неоднородные (Heterogeneous), установите величину Размер Шага (Step Size) на 0.25. Значение по умолчанию — 0.10. Увеличение этого поля делает рендер объёмов менее точным, но более быстрым, а уменьшение приводит к противоположному результату.

Как это сделать…

Сначала давайте посмотрим на Объём, применённый к нашему обычному меш-примитиву Сюзанны, выполнив следующие шаги:

Переместите мышь на вид из Камеры и нажмите Shift + Z, чтобы переключить режим затенения на Рендер.

Убедитесь, что у вас выбран объект Suzanne_unwrapped, и щелкните по кнопке Создать в заголовке Редактора узлов или в окне Материала на панели Свойства.

В окне Редактора узлов нажмите Ctrl, затем щелкните и тащите линию через связь, соединяющую шейдер Диффузный BSDF с нодом Вывод материала, чтобы разрезать её. Поскольку больше ничего не подключено ко входам нода Вывод материала, то в виде из Камеры объект Сюзанны станет чёрным, как показано на следующем скриншоте:

Диффузный шейдер соединён и разъединён с нодом Вывод материала

Выберите и удалите шейдер Диффузный BSDF. Все еще в окне Редактора узлов, добавьте нод Рассеивание объёма (Volume Scatter, нажмите Shift + A и выберите Шейдер | Рассеивание объёма), и подключите его выход к входному сокету Объём нода Вывод материала.

Различные эффекты нода Рассеивание объёма, полученные изменением плотности и цвета

Попробуйте увеличить величину Плотность до 10.000, или в интерфейсе нода в окне Редактора узлов, или в слоте на подпанели Объём на основной панели Свойств. «Дымовая» Сюзанна теперь выглядит более плотной, как показано в середине предыдущего скриншота.

Измените величину Плотность обратно на 1.000 и измените величины поля Цвет нода Рассеивание объёма на R 1.0 G 0.0 B 0.0 (красный цвет). Объект Сюзанны теперь показан как дым дополнительного цвета (справа на предыдущем скриншоте), поскольку свет рассеивается (заметьте, что тень на Плоскости получает тот же цвет).

Добавьте шейдер BSDF стекла (Glass BSDF, нажмите Shift + A и выберите Шейдер | BSDF стекла), и подключите его выход ко входному сокету Поверхность нода Вывод материала. Установите величину Показатель преломления (IOR) на 1.440 и величину Шероховатость на 0.100.

Добавление стеклянной оболочки к голубоватому, рассеянному стеклянному объёму

Теперь вы должны временно удалить связь между шейдером BSDF стекла и входным сокетом Поверхность нода Вывод материала, и вернуть величины RGB, установив их на 0.800, для поля Цвет нода Рассеивание объёма.

Добавьте нод Текстурные координаты (Texture Coordinate, нажмите Shift + A и выберите Ввод | Текстурные координаты), нод Текстура Вороного (Voronoi Texture, нажмите Shift + A и выберите Текстура | Текстура Вороного), и нод Математика (Math, нажмите Shift + A и выберите Преобразователь | Математика).

Подключите выход Объект нода Текстурные координаты ко входному сокету Вектор нода Текстура Вороного, и выход Коэфф этого нода ко входному сокету первого Значения нода Математика. Установите второе Значение на 10.000, задайте Операцию в Умножить, и подключите его выход ко входному сокету Плотность нода Рассеивание объёма, как показано на следующем скриншоте:

Величина Плотность нода Рассеивание объёма управляется выходом текстуры Вороного

Добавьте нод Градиентная карта (ColorRamp, нажмите Shift + A и выберите Преобразователь | Градиентная карта), и вставьте его между нодами Текстура Вороного и Математика. Переместите черный цветовой движок в позицию 0.195, а белый цветовой движок в позицию 0.100, как показано на следующем скриншоте:

Повышение контрастности выхода текстуры

Установите величину Масштаб нода Текстура Вороного на 11.500 и переприсоедините выход шейдера BSDF Стекла к входному сокету Поверхность нода Вывод материала. Измените величины поля Цвет нода Рассеивание объёма на R 1.0, G 0.0, B 0.0, как показано на следующем скриншоте:

Предыдущий облакообразный объём, покрытый стеклянной поверхностью

Переименуйте материал в Bubbles (Пузыри) и сохраните файл с именем 9931OS_09_volume.blend.

Итак, для предыдущего материала, названного Bubbles, мы использовали нод Рассеивание объёма. Как насчет нода Поглощение объёма?

В панели инструментов Редактора узлов включите фальшивого пользователя для материала Bubbles, и щелкните по кнопке X, чтобы разорвать связь с блоком данных. Затем щелкните по кнопке Создать.

Удалите нод шейдера Диффузный BSDF и добавьте нод Поглощение объёма (Volume Absorption, нажмите Shift + A и выберите Шейдер| Поглощение объёма). Затем подключите его ко входному сокету Объём нода Вывод материала.

Для того, чтобы сравнить его с нодом Рассеивание объёма, увеличьте величину Плотность нода Поглощение объёма до 10.0 и установите величины поля Цвет на R 1.0, G 0.0, B 0.0. Бегло познакомьтесь со следующим скриншотом:

Различные эффекты нода Поглощение объёма

Добавьте нод Текстурные координаты (Texture Coordinate, нажмите Shift + A и выберите Ввод | Текстурные координаты), нод Текстура Вороного (Voronoi Texture, нажмите Shift + A и выберите Текстура | Текстура Вороного), два нода Математика (Math, нажмите Shift + A и выберите Преобразователь | Математика), и шейдер BSDF стекла (Glass BSDF, нажмите Shift + A и выберите Шейдер | BSDF стекла).

Подключите выход Объект нода Текстурные координаты к входному сокету Вектор нода Текстура Вороного, и выход Коэфф. этого нода ко входному сокету первого Значения первого нода Математика. Установите второе Значение на 0.100, Операцию в Меньше чем (Less Than), и подключите его выход ко входному сокету первого Значения второго нода Математика. Установите второе Значение на 12.800, и Операцию в Умножить.

Подключите выход этого нода Умножить ко входному сокету Плотность нода Поглощение объёма и переименуйте материал в algae (водоросли). Вот скриншоты для ознакомления:

Плотность нода Поглощение объёма управляется выходом Текстуры Вороного

Установите величину Масштаб нода Текстура Вороного на 3.500, измените Цвет у нода Поглощение объёма в R 0.045, G 0.800, B 0.113, и подключите выход шейдера BSDF стекла ко входному сокету Поверхность нода Вывод материала. Установите величину Показатель преломления (IOR) в 1.440, а величину Шероховатость в 0.100, как показано на следующем скриншоте:

Другие цвета и стеклянное покрытие для материала поглощения объёма

В панели Редактора узлов, включите фальшивого пользователя для материала algae, затем щелкните по кнопке с цифрой 2 (показывающей количество пользователей для этих данных), чтобы создать дубликат материала, который получит имя algae.001.

Переименуйте материал в emitting_volume и замените нод Поглощение объёма на нод Излучение (Emission, нажмите Shift + A и выберите Шейдер | Излучение). Подключите выход нода Умножить ко входному сокету Цвет и установите величину Силы на 0.050.

Отключите видимость шестого слоя сцены, чтобы спрятать меш-светильник, и перейдите в окно Рендера. В подпанели Пути света (Light Paths) включите опции Reflective Caustics (каустики оражения) и Refractive Caustics (каустики преломления). Вот скриншот для справки:

Замена нода Поглощение объёма на нод Излучение в качестве материала объёма

Включите фальшивого пользователя для материала emitting_volume и сохраните файл.

Как это работает…

В этом рецепте-экскурсии мы увидели три шейдера, используемых для атрибута объёма материала в Cycles, то есть шейдеры Рассеивание объёма, Поглощение объёма, и Излучение (мы уже видели шейдер Излучение в предыдущих главах, и обычно его использовали в Лампах и меш-светильниках).

Шейдеры Рассеивание и Поглощение объёма делают точно то, что говорят их имена, как мы увидели в примерах. Если мы придаём им цвет, не являющийся чёрным, серым или белым, шейдер Рассеивание объёма возвращает дополнительный цвет, в то время как шейдер Поглощение объёма возвращает тот же цвет, который мы установили.

Чем выше величина Плотность, тем больше частиц в объёме. Это позволяет моделировать очень светлые и разреженные пары́ или, наоборот, очень плотные облака дыма, материал которых выглядит почти как твёрдое тело.

И больше…

Объём может быть связан не только с объектами, но также с Миром. Это даёт различные эффекты, например, туман, или знаменитые лучи Бога. Они получаются просто рассеиванием света в воздухе Лампой-прожектором (Spot).

Настройки действительно просты и интуитивны: нод Рассеивания объёма подключен к входному сокету Объём нода Вывод мира. Бегло познакомьтесь со следующим скриншотом:

Конус лампы-прожектора виден через материал окружающего объёма

Величина Плотность нода Рассеивание объёма в этом случае установлена очень низкой (0.010), чтобы позволить свету Лампы-прожектора светить через пространство.

Откройте файл 9931OS_09_volume_ambient.blend, чтобы изучить.

Смотрите также

http://www.blender.org/manual/render/cycles/materials/volume.html

Создание объёмного материала облака

Естественное применение объёмного материала — это (вполне очевидно) облака.

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

Объёмное облако Сюзанна в виде, как оно появится в финальном рендере

Подготовка

Запустите Блендер и откройте файл 9931OS_09_cloud_start.blend (в первом издании этого раздела не было, но можно воспользоваться файлом 1301OS_09_start.blend, добавив к нему ещё один меш-светильник и освещение Мира — прим. пер.), где присутствует объект Suzanne_cloud с двумя меш-светильниками и освещение Мира было установлено с помощью нода Текстуры неба (Sky Texture).

Перейдите в окно Модификаторов объекта и поднимите уровень Подразделения модификатора Подразделения поверхности (Subsurf) с 2 до 3, как для Вида, так и для Визуализации.

Назначьте новый модификатор Подразделения поверхности. Установите уровень Подразделения на 2.

Назначьте модификатор Смещение поверхности (Displace). Щелкните по кнопке Show texture in texture tab (показать текстуру на панели текстур) справа от кнопки Создать, чтобы переключиться на окно Текстур.

Щелкните по кнопке Создать (New) под полем Displace, затем нажмите на опцию Тип, чтобы переключиться с Изображение или фильм на Облака. Установите Размер в 0.35 и Глубину на 3.

Вернитесь к окну Модификаторов объекта и щелкните по полю Группа вершин, чтобы выбрать группу rest. Затем установите величину Силы на 0.400.

Облако Сюзанна со Смещением поверхности, просмотр в режиме "Сплошной" и назначенные модификаторы на основной панели Свойств справа

Как это сделать…

После создания формы облака, давайте создадим материал. С выбранным объектом Suzanne_cloud создайте новый материал и назовите его cloud.

Общий вид сети:

Здесь Цвет нода RGB – R 0.890 G 0.866 B 0.832.

В окне Материала на панели Настройки включите опцию Однородные (Homogeneous).

Перейдите в окно Сцены, и на подпанели Управление цветом (Color Management), включите опцию Использовать кривые (Use Curves). Затем щелкните в окне с кривыми, чтобы создать новую управляющую точку. Установите её координаты на X на 0.67 и Y на 0.88. Щёлкните ещё раз для создания новой управляющей точки, и установите её координаты на X на 0.32 и Y на 0.47. Бегло взгляните на следующий скриншот:

Как это работает…

Большая часть действия этого материала происходит из-за модификатора Смещение поверхности, который деформирует меш Сюзанны для получения сходства с формой облака Сюзанны. Сам материал — это просто комбинация шейдеров Рассеивание объёма и Поглощение объёма, сначала сложенных нодом Сложить шейдеры, а затем с помощью нода Смешать шейдеры, чтобы в дальнейшем управлять примешиванием рассеивания ко всему шейдеру.

Группа вершин rest (остальные), выбранная в слоте модификатора Смещение поверхности, — простая группа с понижением веса в направлении ушей, поскольку они очень тонкие, и при использовании смещения мы легко можем вызвать неприятные самопересечения меша.

Группа вершин Rest, видимая в режиме Рисование веса

В последнем шаге мы включили кривые для Управления цветом (Color Management), чтобы получить более яркий и более контрастный рендер облака по сравнению с небом.

Создание шейдера огня и дыма

В этом рецепте мы собираемся увидеть один из восхитительных эффектов, который мы можем получить в Cycles — имитационный эффект огня и дыма:

Так выглядит шейдер огня и дыма в окончательном рендере, когда он назначен мешу Сюзанны

Подготовка

Запустите Блендер и откройте файл 9931OS_09_fire_smoke_start. Blend (в первом издании этого раздела не было — прим. пер.), где присутствует объект Suzanne_unwrapped, лежащий на Плоскости и окруженный пятью небольшими Кубами, лампа-Прожектор (Spot), Камера, и Мир со средней интенсивностью и с Текстурой неба.

Перейдите в окно Рендера, и на подпанели Сэмплирование (Sampling) установите Сэмплы для Предварительного просмотра в 50 и для Визуализации на 100. Затем перейдите в подпанель Размеры (Dimensions) и установите Конечный кадр на 80. На подпанели Пути света (Light Paths) включите опции Reflective Caustics (отражающие каустики) и Refractive Caustics (преломляющие каустики).

Как это сделать…

Давайте начнём создание симуляции дыма:

Выберите объект Suzanne_unwrapped, щелкните по пункту меню Объект в заголовке окна 3D-вида, чтобы перейти к подменю Быстрые эффекты (Quick effects), и выберите пункт Быстрый дым (Quick Smoke). Вместо этого можно нажать пробел, и в окне поиска, начать набирать Quick. Затем выбрать пункт Quick Smoke из меню, как показано на следующем скриншоте (вот не люблю я этот «типа быстрый» поиск по пробелу, английские слова помнить надо, меню для меня понятнее — брюзжание переводчика):

Меню Быстрые эффекты

Smoke Domain (Домен дыма, выбранный каркасный параллелепипед вокруг объекта Сюзанны) с подготовленным материалом огня/дыма (Smoke Domain Material), будет автоматически настроен для выбранного объекта, и когда вы нажмёте кнопку Играть анимацию (Play) в заголовке окна Временная шкала, начнётся симуляция дыма. Бегло познакомьтесь со следующим скриншотом:

Симуляция дыма: в верхнем окне Редактора Узлов материал, автоматически созданный инструментом Быстрых эффектов

Вернитесь к кадру 1 и масштабируйте Smoke Domain, увеличив его по глобальной оси Z так, чтобы верх выходил за пределы границы кадра Камеры. Масштабируйте его в 3.0 раза (нажмите S, Z, введите цифру 3, затем нажмите Enter). После этого переместите его на 5 единиц вверх.

Перейдите в окно Физики (Physics), и на подпанели Дым (Smoke), установите величину Подразделения (Divisions) на 64. Затем перейдите в подпанель Пламя в дыме (Smoke Flames) и установите величину Скорость (Speed) на 2.0, Дым (Smoke) на 0.5, и Завихрённость (Vorticity) на 1.0. Нажмите снова кнопку Играть анимацию, чтобы пересчитать кеш. Бегло взгляните на следующий скриншот:

Симуляция дыма в увеличенном домене

Так как все 80 кадров кешированы, перейдите в окно Физики, и на подпанели Кеширование дыма, щелкните кнопку Текущий кеш в запекание (Current Cache to Bake).

Включите подпанели Адаптивный домен дыма (Smoke Adaptive Domain) и Дым с высоким разрешением (Smoke High Resolution). Оставьте настройки по-умолчанию как есть. (У меня после этого пропал весь кешированный запечённый дым, так что пришлось его заново запекать — прим. пер.)

Со стрелкой мыши в окне с видом из Камеры нажмите Shift + Z, чтобы переключить режим окна 3D-вида на Рендер. Бегло посмотрите на следующий скриншот:

Симуляция дыма, видимая в предварительном просмотре Рендера

В Рендере (будьте осторожны, так как дым пока не поддерживается рендером на GPU), мы можем видеть темный серый дым, но что насчет огня?

В окне Физики, на подпанели Кеширование дыма, щелкните по кнопке Очистить все запекания (Free All Bakes).

Перейдите в окно Структура проекта (Outliner), чтобы выбрать пункт Suzanne_unwrapped. Затем снова перейдите в окно Физики. На подпанели Дым щелкните по списку Тип потока и замените Дым на Огонь + Дым. Затем щелкните по полю Цвет дыма и измените величину цвета на R 0.700, G 0.317, B 0.335. Бегло познакомьтесь со следующим скриншотом:

Выберите объект Smoke Domain и щёлкните по кнопке Играть анимацию, чтобы снова кешировать симуляцию дыма, на этот раз с красноватым дымом и также огнём. Затем снова щелкните кнопку Текущий кеш в запекание.

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

Отсоедините от объекта Smoke Domain материал Smoke Domain Material и создайте новый, назовите его fire_smoke.

Общий вид материала:

Выходы кадров ОГОНЬ и ДЫМ объединяются нодом Сложить шейдеры, результат направлен во вход Объём нода Вывод материала.

Кадр ДЫМ:

Здесь нод Умножить создан из нода Математика.

Кадр ОГОНЬ:

Здесь:

Нод Умножить создан из нода Математика.

Первый движок нода Градиентная карта в крайне левом положении, его цвет: R 1.0 G 0.0 B 0.0

Второй движок нода Градиентная карта в положении 0.29, его цвет: R 1.0 G 0.28 B 0.0

Третий движок нода Градиентная карта в крайне правом положении, его цвет: R 1.0 G 0.72 B 0.22

Как это работает…

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

Мы использовали меню Быстрые эффекты, чтобы Блендер автоматически настроил для нас симуляцию дыма. Обычно выполняются следующие шаги:

В качестве домена симуляции устанавливается объект, который определяет границы объёма. В нашем случае, это был параллелепипед Smoke Domain в каркасном режиме затенения. Его можно масштабировать, перемещать или вращать, если это необходимо.

Для потока (flow) задаётся объект, который определяет, откуда дым будет произведен, то есть, объект Suzanne_unwrapped.

Дыму назначается материал. В нашем случае, это был автоматически созданный Smoke Domain Material, который мы затем переделали в материал fire_smoke.

Запекается симуляция вычислением кеша для необходимых кадров, и затем нужно нажать кнопку Текущий кеш в запекание.

Сохраняется blend-файл.

Материал fire_smoke, который мы настроили в Редакторе узлов, создан точно, как показано в предыдущих рецептах об объёмных материалах этой главы. Он состоит из всех трех шейдерных нодов, которые можно использовать для Объёма: Рассеивание объёма, Поглощение объёма и Излучение, и они управляются атрибутами flame (пламя), density (плотность) и color (цвет), получаемые из симуляции дыма, которые мы вписали в поле Имя нодов Атрибут.

Смотрите также

http://www.blender.org/manual/physics/smoke/index.html

http://www.blendernation.com/2014/04/14/rendering-smoke-and-fire-in-cycles/

Создание незатеняемого материала в Cycles

В этом рецепте мы создадим незатеняемый (shadeless) материал, который ведет себя как само-освещенный, но в действительности не излучает никакого света на соседние объекты.

На следующем скриншоте мы можем видеть различие между Плоскостью с незатеняемым материалом и Плоскостью с излучающим материалом:

Незатеняемая Плоскость и излучающая Плоскость в сравнении

На верху, изображение облачного неба отлично само-освещено и видимо, но оно не влияет на Сферы, Сюзанну или Плоскость пола (тем не менее, они слегка видимы из-за слабого глобального освещения Мира).

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

Во Встроенном рендере получить незатеняемый материал очень просто. Достаточно включить подходящую опцию на панели материала. В Cycles есть два метода для получения этого эффекта: один основан на материале, а другой — с помощью подпанели Видимость лучей (Ray Visibility) в окне Объекта, на панели Свойств.

Подготовка

Запустите Блендер и откройте файл 9931OS_09_start.blend (1301OS_09_start.blend для архива от первого издания — прим. пер.). Затем следуйте за этими шагами:

Перейдите в окно Рендера, и на подпанели Сэмплирование задайте Сэмплы на 50 для Предварительного просмотра и 100 для Визуализации.

Установите вид из Камеры в режим Рендера, нажав Shift + Z со стрелкой мыши в окне 3D-вида.

Перейдите в окно Мира и установите Силу шейдера Фон на 0.200.

Перейдите в окно Структуры проекта (Outliner) и выберите объект Emitter. В окне Редактора узлов установите Силу шейдера Излучение на 0.100.

Выберите объект Plane (Плоскость), и в окне Материала на основной панели Свойств, замените нод шейдера Диффузный BSDF на Глянцевый BSDF. Переключите Распределение (Distribution) этого нода с GGX на Бекман (Beckmann) и установите величину Шероховатость на 0.200.

Выберите объект Suzanne_unwrapped и щелкните по кнопке Создать в заголовке окна Редактора узлов, или в окне Материала на основной панели Свойств справа.

Со стрелкой мыши в левом нижнем окне 3D-вида, нажмите клавишу 7 на цифровой вспомогательной клавиатуре (numpad), чтобы переключиться на вид сверху. Нажмите Shift + D, чтобы продублировать меш Сюзанны, и переместите его влево по сцене. Поверните его, чтобы разместить рядом с оригинальным мешем. Щелкните кнопку с цифрой 2 сбоку от блока данных Материала в заголовке окна Редактора узлов, чтобы сделать его единственным пользователем.

В окне Материала переключите нод Диффузный BSDF на нод Смешать шейдеры. В первом слоте Шейдер выберите нод Диффузный BSDF, и во втором слоте Шейдер выберите нод шейдера Глянцевый BSDF. Установите в нём Распределение на Бекман (Beckmann), величину Шероховатость в 0.100, и величину Коэфф. нода Смешать шейдеры на 0.900. Переименуйте материал в mirror (зеркало).

Нажмите Shift + D, чтобы продублировать меш зеркальной Сюзанны, и переместите его вправо по сцене, рядом с оригинальным мешем.

Три Сюзанны на плоском полу в темноте

Как это сделать...

Давайте начнём с первого метода, основанного на материале:

Выберите оригинальный меш Suzanne_unwrapped, который находится в середине, и щелкните по кнопке Создать в заголовке окна Редактора узлов (Вообще-то у Сюзанны уже был материал, его создавали на шестом шаге подготовки, так что по-новой можно не создавать материал — прим. пер.). В окне Материала переключите шейдер Диффузный BSDF на шейдер Излучение. Добавьте нод Изображение-текстура (Image Texture, нажмите Shift + A и выберите Текстура | Изображение-текстура) и подключите его выход Цвет к входному сокету Цвет нода Излучение.

В визуализированном виде из Камеры, оригинальный меш Сюзанны излучает в сцену розовый свет. Розовый — цвет по-умолчанию, который использует Блендер, чтобы сообщить нам, что мы ещё не загрузили изображение в текстуру.

Сюзанна излучает свет при отсутствующей текстуре

Щелкните по кнопке Открыть нода Изображение-текстура, поищите в каталоге текстур, и загрузите изображение teddybear.png (который мы использовали в Главе 8, Создание органических материалов).

Сюзанна с UV-текстурой

В окне Редактора узлов добавьте нод Смешать шейдеры (нажмите Shift + A и выберите Шейдер | Смешать шейдеры) и вставьте его между нодом Излучение и нодом Вывод материала.

Добавьте нод Путь света (Light Path, нажмите Shift + A и выберите Ввод | Путь света) и подключите его выход Луч из камеры (Is Camera Ray) к входному сокету Коэфф нода Смешать шейдеры. Меш Сюзанны станет полностью черным (без материала), но останется освещение сцены, основанное на изображении teddybear.png.

Переключите связь нода Излучение от первого входного сокета Шейдер нода Смешать шейдеры на второй входной сокет Шейдер.

Инвертирование порядка связей в ноде Смешать шейдеры

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

Чтобы предотвратить отражения незатеняемой Сюзанны, выполните следующий шаг:

Добавьте нод Прозрачного шейдера (Transparent BSDF, нажмите Shift + A и выберите Шейдер | Прозрачный BSDF) и подключите его к первому входному сокету Шейдер нода Смешать шейдеры.

Полностью незатеняемая Сюзанна

Переименуйте материал в shadeless (незатеняемый) и сохраните файл с именем 9931OS_09_shadeless.blend.

Как это работает...

Благодаря выходу Луч из камеры нода Путь света, все световые лучи из Камеры, которые непосредственно попадают на меш Сюзанны, рендерятся с яркостью материала Излучение (поскольку этот материал имеет величину равную 1, что является следствием его присоединения ко второму сокету Шейдер нода Смешать шейдеры). Для другого типа луча (отраженного, пересланного, и так далее, первый сокет = значение 0) действует неизлучающий материал меша Сюзанны. На самом деле, первоначально совсем нет никакого материала, и это дало черные отражения Сюзанны. После этого, чтобы избегнуть черных отражений, был подключен шейдер Прозрачный BSDF к первому сокету нода Смешать шейдеры.

И больше...

Второй метод получения незатеняемого объекта следующий:

Начиная с предыдущего файла, выберите меш Сюзанны, и в заголовке окна Редактора узлов щелкните на кнопке F справа от блока данных с именем материала, чтобы назначить фальшивого пользователя (это позволит сохранить материал в blend-файле, даже если он ничему не назначен). Затем щелкните по кнопке X (чтобы отсоединить блок данных).

Теперь щёлкните по кнопке Создать для создания нового материала. В окне Материала на панели Свойств переключите нод Диффузный BSDF на шейдер Излучение.

В окне Редактора узлов добавьте нод Изображение-текстура (Image Texture, нажмите Shift + A и выберите Текстура | Изображение-текстура) и подключите его выход Цвет к входному сокету Цвет нода Излучение.

Щелкните по кнопке Открыть нода Изображение-текстура, чтобы загрузить изображение teddybear.png.

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

Теперь перейдите в окно Объект на основной панели Свойств справа экрана. В подпанели Видимость лучей (Ray Visibility, обычно последняя внизу), отключите пункты Диффуз. (Diffuse), Глянец (Glossy), Передача (Transmission), Рассеивание объёма (Volume Scatter) и Тень (Shadow).

Незатеняемая Сюзанна, полученная через подпанель Видимость лучей

Таким образом, теперь активен только пункт Камера. Просто, быстро и эффективно!

Создание шейдера каркасного отображения

Этот раздел взят из первого издания книги, в третьем он почему-то отсутствует (возможно, из-за появления модификатора «Каркас») — прим. пер.

В этом рецепте мы создадим каркасный материал такого вида:

Подготовка

Запустите Блендер и откройте файл 1301OS_09_start.blend (9931OS_09_start.blend для архива от третьего издания — прим. пер.), который содержит сцену с простым объектом развернутой Сюзанны.

Выберите меш Сюзанны и нажмите Tab, чтобы войти в режим Редактирования; перейдите в окно Данных объекта и щелкните по небольшой кнопке + справа от панели UV-карты (UV Maps), чтобы добавить новый слой UV-координат.

Переместите мышь в окно 3D-вида и нажмите U; в выпадающем меню UV-разметка выберите пункт Сбросить (Reset). (Как я понимаю, перед этим надо было выделить все вершины — прим. пер.)

Выходите из режима Редактирования и переименуйте вторую UV-карту в UVMap2.

Как это сделать...

Создайте для Сюзанны новый материал и назовите его wireframe.

Общий вид нодовой сети:

Все ноды с математическими действиями созданы из нода Математика.

Входная часть сети:

Здесь:

В поле Имя нода Атрибут вписано название созданной UV-карты UVMap2.

Нод Толщина — это переименованный нод Значение (Value). В поле введено значение 0.1 — оно определяет толщину сетки на рендере, при желании его можно уменьшить или увеличить.

Нижняя вычисляющая часть сети:

Здесь:

Верхний вход Значение нода Меньше чем 2 подключен к выходу G нода Разделить RGB.

Нижний вход Значение нода Меньше чем 2 подключен к выходу нода Вычесть.

Верхний вход Значение нода Больше чем 2 подключен к выходу G нода Разделить RGB.

Нижний вход Значение нода Больше чем 2 подключен к выходу нода Толщина.

Верхняя вычисляющая часть сети:

Верхний вход Значение нода Меньше чем 1 подключен к выходу R нода Разделить RGB.

Нижний вход Значение нода Меньше чем 1 подключен к выходу нода Вычесть.

Верхний вход Значение нода Больше чем 1 подключен к выходу R нода Разделить RGB.

Нижний вход Значение нода Больше чем 2 подключен к выходу нода Толщина.

Нижний вход Значение нода Умножить3 подключен к выходу нода Умножить2.

Шейдерная часть сети:

Здесь:

Цвет в Диффузном шейдере определяет цвет получаемого каркаса. В данном случае автор выбрал светло-желтый R 0.8 G 0.7 B 0.2.

Вход Коэфф. нода Смешать шейдеры подключен к выходу нода Умножить3.

Создание материала эффекта фальшивого погружения

В этом рецепте мы создадим материал, дающий эффект погружения объекта в субстанцию, становящуюся всё более и более непрозрачной с увеличением глубины, например, мутная вода.

Эффект мутной воды, как он выглядит в окончательном рендере

Подготовка

Запустите Блендер и откройте файл 9931OS_09_start.blend (1301OS_09_start.blend для архива от первого издания — прим. пер.). Затем следуйте за этими шагами:

Перейдите в окно Мира и щёлкните по небольшой квадратной кнопке с точкой справа от поля Цвет. Из меню выберите Текстуру неба (Sky Texture). Затем установите величину Силы на 0.500.

Выберите плоскость Plane, переименуйте её в water (вода) и переместите по Z на 1.17. Затем нажмите Shift + D, чтобы продублировать её, переименуйте её в bed (дно) и переместите по Z на -2.0.

Как это сделать...

Давайте продолжим и создадим различные материалы:

Перейдите в окно Материала и выберите меш Suzanne_unwrapped. В заголовке окна Редактора узлов щелкните по кнопке Создать и переименуйте материал в (просто) Suzanne. В окне Материала на основной панели Свойств переключите шейдер Диффузный BSDF на нод Смешать шейдеры. В первом слоте Шейдер выберите шейдер Диффузный BSDF, а во втором слоте выберите шейдер Глянцевый BSDF.

Установите распределение для Глянцевого шейдера в Бекман (Beckmann) и величину Шероховатость на 0.100. Затем установите величину Коэфф. нода Смешать шейдеры на 0.600.

Выберите плоскость bed и щелкните по кнопке Создать в заголовке окне Редактора узлов. Переименуйте материал в bed.

В окне Материала переключите шейдер Диффузный BSDF на нод шейдера Излучение. Установите величины поля Цвет для R на 0.800, G на 0.659, и B на 0.264. Затем установите величину Силы на 0.100.

Выберите плоскость water и щелкните по кнопке Создать в заголовке окне Редактора узлов. Переименуйте материал в water.

В окне Материала переключите шейдер Диффузный BSDF на нод Смешать шейдеры. В первом слоте Шейдер выберите нод BSDF стекла, а во втором слоте Шейдер выберите нод Прозрачный BSDF.

Установите для Стеклянного шейдера величину Шероховатость на 0.600 и величину Показатель преломления (IOR) в 1.333. Затем установите величины поля Цвет для R на 0.185, G на 0.611, и B на 0.800.

Добавьте нод Путь света (Light Path, нажмите Shift + A и выберите Ввод | Путь света) и нод Градиентная карта (ColorRamp, нажмите Shift + A и выберите Преобразователь | Градиентная карта). Подключите выход Длина луча к входному сокету Коэфф нода Градиентная карта и инвертируйте позиции черного и белого цветовых движков (то есть, переместите черный цветовой движок до конца направо, а белый цветовой движок до предела налево).

Подключите выход нода Градиентная карта к входному сокету Коэфф нода Смешать шейдеры.

Нодовая сеть материала мутной воды

Как это работает...

Эффект, происходящий в материале water, является следствием выхода Длина луча, который возвращает длину световых лучей, проходящих через объект, таким образом давая толщину этого объекта. В нашем случае, расстояние от поверхности меша воды до дальнего расстояния (с точки зрения Камеры, поскольку световые лучи порождаются из Камеры).

Градиент нода Градиентная карта отображается на длину этого выхода Длина луча (также зажатый и инвертированный этим же нодом Градиентная карта), подключается к входному сокету Коэфф нода Смешать шейдеры для того, чтобы работать как карта шаблона (stencil), позволяя гладко смешивать Стеклянный шейдер с Прозрачным.

Таким образом, с помощью перехода от Прозрачного шейдера к Стеклянному мы добиваемся ощущения объёма воды, становящейся мутнее по мере увеличения расстояния от объекта до поверхности.

Создание материала фальшивого объёмного света

В этом рецепте мы создадим материал, позволяющий имитировать типичный эффект конуса света, видимого при прохождении через взвесь пыли в воздухе, или падающего с неба облачным днём (так называемые «лучи Бога»), отличающийся от реального объёмного эффекта, описанного в разделе Использование материалов объёма в Cycles этой главы. Эта подделка — просто меш, а не реальный свет, который нужно использовать для сцены. Следовательно, для реального освещения нужно установить соответствующую Лампу, как показано в уже созданном blend-файле.

Имитация конуса света, как она выглядит в окончательном рендере

Подготовка

Запустите Блендер и откройте файл 9931OS_09_volumelight_ start.blend (1301OS_09_volumelight_start.blend для первого издания — прим. пер.), где настроена сцена с плоскостью пола (Plane), Кубом, мешем объёмного конуса (volume_light), мешем прожектора (spot_mesh), и эффективной лампой типа Прожектор (Spot), являющейся потомком конуса volume_light. Конус Лампы-прожектора следует за формой объекта volume_light, и цель в том, чтобы осветить Куб, лежащий на полу Plane.

Для объектов объёмного света также настроена краткая анимация на 98 кадров. Чтобы увидеть её, подвигайте Курсор времени в окне Временной шкалы (Timeline); чтобы конус света был направлен на Куб, перейдите в кадр 81.

Как это сделать…

Давайте создадим материал светового конуса. Выберите конус volume_light и создайте для него материал с именем volume_light.

Общий вид сети:

Здесь:

Поле Смешение нода Вес слоя установлено на 0.9.

Цвет нода Излучение определяет цвет светового конуса, автор взял R 0.77 G 0.8 B 0.59.

Поле Коэфф нода Смешать шейдеры4 задано на 0.8.

Белый движок нода Градиентная карта в крайне левом положении.

Черный движок нода Градиентная карта в положении 0.71.

Нод Интенсивность — это переименованный нод Значение. Введённая в него величина обратно пропорциональна яркости конуса. Автор выбрал значение 0.4.

Как это работает…

Эффект смешения света с тьмой получен различными коэффициентами нодов Смешать шейдеры, которые заставляют смешиваться шейдер Излучение с шейдером Прозрачный BSDF. Целью подсоединения нода Значение ко входу Коэфф. нода Смешать шейдеры1 было определить интенсивность фальшивого объёмного света. Величина 1.0 полностью его выключает (будьте осторожными, чтобы не превысить значение 1.0, в противном случае меш конуса проявится как темный силуэт). Наоборот, величины около 0.0 (или даже отрицательные величины), делают его всё более и более ярким.

Будьте осторожными с этой симуляцией, поскольку меш, испускающий свет, может создать странные и нереалистичные эффекты, если всё тщательно не спланировать. Предположим, вы перейдёте к кадру 62 и начнёте рендер. Тогда вы увидите, что меш объёмного конуса пересекает Куб даже в тех областях, где реальный свет должен создавать тени.

Смотрите также

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

Теперь дело за вами — создавать новые, удивительные материалы и визуализации так, что все захотят смотреть на них. Вперёд к Блендеру!