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

         

Блуждающее свечение

Как создать анимацию движения свечения по кольцу? [Вдохновленный Паоло Берто. ]

Тема:

Рендеринг.

Используемые техники и инструменты:

Hypershade, IPR (Интерактивный фотореалистичный рендер), Projection (Проекция).



Эффект свечения очень популярен среди заказчиков трехмерной анимации. Обычно они хотят, чтобы их обожаемый объект - зубная паста, машина, звезды - светился для привлечения к ним внимания. Аниматор трехмерной графики в этом случае просто открывает Attribute Editor (Редактор Атрибутов) для материала зубной пасты и увеличивает значение атрибута Glow (Свечение).

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

Создайте кольцо.

Для этого можно использовать NURBS-тор,.скорректировав его радиус. Либо вы можете создать кольцо с помощью операции Revolve, вращая NURBS-окружность, которая будет служить поперечным сечением.

    Наложите на кольцо шейдер Blinn.

Шейдер Blinn - это типичный материал, отправная точка для получения эффекта металлической поверхности с ее яркими бликами. Самые важные атрибуты блика называются Eccentricity (Эксцентриситет) и Specular Roll Off (Уровень Зеркального Отражения). Их можно найти в секции Specular Shading (Отражающие свойства шейдера). Вместо настройки нового материала вы можете использовать уже готовый металлический шейдер из Интернета или из базы данных шейдеров Мауа. Нажмите на вкладку Shader Library (Библиотека Шейдеров) в окне Hypershader.

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

Давайте сначала изменим компоновку окон, в которых вы работаете. Над (некоторые говорят «на севере от») меню Hotbox (Окно оперативного доступа к элементам интерфейса) расположено всплывающее зональное меню с несколькими заготовленными вариантами компоновки окон (рис. 27.1).

Рис. 27.1. Кольцо и смена компоновки окон во всплывающем зональном меню; вверху меню Hotbox (Окно оперативного доступа к элементам интерфейса)

Набор окон Hypershade / Render / Persp (Hypershade / Рендеринг / Перспектива) лучше всего подходит для нашей цели. Итак, мы имеем перспективное окно внизу справа (для выбора хорошей точки съемки); в окне внизу слева вы можете непрерывно выполнять процесс рендеринга IPR (Интерактивный фотореалистичный рендер). В широком верхнем окне под рукой всегда будет окно Hypershader для объединения желаемых элементов (см. рис. 27.2).

    В окне Attribute Editor (Редактор Атрибутов) шейдера Blinn откройте секцию Special Effects (Специальные Эффекты) и щелкните мышкой по значку рядом с полем Glow Intensity (Интенсивность Свечения). Откроется окно Create Render Node (Создать Узел Рендеринга).

Рис. 27.2. Новый вариант компоновки окон. Вверху расположено окно Hypershader - панель инструментов для создания нового материала; внизу справа - окно моделирования; внизу слева - непрерывно обновляемое IPR (Интерактивный фотореалистичный рендер) изображение

    В окне Create Render Node (Создать Узел Рендеринга) отметьте As projection (Проекция) и текстуру Checker (см. рис. 27.3).

Окно IPR (Интерактивный фотореалистичный рендеринг) теперь показывает целиком светящееся кольцо (см. рис. 27.4).

    В окне Hypershader дважды щелкните мышкой по текстуре Checker. В открывшемся окне Attribute Editor (Редактор Атрибутов) затемните значение белого цвета текстуры: Colorl (см. рис. 27.5).

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

Рис. 27.3. Мы позволим текстуре Checker решать, где расположить свечение, сделав три простых шага от окна Attribute Editor (Редактор Атрибутов) материала до окна Create Render Node (Создать Узел Рендеринга)

Рис. 27.4. Окно IPR (Интерактивный фотореалистичный рендер) показывает свечение, полностью покрывающее кольцо. Нерегулярность свечения обусловлена наложением текстуры Checker

Рис. 27.5. Затемняем белый цвет текстуры Checker. Свечение рендерится только там, где отсутствует черный цвет

До настоящего времени проекция работала по всему объекту. Она покрывала все кольцо целиком. Для того чтобы заставить проекцию работать локально, нам следует глубоко погрузиться в логику функциональных узлов. В окне Hypershader откройте вкладку Work Area (Рабочая Область). Щелкните правой кнопкой мыши либо используйте пиктограмму вверху окна Hypershader для отображения иерархии материала Blinn (его входные и выходные связи). Наведя курсор на линии связи между функциональными узлами, вы увидите, к примеру, что projection1, функциональный узел проекции, отправляет значения полутонов (информацию об альфа-канале) параметру Glow Intensity (Интенсивность Свечения) шейдера Blinn (рис. 27.6).

Рис. 27.6. Иерархическая структура материала кояьца. Проекция сквозь распределение полутонов (альфа) функционального узла checkerl определяет интенсивность свечения [Узел (node) - это элемент функциональной архитектуры Мауа - графа зависимостей (dependency graph), - в котором происходит обработка и преобразование данных (чисел, массивов, матриц и так далее). Автор использует термин «logic node» для обозначения элементов иерархической структуры материала в окне Hypershade (shader network). Это частный случай графы зависимостей, поэтому (чтобы не путать с узлами, осуществляющими логические операции над данными) мы будем использовать наиболее близкий по смыслу термин «функциональный узел». - Примеч.ред. ].

В окне Attribute Editor (Редактор Атрибутов) логического узла projection] измените следующие три установки:

Смените тип проекции с Normal (Обычная) на Cylinder (Цилиндр) [Видимо, опечатка в оригинале. Среди типов проекции нет Normal, при создании по умолчанию выбирается тип проекции Planar (Плоскопараллельная), поэтому смените тип проекции с Planar (Плоскопараллельная) на Cilindrical (Цилиндрическая). - Примеч. ред. ]. В секции Color Balance (Баланс Цвета) установите Default Color (Цвет по Умолчанию) на Black (Черный). В секции Effects (Эффекты) отключите параметр Wrap (Обернуть) (рис. 27.7).

Рис. 27.7. Три изменения в окне Attribute Editor (Редактор Атрибутов) проекции локализуют эффект свечения

Параметр Wrap (Обернуть) заставляет текстуру охватить весь объект (или периодически повторяться по всему объекту)- Когда он дезактивирован, текстура Checker (или любая другая) работает только там, где нам это нужно, - и нигде больше [При выключенном атрибуте wrap текстура проецируется только внутрь текстурной решетки (в нашем случае это зеленый цилиндр), при включенном атрибуте wrap - и внутрь, и наружу. - Примеч. ред. ]. В тех областях объекта, где материал не находит никакой информации о текстуре, он использует Default Color (Цвет по Умолчанию). Мы хотим, чтобы наш материал был черным везде, где нет свечения, и светло-серым или даже белым там, где оно должно быть.

Если вы заглянете в перспективное окно, то увидите зеленый, наполовину скрытый каркас цилиндра в центре сцены (рис. 27.8). Этот объект называется placeSDtexturel, и он не рендерится. Его задача заключается в том, чтобы определять, где должно появиться свечение, а где - нет. Поскольку в настоящее время он расположен в середине кольца, окно IPR (Интерактивный фотореалистичный рендеринг) не показывает нам никакого свечения.

Рис. 27.8. При отключенном параметре Wrap (Обернуть) кольцо светится только там, где его касается зеленый объект placeSdTexture

Перемещайте, вращайте и масштабируйте объект расположения текстуры placeSDtexturel так, чтобы он накрыл небольшую часть кольца (рис. 27.9).

Рис. 27.9. Окно IPR (Интерактивный фотореалистичный рендеринг) показывает локальное действие оттекстурированного Checker свечения. Справа: манипулятор управления узлом размещения

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

    Переместите опорную точку (клавиша Insert) объекта place3dTexturel в начало координат сцены (см. рис. 27.10). Используйте клавишу X для привязки к сетке.

Рис. 27.10. Перемещаем опорную точку узла расположения текстуры в центр кольца

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

Рис. 27.11. Простое математическое выражение определяет равномерное непрерывное вращение свечения вокруг кольца

Если вас не устраивает текстура Checker, а свечение кажется чересчур слабым, задайте обоим цветам текстуры Checker одинаковое - и может более яркое - значение серого тона. Если вы хотите сменить цвет (или другие свойства) самого свечения, откройте Hypershader ц дважды щелкните по узлу ShaderGlowl. Этот узел - а не шахматная текстура - определяет внешний вид свечения. Если вы хотите вернуться к компоновке окон Four View, используйте новые пиктограммы Мауа 4 в нижней левой панели экрана.

Рис. 27.12. Возвращаемся к знакомой компоновке окон Four View

Рис. 27.13. Анимация свечения вдоль более сложной поверхности. Здесь объект расположения текстуры присоединен к пути вдоль поверхности, поэтому свечение в точности следует ее форме

А теперь кое-что новенькое. Приходилось ли вам использовать среднюю кнопку мыши для перемещения по временной шкале в анимации?