Трехмерная графика Maya для продвинутых



Карты текстур



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

Проекционные координаты
Проекционные координаты, которые иногда также называют UV-координатами, указывают способ размещения двумерного рисунка на поверхности модели, причем способ зависит от того, создана ли модель на основе NURBS-кривых или же на основе полигонов. В первом случае модель снабжена встроенной системой проекционных координат. Так как NURBS-поверхности по определению являются параметрическими, карта текстуры автоматически следует всем изгибам этой поверхности. Впрочем, даже в этом случае существует возможность редактирования проекционных координат, что позволяет изменить положение и ориентацию текстуры на поверхности объекта.
Для полигональных поверхностей обычно используются проекционные координаты нескольких типов: Planar (Плоские), Cylindrical (Цилиндрические), Spherical (Сферические). Кроме того, используется особый метод, называемый автоматическим проецированием. Как можно ожидать, применение проекционных координат типа Planar (Плоские) приводит к размыванию рисунка в областях, перпендикулярных направлению проецирования. Создается впечатление, что решить проблему можно с помощью цилиндрических и сферических проекционных координат. Но они имеют точки сингулярности, расположенные на полюсах сферы и цилиндра, в которых карта текстуры сходится в одну точку.

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

Интерактивное размещение текстуры
Проще всего редактировать положение текстуры непосредственно на поверхности объекта. Поэтому в Maya существует возможность интерактивного размещения текстуры. Благодаря этой функции можно наблюдать, как выглядит рисунок по мере перемещения, поворота и масштабирования управляющих векторов положения текстуры. Осуществить интерактивное размещение текстуры можно только в случае, если хотя бы для одного из окон проекции включено аппаратное размещение текстур. Выберите в меню оперативного доступа команду Shading > Hardware Texturing (Затенение > Аппаратное наложение текстур) или нажмите клавишу 6. Эта даст вам возможность увидеть результат назначения карты текстуры непосредственно в окне проекции.

Процедурные карты текстур
Кроме текстур, полученных путем сканирования фотографий реальных объектов, существуют процедурные карты текстур (procedural textures), генерируемые математически. Многие материалы, например кирпич, черепица или градиентная заливка, имеют повторяющуюся структуру, которая легко может быть представлена уравнением. Также математически можно имитировать мрамор, кожу, воду, гранит и многие другие сложные материалы с непериодической структурой. Процедурные текстуры в Maya представлены в двух вариациях — двумерные и трехмерные. Двумерные карты текстур можно представить как созданные на основе математических формул растровые изображения. Однако сформированное двумерное изображение обычно проецируется на поверхность трехмерного объекта. Соответственно, в этом случае приходится иметь дело со всеми проблемами, возникающими при использовании обычных текстур. Рисунок трехмерных карт текстур меняется в пространстве, и вы видите изображение, образующееся при пересечении текстуры с поверхностью объекта. Это похоже на вырезание фигуры из блока мрамора. Поэтому при работе с процедурными картами не требуются проекционные координаты. Но если к объекту применены деформации, создается впечатление, что карта текстуры соскальзывает с поверхности объекта. Для исправления ситуации в этом случае в Maya используется дополнительная функция Texture Reference Object (Ссылочный объект для текстуры). Она позволяет деформировать текстуры вместе с поверхностью.
Процедурные карты текстур имеют ряд преимуществ. Так как они создаются на основе математических формул, редактированием их параметров можно создавать различные эффекты. Благодаря возможности генерации случайного шумового процесса создаются материалы с рисунком в виде областей случайной формы и яркости. Кроме того, поскольку текстурные карты существуют во всех точках трехмерного пространства, их можно использовать для формирования материалов сложных объектов, подбор проекционных координат для которых является весьма трудоемкой задачей.

Двумерные карты текстур
Двумерные процедурные карты текстур в Maya делятся на две категории: карты с повторяющимся рисунком и карты со случайным рисунком. К первым относятся Grid (Решетка), Checker (Шахматное поле), Bulge (Выпуклости), Cloth (Ткань) и Ramp (Линейный градиент). С помощью этих карт можно создать рисунок кирпичной стены, черепицы и других материалов с периодической структурой, созданных руками человека. В число карт со случайным рисунком входят Fractal (Фрактал), Mountain (Горы), Noise (Шум) и Water (Вода). На основе этих псевдослучайных текстур удобно создавать имитацию природных поверхностей.

Трехмерные карты текстур
Все трехмерные процедурные карты текстур, кроме карты Snow (Снег), относятся к картам со случайным рисунком. Некоторые из них, например Wood (Дерево) или Marble (Мрамор), идеально имитируют природные материалы. Даже при моделировании объектов, созданных руками человека, не обойтись без этих карт. Имитация мозаики, ковровых покрытий или картины, нарисованной кистью на стене, происходит на основе именно трехмерных карт текстур.

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

  1. Откройте окно диалога Hypershade (Редактор узлов), нажав комбинацию клавиш Shift+T. Вам понадобятся как оба окна рабочей области, так и область создания узлов. Щелкните правой кнопкой мыши на верхней панели области создания узлов и выберите в появившемся меню вариант Create Materials (Создание материалов). Средней кнопкой мыши перетащите образец раскраски Blinn (По Блинну) в нижнее окно рабочей области и дважды щелкните на нем, чтобы открыть окно диалога Attribute Editor (Редактор атрибутов).
  2. Присвойте материалу имя checkerfloor. Щелкните на кнопке, расположенной справа от имени параметра Color (Цвет). Появится окно диалога Create Render Node (Создать узел визуализации), открытое на вкладке Textures (Текстуры), как показано на рис. 8.12. Эта вкладка содержит перечень всех возможных двумерных и трехмерных процедурных и обычных текстур. Щелкните на кнопке с надписью Checker (Шахматное поле), чтобы назначить указанную текстуру характеристике материала Color (Цвет).

Рис. 8.12. Окно диалога Create Render Node содержит все возможные типы карт текстур

  1. Разверните окно проекции Perspective (Перспектива) на полный экран и нажмите клавишу 5, чтобы гарантировать, что вы находитесь в режиме тонированной раскраски. Выберите в меню оперативного доступа команду Shading > Hardware Texturing (Затенение > Аппаратное наложение текстур).
  2. В данном случае для назначения материала объекту следует воспользоваться приемом «перетащить и оставить». Средней кнопкой мыши щелкните на ячейке образца материала checkerfloor, расположенной в верхнем окне рабочей области, перетащите указатель мыши в окно проекции и положите материал на плоскость пола. После этого пол должен приобрести вид шахматной доски.
  3. Выделите ячейку с образцом материала checkerfloor в окне диалога Hypershade (Редактор узлов), чтобы сделать его активным в редакторе атрибутов. В раскрывающемся списке Texture Quality (Качество текстуры) раздела Hardware Texturing (Аппаратное наложение текстур) выберите вариант High (Высокое). В результате рисунок шахматной доски станет более четким.
  4. В окне диалога Attribute Editor (Редактор атрибутов) поле образца цвета для материала checkerfloor имеет светло-серый цвет. Обратите внимание, что рисунок в виде шахматной доски на расположенной справа кнопке сменился указывающей вправо стрелкой. Это значит, что цвет материала был заменен картой текстуры. Нажмите эту кнопку, чтобы посмотреть на параметры карты текстуры Checker (Шахматное поле).
  5. Появится раздел Checker Attributes (Параметры шахматного поля), показанный на рис. 8.13. Здесь можно, к примеру, изменить цвет клеток. Нажмите кнопку с рисунком шахматной доски, расположенную справа от имени параметра Colorl (Первый цвет), и выберите в появившемся окне диалога Create Render Node (Создать узел визуализации) текстуру Marble (Мрамор). Это приведет к замене белых клеток трехмерной текстурой, имитирующей мрамор.

Рис. 8.13. Раздел Checker Attribute в окне диалога Attribute Editor

ПРИМЕЧАНИЕ
Чтобы после назначения текстуры вернуться к исходному узлу, нажмите кнопку с указывающей вправо стрелкой, расположенную справа от названия материала в верхней части окна диалога Attribute Editor (Редактор атрибутов). Для отмены назначения текстуры характеристике материала щелкните на имени этой характеристики правой кнопкой мыши и выберите в появившемся контекстном меню команду Break Connection (Разорвать связь).

  1. В окне диалога Attribute Editor (Редактор атрибутов) в данный момент показаны параметры текстуры мрамора. Увеличим прожилки на этой текстуре. Перейдите на вкладку placeSdTexture и введите в текстовые поля, расположенные справа от имени параметра Scale (Масштаб), значение 10. Визуализируйте окно проекции Perspective (Перспектива), чтобы посмотреть на полученный результат. Как легко заметить, пол отражает некоторые предметы. Это связано с тем, что значение параметра Reflectivity (Отражательная способность) материала, назначенное полу, равно 0,5.
  2. Теперь назначим материал с текстом «Maya 4 Fundamentals» объекту в форме щита, полученному на основе сетки полигонов. Создайте новый материал, используя раскраску Blinn (По Блинну), и откройте для него окно диалога Attribute Editor (Редактор атрибутов). Присвойте материалу имя m4fshUd. Нажмите кнопку с рисунком шахматной доски, расположенную справа от имени параметра Color (Цвет), и в окне диалога Create Render Node (Создать узел визуализации) щелкните на кнопке с надписью File (Файл) в разделе 2D Textures (Двумерные текстуры). Справа от текстового поля Image Name (Имя изображения) находится кнопка со значком папки, щелчок на которой приводит к появлению окна диалога, предназначенного для выбора файла с рисунком. Перетащите средней кнопкой мыши материал m4fshild из верхнего окна рабочей области на объект, имеющий форму щита. В результате на его поверхности появится искаженная текстура. Объект Shield получен из сетки полигонов методом вращения. Проекционные координаты расположены по кругу в направлении вращения сплайна. Но нам нужно, чтобы надпись располагалась поперек щита, поэтому потребуется создать для него новые проекционные координаты.
  3. Выделите объект Shield и выберите в меню оперативного доступа команду Edit Polygons > Texture > Planar Mapping (Редактирование полигонов > Текстура > Плоские проекционные координаты). На поверхности объекта появятся управляющие векторы проекционных координат.
  4. Теперь можно изменить размер и положение манипулятора карты. В одном из его углов находится красная буква L. Если ее выделить, она приобретет желтый цвет, а в центре появятся три набора управляющих векторов — одно кольцо (для активизации преобразования Rotate (Повернуть)), а также значки преобразований Scale (Масштабировать) и Move (Переместить), как показано на рис. 8.14. С помощью этих управляющих векторов можно расположить текстуру на поверхности объекта требуемым образом. Имейте в виду, что повторный щелчок на букве L приведет к исчезновению управляющих векторов и возвращению в исходный режим, в котором можно менять размер карты текстуры.

Рис. 8.14. Управляющие векторы плоских проекционных координат были слегка отодвинуты от объекта для большей наглядности. Чтобы сделать их видимыми, нужно щелкнуть на красной букве L, расположенной в углу манипулятора

  1. Визуализируйте сцену, чтобы посмотреть на полученный результат. Он показан на рис. 8.15.

Рис. 8.15. Результат визуализации сцены после редактирования положения карты текстуры на поверхности объекта Shield. Обратите внимание, что в режиме тонированной раскраски стеклянное кольцо стало невидимым

СОВЕТ
Если нужно вернуть управляющие векторы, отвечающие за положение текстуры, выделите объект, откройте окно каналов, нажав комбинацию клавиш Shift+C, и щелкните на строчке polyPlanarProj. Если в результате управляющие векторы не появились, выберите в меню оперативного доступа команду Display > UI Elements > Tool Box (Отображение > Элементы интерфейса > Панель инструментов), нажмите шестую сверху кнопку Show Manipulator (Отображение манипулятора) и повторите щелчок на названии polyPlanarProj.

Назад Начало Вперед