Материалы
Это, пожалуй, самая увлекательная часть работы. После создания объектов хочется придать им вид реальных предметов вместо тех серых и безликих фигур, которыми они являются сейчас.
Скорее всего такое назначение материалов будет сугубо предварительным и в дальнейшем потребует уточнения. Это связано с тем, что ни сцена, ни освещение пока на настроены. Однако, в первом приближении материалы можно настроить и на этом этапе. Назначение материалов даст возможность видеть блики света, отражения, прозрачность - то, что делает сцену реальной в воображении зрителя. Это позволит более уверенно работать со сценой в дальнейшем.
Надо понимать, что во всех программах 3D моделирования объекты состоят всего лишь из бесконечно тонкой виртуальной оболочки соответствующей формы. Эта оболочка сама по себе не имеет каких-либо физических свойств, в том числе и оптических. Процесс назначения материала как раз и состоит в том, чтобы сопоставить нужные свойства с той или иной частью поверхности объекта.
При этом в Blender, да и в других программах тоже, нет возможности присвоить материал просто указав его название, например, стекло, металл, трава и т.п. Это было бы совершенно нерационально. Материалов существует так много, что перечень получился бы огромным. Да и выглядят одни и те же материалы в разных условиях по-разному.
Вместо этого материал требуется "создавать" из набора базовых физических свойств, таких как шероховатость, коэффициент отражения, прозрачность и других. Конечно, это сложнее и требует определенных знаний и опыта. Требуется овладеть инструментами, которые имеются в программе для "создания" материалов. Или, другими словами, для комбинирования базовых физических свойств поверхности. Взамен мы получаем гибкость и возможность добиваться нужного эффекта.
Полученный материал - это всего лишь набор чисел, который используется программой-рендером для расчета прохождения лучей света. Разные рендеры используют разные наборы и разные алгоритмы расчета. Это значит не только то, что результаты также будут отличаться друг от друга, но и то, что материалы, а точнее наборы данных, соответствующие материалам, которые подобраны для одного рендера, не подходят для другого. К сожалению, здесь пока нет стандартов. Реальность такова, что нужный рендер требуется выбрать уже сейчас, сразу после создания объектов, если это не было сделано раньше. Сказанное относится и к источникам света. В каждом рендере их математические модели свои.
Итак, для работы с материалами требуются по крайней мере две вещи: понимание основных свойств доступных рендеров с тем, чтобы выбрать наиболее подходящий из них и умение использовать инструменты для управления базовыми физическими свойствами поверхности, имеющиеся в выбранном рендере.
Программы-рендеры упоминались уже не раз. Теперь есть смысл остановиться на них подробнее. Именно они во многом определяют конечный результат.
Рендеры
Если говорить по-простому, то задача рендера - просчитать пути всех лучей в сцене от всех источников света - до камеры. Расчет проводится с учетом отражения, сквозного прохождения, преломления, изменения интенсивности и других эффектов, которые дают объекты. Задача довольно сложная и ресурсоемкая.
Принято делить все рендеры на два больших класса - физически точные (распространен термин Unbiased Rendering, что означает рендеринг без допущений) и имеющие допущения (Biased Rendering). Предполагается, что первые рассчитывают ход лучей в соответствии с точной физической моделью, а вторые имеют множество упрощений, используют трюки для имитации физики и даже не учитывают некоторые эффекты вообще. На самом деле реальная картина настолько сложна, что ни одна программа сегодня не в состоянии ей соответствовать полностью. Мало того, до сих пор природа некоторых оптических эффектов изучена не до конца, что уж говорить об их математической модели. Поэтому абсолютно точных рендеров не существует.
Тем не менее, условная граница между физически корректными и сильно упрощенными рендерами все же имеется. В первых количество допущений настолько мало, что результат рендеринга выглядит достаточно правдоподобно. Платой за это является большое время рендеринга и/или высокие требования к вычислительной мощности компьютера. Упрощенные рендеры работают намного быстрее, но результат может быть не очень реалистичным.
Blender может использовать различные рендеры. Наибольшее распространение получили три. Все они свободные и не требуют каких либо лицензионных отчислений. Вот их очень краткая характеристика.
- Рендер Blender (Internal Blender Render). Этот рендер относится к классу рендеров с допущениями. Он изначально был встроен в Blender и долгое время был в нем единственным. Работает очень быстро, особенно на современных компьютерах. Хорошо подходит для создания сцен типа мультяшных, а также для анимации вообще. Фотореалистичных изображений в нем не получить, хотя правдоподобие может быть вполне достаточным для многих задач. Примерно с 2009 года Blender Render практически не развивается, исправляются только ошибки, найденные в коде. Разработчики решили постепенно заменить его на более совершенный рендер, чего пользователи программы очень ждали. Но Blender Render до сих пор присутствует в программе, настраивается очень просто и по-прежнему может использоваться для проектов с невысокими или специфическими требованиями к результату. В Blender он включен по-умолчанию.
- Cycles Render включен в Blender начиная с версии 2.5 и пришел на замену Internal Blender Render. Это физически корректный рендер. Он активно развивается и постоянно обрастает новыми возможностями. Производительность у рендера средняя, но может быть существенно увеличена при подключении к проведению вычислений графического процессора видеокарты. Позволяет получить очень реалистичные изображения, пригоден и для анимации. Cycles Render входит в состав Blender, но его нужно выбрать в настройках программы, чтобы использовать вместо Internal Blender Render.
- LuxRender является отдельным проектом. Он не входит в состав Blender и требует установки, которая впрочем довольно проста и описана на его домашнем сайте. После установки можно выбрать LuxRender в настройках Blender. Это физически точный рендер. Основой LuxRender явяется проект физически точного трассировщика лучей PBRT, который используется для научных целей, поэтому физика здесь на первом месте. В LuxRender учтено больше эффектов, чем в Cycles Render, поэтому он может давать еще более реалистичные изображения. Платой за это является большое время расчета. Процесс рендеринга очень похож на проявление фотографии - изображение возникает постепенно. Сложные сцены могут проявляться часами. Программа, кроме прочего, имеет собственный графический интерфейс и позволяет выполнять отложенный просчет сцены и изменять освещенность сцены даже после окончания рендеринга. Для анимации этот рендер лучше не использовать.
Идеального рендера не существует. Выбор рендера - это всегда компромисс и все зависит от задачи. Но при любом выборе для получения хорошего результата при моделировании обязательно надо помнить, что:
- Физические размеры модели должны соответствовать прототипу. О выборе масштаба сцены уже говорилось ранее.
- Материалы и источники света должны настраиваться после выбора рендера, а не до этого.
Выбор рендера в Blender производится в верхней части окна, справа от главного меню.
Выбор рендера в Blender.
В дальнейшем во всех примерах будет использоваться Cycles Render.
Инструменты для управления физическими свойствами поверхности
Для назначения поверхностям свойств, которые соответствуют каким-либо материалам, можно использовать два различных инструмента. Важно понимать, что оба они делают одно и то же. Мало того, настройки сделанные в одном сразу отображаются в другом.
Первоначально в Blender все настройки материала были сосредоточены в правой Панели свойств и становились доступны при нажатой кнопке Материал. Этот инструмент работает и сейчас (на иллюстрации находится справа). Но постепенно он заменяется на Редактор узлов (на иллюстрации это область слева), который можно отобразить в любом окне, если выбрать для него соответствующий пункт в списке видов (крайний значок слева в строке частного меню окна). Редактор узлов узлов удобнее, нагляднее и обладает бОльшими возможностями, чем то, что имеется в Панели свойств.
Инструменты для настройки материала.
Пользователи Blender высоко оценили положительные свойства Редактора узлов, поэтому разработчики постоянно совершенствуют его и планируют сделать основным инструментом не только для управления материалами, но и другими свойствами проекта. Уже сейчас Редактор узлов используется для настройки не только материалов, но и композиции и текстур.
Использование Редактора узлов рассматривается в этом разделе по причине того, что настройка материала позволяет наглядно продемонстрировать свойства этого инструмента и принцип его работы.
На иллюстрации видно, что сразу после создания объектов проект не содержит ни одного материала. Новый материал появится после нажатия кнопки Создать, причем неважно где это сделать - в Редактор узлов или в Панели свойств. Сразу после этого появится материал с названием, которое присваивается автоматически и которое можно изменить после щелчка левой кнопкой мыши в соответствующем поле. Материал присваивается тому объекту, который был в этот момент выделен. Для других объектов этот материал недоступен, но это можно изменить, нажав мышкой справа от материала букву F.
По умолчанию материал имеет свойства: Диффузный BSDF, цвет белый, шероховатость 0 и некоторые другие. В окне Редактора узлов появились два прямоугольника (для отображения возможно потребуется отметить чекбокс Использовать узлы). Это и есть собственно узлы (nodes, ноды - все эти термины используются в литературе по Blender и являются эквивалентами). Узлы имеют точки разного цвета и соединены линией. Это требует пояснения.
Появление материала.
Узлы - это логические объекты, используемые для для управления в данном случае свойствами материалов, такими как цвет, шероховатость, коэффициент отражения и другими. Узлы имеют входы (слева) и выходы (справа). На вход попадает информация о каких-либо характеристиках материала. В узле над этой информацией производятся действия, которые зависят от свойств этого узла. Затем преобразованная информация передается на выход. Узлы можно выстраивать в цепочки для последовательного изменения свойств материала соединяя выходы предыдущих нодов с входами последующих.
Каждый узел имеет название. Входы и выходы узлов (их часто называю сокетами) также имеют названия, которые подсказывают, с каким свойством они могут взаимодействовать. Для удобства сокеты маркируются цветом:
- o желтые разъемы передают цветовую (например, RGB) информацию.
- o серые разъемы относятся к скалярным данным. Например, коэффициент смешивания, карта рельефа, прозрачность (Альфа и т.п.).
- o сиреневые (или фиолетовые) разъемы передают векторную информацию (нормали, касательные, направление на камеру и т.п.).
- o зеленые разъемы связывают шейдеры.
Как правило, соединяются сокеты одного цвета. Но далеко не всегда.
Неиспользуемые входные сокеты обычно автоматически заполняются подходящими значениями по умолчанию и часто имеют слайдеры для установки этих значений вручную.
Один выход может быть соединен с несколькими входами. Соединения входов и выходов показываются гибкими линиями, которые можно "отключать" и "подключать" мышкой. Сами узлы также можно перемещать мышкой по полю для более наглядного их расположения. Кроме того, узлы можно копировать (Ctrl+C) и вставлять (Ctrl+V).
Вращение колесика мыши изменяет масштаб просмотра всей карты узлов.
Различных узлов довольно много и все время появляются новые. Для правильного и свободного использования необходимо представлять их назначение и возможности. Узлы располагаются в пункте частного меню Добавить. Они сгруппированы здесь по функциональному назначению. Для добавления узла можно использовать также комбинацию клавиш Shift+A.
Шейдеры
Вернемся к иллюстрации, которая была представлена выше. Узел Диффузный BSDF - это и есть материал. Такие узлы имеют собственное название - шейдер. В данном случае шейдер является отдельным программным модулем, в котором заложены свойства материала. Шейдеров не много. Все они сосредоточены в подпункте частного меню Добавить -> Шейдер. Рассмотрим их подробнее. Все приведенные здесь изображения шейдеров, которые имеют логотип Blender, взяты из документации Blender, которая имеется в свободном доступе на сайте проекта. Там можно найти гораздо более подробную информацию о них, да и о других узлах тоже. Ссылка есть в Приложении. Напомним, что речь идет о материалах для Cycles Render, но не для других рендеров.
Диффузный BSDF (Diffuse BSDF) рассеивает свет и дает матовую поверхность. |
Диффузный BSDF. |
Глянцевый BSDF (Glossy BSDF) — материал для глянцевых и блестящих поверхностей (пластик, металл) и для зеркал. Имеет несколько алгоритмов просчета характера отражения света от микронеровностей:
|
Глянцевый BSDF. |
Прозрачный BSDF (Transparent BSDF) - прозрачный материал без преломления. Только чистый белый цвет дает такой эффект, в остальных случаях лучи ослабляются или окрашиваются. Почти не применяется самостоятельно и не очень подходит для создания прозрачных материалов. Скорее это - Альфа (прозрачность), которую используют, например, для получения постепенного исчезновения объектов или похожих эффектов. |
Прозрачный BSDF. |
Преломляющий BSDF (Refraction BSDF) - материал дает глянцевое преломление для материалов, которые пропускают свет. Этот узел не следует использоваться сам по себе, лучшие результаты дает смешение с Глянцевым BSDF с помощью узла ввода Френель. Без такой комбинации получатся довольно темные края объекта. Имеет несколько алгоритмов просчета характера отражения света от микронеровностей. |
Преломляющий BSDF. |
BSDF стекла (Glass BSDF) — материал стекла. Его можно рассматривать как смесь преломления и отражения при скользящих углах. Но для стекла сделан специальный шейдер. Это вызвано тем, что стекло - материал, который постоянно встречается в реальности, его вид всем хорошо знаком. Поэтому малейшие ошибки при создании этого материала, как правило, сразу видны. Стекло имеет тенденцию вызывать шум из-за каустики. По умолчанию цвет стекла не белый, а чуть сероватый (value = 0.8). Для получения белого надо увеличить интенсивность до 1. Имеет несколько алгоритмов просчета характера отражения света от микронеровностей. |
BSDF стекла. |
Просвечивающий BSDF (Translucent BSDF) похож на матовое стекло. При малом количестве сэмплов выглядит как состоящий из матовых крупинок, при большом - приобретает однородность. |
Просвечивающий BSDF. |
Анизотропный BSDF - в реальном мире этот эффект можно увидеть на отполированных поверхностях с длинными параллельными «микроцарапинами». Например, в результате механической обработки при шлифовке в одном направлении. Похожий эффект может возникать на поверхности материалов, состоящих из мелких параллельных волокон. |
Анизотропный BSDF. |
BSDF бархата (Velvet) - может использоваться для материалов, подобных ткани. Предназначен для использования вместе с другими шейдерами (например, Диффузный BSDF) и не особенно полезен без них. |
BSDF бархата. |
Toon BSDF - имеет два режима: диффузный (Diffuse) и глянцевый (Glossy). Материал для мультфильмов. |
Toon BSDF. |
BSSRDF - материал с подповерхностным рассеиванием. Здесь свет проникает на некоторую глубину, а затем переизлучается наружу и освещает поверхность изнутри (кожа, воск, мрамор, молоко). Используется модель подповерхностного рассеивания SSS (Subsurface Scattering). Свет, проникая через поверхность полупрозрачного материала, рассеивается внутри самого материала и выходит из материала в другой точке. Рассеивание происходит путем многократного отражения в случайном направлении от частиц материала. |
BSSRDF. |
BSDF волос. Подходит для имитации не только волос, но и травы, хвои, перьев, чешуи и подобных им по структуре материалов. |
. |
Дыра (Holdout) - материал с Альфа=0, т.е. полностью прозрачный. Его бывает удобно использовать при композитинге для того, чтобы полностью пропустить лучи света, которые не должны в дальнейшем участвовать в расчетах. |
Дыра. |
Существуют и часто применяются также несколько специальных шейдеров:
- Шейдеры, предназначенные для создания объемных эффектов:
- Поглощение объема (Volume Absorption) позволяет имитировать поглощение света в различных средах, таких как жидкость, стекло, атмосфера и т.п.
- Рассеивание объема (Volume Scatter) может использоваться для имитации дыма, облаков, тумана, взвеси частиц в жидкости и т.п.
- Излучение (Emission) — объект с данным типом материала будет испускать объемный свет и освещать сцену. Это один из вариантов освещения.
- Ambient Occlusion (АО, окружающее поглощение, затенение) - материал, освещенность которого зависит от других объектов. Эффект АО подробнее будет рассмотрен в заключительном разделе этой главы
- Фон. Часто бывает необходимо использовать для сцены задники. Они могут выполнять две задачи - быть фоном сцены, показывая какое-либо изображение и участвовать в ее освещении.
Из сказанного выше уже стало ясно, что шейдеры почти не применяются в одиночку. Реальные материалы почти всегда в той или иной степени обладают свойствами нескольких шейдеров одновременно. Например, материал может быть глянцевым, прозрачным и в то же время анизотропным. Для того, чтобы создать хороший материал, шейдеры обычно требуется комбинировать, а также использовать и узлы других типов. Для получения комбинации двух или более источников предназначены специальные шейдеры Смешать шейдеры (Mix) и Сложить шейдеры (Add). Второй не является физически корректным, поэтому рекомендуется использовать шейдер Смешать шейдеры.
Все шейдеры имеют настройки, которые для каждого из них соответствуют их физическим свойствам. Это может быть цвет, шероховатость, коэффициент преломления, глубина проникновения света и другие.
В структуре, которая получается при создании материала, обязательно должен присутствовать узел Вывод материала. Именно он применяет полученный материал к объекту.
Сказанного выше вполне достаточно для создания материала в первом приближении. На иллюстрации ниже видно, что в Редакторе узлов и в Панели свойств виден один и тот же материал. Изображение фигуры шахматного коня в нижней части показано после рендеринга (F12).
Предварительное создание материала для фигур черного цвета.
Надо помнить, что ни камера, ни освещение пока не настраивались.
Текстуры - общие замечания
Очень часто созданный материал выглядит слишком уж хорошо, просто идеально. В реальности так обычно не бывает. Следы механической обработки, старения, грязи и другие подобные вещи придают предметам ту достоверность, которая и делает их реальными. Мы можем не замечать такие мелочи, но они всегда есть.
Иногда нужный материал вообще затруднительно создать, особенно если он имеет природное происхождение. Такими "трудными" материалами являются, например, волны или трава, лес, видимый с большого расстояния, облака. В подобных случаях можно использовать текстуры - заранее подготовленные изображения подходящих поверхностей и предметов.
В Blender имеется возможность применять два вида текстур - процедурные и на основе самостоятельного изображения.
Процедурная текстура (фон). |
Текстура-изображение на сфере. |
Процедурные текстуры являются трехмерными математическими функциями. Они хорошо подходят для имитации таких поверхностей как дерево, волны, облака и им подобных. Изображение образуется в области пересечения этой трехмерной функции с поверхностью объекта. Интересно, что любые сечения объекта снова дадут изображение текстуры, например, на "распиле" древесины.
Второй тип текстур - это просто картинки, которые берутся из подходящих файлов изображений. Это могут быть фотографии реальных объектов или изображения, предварительно созданные в графическом 2D редакторе. Такие текстуры могут придать трехмерной модели очень правдоподобный вид. Сложность здесь состоит в том, что текстуры-картинки являются двумерными объектами. Эти плоские изображения требуется накладывать на трехмерные поверхности сложной формы. Для этого в Blender применяется методика, которая, связана с использованием развертки 3D объекта.
Использование любых текстур похоже на нанесение рисунка на поверхность объекта. Форма объекта при этом не меняется, хотя рисунок может создавать зрительную иллюзию такого изменения. Например, текстура Волны, наложенная на плоскость, может быть очень похожа на настоящие волны, но плоскость при этом все равно остается плоскостью. Лучи при рендеринге будут отражаться от этой плоскости, а не от "волн". Хотя, если текстура получена при похожем освещении, то она может выглядеть очень реалистично.
Также важно понимать, что текстуры остаются всего лишь картинками. Сами по себе они не обладают свойствами какого-либо материала - не способны давать отблески, преломлять лучи или участвовать в других оптических эффектах. Поэтому текстуры всегда используют вместе с подходящим для поверхности материалом. Мало того, текстуру невозможно наложить на объект не назначив предварительно материал.
Процедурные текстуры
Мы все еще находимся в инструментах создания материалов - и в Редакторе узлов, и в правой Панели свойств. Признаком этого является то, что кнопка Шейдер (для первого) и кнопка Материал (для второго) - нажаты. Эта кнопка выглядит как глянцевый золотистый шар.
Процедурные текстуры материалов доступны через пункт меню Добавить -> Текстура в окне Редактора узлов, который в основном и будет использоваться в дальнейшем. Здесь можно найти следующие текстуры:
- Изображение текстура - в качестве текстуры используется изображение из файла PNG (предпочтительно) или JPG.
- Environment Texture (Текстура окружающей среды) похожа на предыдущую, но создает излучающие свет объекты на основе изображений из файлов PNG или JPG.
- Текстура неба.
- Текстура шума, Вороной (Voronoi), Масгрейв (Musgrave) представляют собой математическую реализацию соответствующей модели шума, где имеющиеся для узла неясные настройки можно изменять хоть до бесконечности.
- Текстура волны.
- Текстура градиента.
- Волшебная текстура (Magic). Эта текстура построена не на основе шума. Может использоваться для переливающихся материалов, таких как нефтяные пятна, тела насекомых и различных металлов.
- Текстура шахматной доски - изображение, составленное из квадратов двух цветов. Цвет можно выбирать. Масштаб задает количество клеток на объект - чем больше значение, тем больше клеток поместится, тем их размер будет меньше.
- Текстура плитки.
Принцип включения процедурных текстур в материалы почти всегда примерно один и тот же - текстура должна воздействовать на какое-либо свойство шейдера. Здесь все определяется опытом, очень могут помочь собственные эксперименты и примеры, которых достаточно в Интернете.
Вот как выглядит в Редакторе узлов настройка материала с использованием процедурной текстуры, который показан на иллюстрации выше.
Настройка процедурной текстуры (фон).
Еще один пример - материал для шахматной доски. Пусть это будет дерево. Его структура имеет волнообразный характер и состоит из более темных и более светлых участков. Цвет и чередование участков варьируются в очень широких пределах в зависимости от породы древесины и характера ее обработки. Мало того, "черные" и " белые" шахматные клетки визуально могут сильно отличаться не только друг от друга, но и от самой доски.
Чтобы придать шахматной доске ее привычный вид, надо решить две задачи: создать три подходящих материала и расположить эти материалы на соответствующих им участках. Напомним, что сам объект Шахматная доска был создан в предыдущем разделе.
Обычно одному объекту соответствует один материал. Но для объекта Шахматная доска нужны три. Для того, чтобы добавить материал, надо нажать мышкой знак "+", который расположен справа в области Слотов материала. После этого его нужно создать как обычно, например, в Редакторе узлов и дать каждому материалу понятное название. На иллюстрации видно, что имеется три материала: для доски и для черных и белых клеток. В подобных случаях материал расположенный сверху считается основным материалом объекта.
Знак "-" справа в области Слотов материала удаляет ненужный слот материала.
Три материала для шахматной доски.
Материалы можно создавать в Режиме объекта, но в этом случае их можно назначить только всему объекту целиком. Для назначения разных материалов различным частям объекта нужно перейти в Режим правки.
В Режиме правки можно просто выделить нужные грани и назначить им материал. Но бывает полезно такое выделение зафиксировать, что может понадобиться при дальнейшей работе над моделью. Делается это так.
В Режиме правки на Панели свойств включается отображение Данных объекта (кнопка в виде треугольника, слева от кнопки материала). После этого нужно выделить все грани (удерживая клавишу Shift), соответствующие белым клеткам шахматной доски. В данном случае нужны именно грани, но вообще выделять можно и ребра, и вершины. Об инструменте, который управляет этим выбором уже говорилось ранее.
После того, как грани выбраны, можно объединить их в группу. Для этого нужно нажать мышкой знак "+", который расположен справа в области Группы вершин, затем нажать кнопку Назначить, которая расположена ниже. Название группы желательно сразу изменить на более понятное. Кроме кнопки Назначить имеются также кнопки для удаление, выделения или снятия выделения группы.
После того, как такая же операция будет проведена с черными клетками, объект будет иметь две группы граней, которыми можно манипулировать отдельно друг от друга.
Объединение граней в группу.
Теперь можно назначить материал отдельно каждой группе граней. Для этого, все еще в Режиме правки:
- На Панели свойств включается отображение Данных объекта. Выделяется нужная группа граней.
- На Панели свойств включается отображение Материал. Выбирается слот материала, соответствующий этой группе граней. Нажимается кнопка Назначить, расположенная ниже области слотов материала.
Готовая шахматная доска.
Рендер, показанный на иллюстрации, пока основан на материалах, созданных в первом приближении, для предварительной оценки будущего изображения. Освещение еще не настраивалось вовсе.
Текстуры-развертки
В противоположность процедурным текстурам, которые по своей природе являются трехмерными математическими функциями, текстуры-изображения всегда имеют только два измерения, они плоские. Для нанесения таких текстур на поверхность трехмерного объекта в Blender используется метод UV-текстурирования (UV Mapping). Свое название метод получил по обозначению осей координат U и V. Эти оси расположены в плоскости граней, которые образуют поверхность объекта. Каждая грань имеет свои оси U и V. Идея состоит в том, чтобы разбить плоское изображение на части, соответствующие граням объекта, а затем совместить одно с другим. Иначе говоря, требуется получить плоскую развертку объекта, каким бы сложным он ни был, а после этого подогнать изображение к этой плоской фигуре. Координаты U и V нужны для того, чтобы сохранить правильную ориентацию отдельных элементов изображения относительно друг друга.
Как и процедурные, текстуры-изображения накладываются на поверхности, которым уже назначен какой-либо материал, это обязательное условие.
UV-текстурирование (UV Mapping) в Blender почти полностью автоматизировано и выполняется очень просто. Но за простыми действиями скрыты довольно сложные процессы, что иногда вызывает некоторое недопонимание. Данный прием используется часто и поэтому в технике наложения текстур-изображений стоит разобраться. В качестве примера возьмем игральную карту, которая была создана в предыдущем разделе. Процесс наложения текстуры-изображения состоит из четырех этапов.
Сначала создается изображения для текстуры. Это может быть готовая фотография или скан рисунка, возможно после некоторого редактирования. Или это может быть изображение, созданное с нуля в 2D графическом редакторе специально для наложения на поверхность модели. Лучше использовать файлы изображений в формате PNG, который позволяет сохранять прозрачность. Но допустимы и другие форматы.
Подготовленное изображение надо открыть в окне Редактора UV/изображений (UV/Image Editor), выбрав соответствующий пункт в Текущем виде редактора этой области (на иллюстрации обведен красным слева внизу). Изображение открывается с помощью пункта меню Изображение -> Открыть изображение.
Окно Редактора UV/изображений (слева).
На иллюстрации справа видно окно 3D вида с исходным объектом. Видно, что ни размеры, ни пропорции изображения и объекта не совпадают. Однако, это совершенно не является препятствием для нанесения текстуры.
Теперь требуется создать развертку объекта. Процесс похож на разворачивание разрезанной в нескольких местах, бумажной модели на плоской поверхности. UV текстурирование выполняется в окне 3D вида в Режиме правки, при включенной панели Т, которая находится в состоянии Затенение/UV (вкладка отмечена красным овалом). Объекту Карта предварительно назначен материал и ему присвоено название Карта.
В данном конкретном случае развертка будет очень простой. Фактически плоская карта и ее развертка полностью совпадают. Тем не менее, описанные ниже шаги точно так же позволяют развернуть любой, даже самый сложный объект.
Разрезы всегда проходят по ребрам, поэтому для получения развертки нужно выделить те из них, которые для этого подходят наилучшим образом. Для сложных объектов придется подумать и выбрать нужные ребра. В случае плоской игральной карты можно просто выделить все ребра кроме тех, которые расположены в закругленных углах. Выделенные ребра помечаются оранжевым цветом.
Теперь надо пометить швы, которые пройдут по выделенным ребрам - нажать кнопку Пометить шов на панели Т. При этом швы будут выделены двойной толщиной и сменят цвет на темно-оранжевый. Швы не обязательно должны быть непрерывными - надо исходить из формы модели. Если разрез представляет собой замкнутую линию, то после получения развертки появится остров. Island (острова) - это независимые части UV развертки, полученные после разрезания.
После того, как шов помечен, надо переключиться в режим выделения граней и выделить их все (клавиша А). Это важный момент. Ведь нам нужна развертка, состоящая именно из граней. Если грани не будут выделены, то развертка не получится.
Затем нужно нажать слайдер Развертка на панели Т или клавишу U, что то же самое. Появится меню, где надо выбрать нужный метод расчета развертки. Это - самый тонкий момент.
Обычно используется метод Развернуть. Это универсальный метод, который может быть использована для мешей любой формы. Есть методы, которые предназначены для получения разверток основных примитивов - куба, цилиндра, сферы или близких к ним по форме. Для лучшего овладения техникой имеет смысл попробовать разные методы и посмотреть на результат.
После разворачивания в окне Редактора UV/изображений появится развертка, наложенная на открытое ранее изображение. Если изображение развертки увеличить, то станет видно, что оно состоит из отдельных граней, тех самых островов, пока пустых элементов будущей текстуры. В промежутках между ними изображения не будет - наложение плоского изображения на объемную модель всегда сопровождается некоторыми потерями, это естественно. Важно, чтобы эти потери были минимальны.
Развертка получена.
Как только сделана развертка, Blender автоматически создает UV-текстуру. Текстуре присваивается имя, которое совпадает с именем файла изображения. Под этим именем созданная текстура доступна для всех объектов проекта.
После того, как развертка получена, ее нужно совместить с текстурой-изображением. Для каждой грани (или группы выделенных граней) в окне Редактора UV/изображений действуют клавиши S, G, R. Другими словами, прямо в окне Редактора UV/изображений грани развертки можно масштабировать, перемещать и вращать для получения наилучшего перекрытия ими текстуры-изображения.
После получения и доводки UV-текстуры требуется выполнить операцию, обратную разворачиванию - обернуть текстуру вокруг объекта. Для этого в Редакторе узлов требуется всего лишь указать, что материал использует изображение-текстуру вместо цвета. В окне 3D вида результат будет виден сразу, если установлен режим отображения Материал или С визуализацией.
Оборачивание текстуры вокруг объекта.
После этого можно считать наложение текстуры законченным и переключиться в Режим объекта.
Если имеется несколько одинаковых по форме объектов, то не требуется делать для каждого из них свою развертку. Для того, чтобы получить новую UV-текстуру на основе уже имеющейся развертки достаточно в окне Редактора UV/изображений открыть другое изображение с помощью пункта меню Изображение -> Открыть изображение. При этом будет создана еще одна текстура, уже с новым именем. Конечно, при этом каждому объекту надо назначать свой материал со своей текстурой.
Три карты.
У карт имеется вторая сторона - рубашка. Если бы карты имели толщину, то назначить материал рубашки было бы несложно, потому, что обратная сторона была бы в этом случае такой же поверхностью, как и лицевая, но в то же время не совпадала бы с ней. Но карты, которые имеются в данном случае, не имеют толщины. Их лицевая поверхность одновременно является и обратной. В 3D моделировании такие объекты встречаются часто. Если в таком случае все же требуется присвоить сторонам разный материал, то можно воспользоваться следующим приемом.
Прежде всего нужно создать UV-текстуру для обратной стороны. Это делается точно так же, как было показано выше, на основе той же самой развертки.
После этого нужно изменить уже имеющийся материал каждой карты таким образом, чтобы он использовал две UV-текстуры. Одна из них располагается на обратной стороне плоскости с помощью узла Геометрия (Добавить -> Ввод -> Геометрия).
Двухсторонний материал.
На самом деле материал здесь конечно один. Но он имеет разный рисунок сверху и снизу. Это хорошо видно, если повращать игральную карту мышкой.