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

         

Маска черной дыры

Как создать анимацию планеты с облаками и спутниковой орбитой на трех отдельных слоях для отправки проекта в отдел компоузитинга?

Тема:

Rendering

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

Extrude Surface (Экструдировать Поверхность), Reverse Utility (Утилита Обращения), Black Hole Mask (Маска Черной Дыры).

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


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

Самый веский аргумент за рендеринг по слоям - это мощь компоузитинга.

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

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

Создайте NURBS-сферу и новый материал. Используйте для этого материала процедурную текстуру, например Crater (Кратер). Либо с помощью инструмента 3D Paint Tool (инструмент трехмерного рисования) нанесите континенты и океаны на сферу вручную. Создайте маленькую NURBS-окружность. Щелкните правой кнопкой мышки по сфере и, используя контекстное меню, отобразите ее изопараметрические кривые. Не снимая выделения с маленькой окружности, нажмите клавишу SHIFT и выделите также изопарму вдоль экватора. Откройте окно настроек. Для этого нажмите F3, выберите Surfaces / Extrude option box (Поверхности / Экструдировать Окно настроек). Установите Result Position (Результирующее Положение) на At Path (Вдоль Пути), a Pivot (Опорная Точка) на Component (Компонента) (см. рис. 25.1). Эти настройки гарантируют, что новая поверхность будет построена там, где находится изопарма, и никак иначе. Нажмите Extrude (Экструдировать), для того чтобы экструдировать маленькую окружность вдоль экватора. Смасштабируйте новую поверхность - орбиту воображаемого спутника - немного наружу, чтобы она не проникала в сферу (см. рис. 25.2). Если вы хотите, чтобы она выглядела тоньше, уменьшите размер маленькой окружности, которая определяет размер орбиты в поперечном сечении.

Рис. 25.1. С такими настройками инструмента Extrude Tool (Экструдирование) маленькая красная окружность из центра экструдируется вдоль желтого экватора, образуя кольцо

Рис. 25.2. NURBS-сфера, раскрашенная вручную меньше чем за минуту, напоминает планету Земля, а тор служит орбитой воображаемого спутника

Сдублируйте сферу и немного смасштабируйте новую сферу наружу, чтобы она уместилась между планетой и орбитой спутника. Наложите на новую сферу новый материал Lambert с фрактальной текстурой - это будет слой облаков. Отрендерите сцену.

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

    В окне Hypershader откройте иерархию материала облаков. С помощью средней кнопки мыши перетащите фрактальную текстуру на материал Lambert. Во всплывающем меню выберите Transparency (Прозрачность) в качестве текстурируемого канала.

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

Рис. 25.3. Сквозь слой облаков видны части планеты. Но почему же облака черные?

Разорвите связь информации о прозрачности между фрактальной текстурой и материалом Lambert. Для этого вам нужно выделить ее и удалить. Не выходя из окна Hypershader, откройте секцию Create Utility (Создать Утилиту) и с помощью правой кнопки мышки перетащите Reverse Utility (Утилита обращения) на рабочую область. Соедините атрибут фрактала outColor (рис. 25.4) со входным каналом (input) Reverse Utility (Утилита обращения) (рис. 25.5).

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

Рис. 25.5. ...соединяется со входным каналом Reverse Utility (Утилита обращения). Reverse Utility (Утилита обращения) инвертирует значения цвета...

    Соедините выход (output) утилиты со входом канала прозрачности материала Lambert (рис. 25.6).

Рис. 25.6. ...и передает их каналу прозрачности материала облаков

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

Рис. 25.7. Инвертированный канал прозрачности создает требуемый эффект облаков

Рис. 25.8. Канал маски прозрачности слоя облаков. Края облаков выглядят красивыми и пушистыми

Заметьте, что, хотя мы говорили только о черном и белом цветах, Мауа фактически использует информацию об оттенках серого для рендеринга прозрачности. Поэтому Reverse Utility (Утилита обращения) делает темно-серый светлосерым и оставляет средние тона без изменений. Пушистый вид облаков обусловлен областями разной степени прозрачности, то есть различными уровнями яркости серого цвета.

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

Вы оцените этот подход, когда одним лишь щелчком мыши в секции видимости Layer Editor (Редактора Слоев) вы на время спрячете слой облаков, оставив в окне моделирования лишь слой с планетой.

Layer Editor (Редактор Слоев) не представляет собой ничего сложного и находится прямо под окном Outliner (Схема сцены) [Здесь ошибка в исходном тексте. Layer Editor находится прямо под Channel Box (Окном Каналов). — Примеч. ред.] (рис. 25.9).

Рис. 25.9. Для рендеринга каждый уровень следует объединить в отдельный слой с помощью Layer Editor (Редактор Слоев). Здесь объекты в пределах одного слоя можно легко подключать и отключать, нажимая на значок V (видимость)

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

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

Рис. 25.10. Кольцо орбиты спутника при скрытой планете и облаках

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

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

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

Основная процедура рендеринга по слоям для компоузитинга должна быть примерно такой. Начните с самого дальнего слоя и отрендерите его первым без других слоев. Затем сделайте видимым второй слой, а первый сделайте черным, чтобы он не выдавал никакой информации о цвете, но сообщал бы альфа-каналу: я здесь! Эта опция - существенная для компоузитинга - называется Black Hole Mask (Маска Черной Дыры), и это свойство материала объекта, а не самого объекта. Отрендерите второй проход, в котором слой 2 видим, а к слою 1 применена Black Hole Mask (Маска Черной Дыры). При рендеринге третьего слоя примените Black Hole Mask (Маска Черной Дыры) к слоям 1 и 2 и оставьте видимым только слой 3. И так далее.

В нашем случае лучше всего поступить так (это сохранит межличностные отношения в коллективе):

Скройте орбиту спутника и облака. Отрендерите сферу планеты как она есть и оставьте это изображение для вашего коллеги-компоузитора (рис. 25.13).

Рис. 25.13. Первый корректно отрендеренный результат: слой планеты отрендерен; оба других слоя невидимы

    Откройте Attribute Editor (Редактор Атрибутов) для материала планеты (не ее геометрии) и в секции Matte Opacity (Непрозрачность вещества) установите параметр Mode (Режим} на Black Hole (Черная Дыра) (рис. 25.14 и 25.15).

Рис. 25.14. Маска планеты

Рис. 25.15. Перед рендерингом второго шага маску материала планеты следует установить на Black Hole (Черная Дыра.)

    Скройте слой облаков. Отрендерите вторым проходом слой облаков (рис. 25.16). Рендеринг принимает во внимание альфа-информацию о местонахождении планеты, но не рендерит цвет планеты (рис. 25.17). Сохраните это изображение для своего коллеги-компоузитора. Установите маску материала облаков на Black Hole (Черная Дыра). Сделайте слой спутника видимым.

Рис. 25.16. Отрендеренные облака и слой планеты. Эффект Black Hole-Mask (Маска Черной Дыры) материала планеты (слева)

Рис. 25.17. ... можно видеть в альфа-канале слоя облаков. Это детальный вид, в котором край слоя планеты совершенно белый. Маска скрывает все облака за планетой (справа)

    Третьим проходом отрендерите орбиту спутника (рис. 25.18). Сохраните это изображение для вашего коллеги-компоузитора (рис. 25.19).

Рис. 25.18. Третий корректно отрендеренный проход. Кольцо перекрывает облака и сферу планеты только спереди и исчезает сзади. Black Hole Mask (Маска Черной Дыры) слоев планеты и облаков участвует в рендеринге

Рис. 25.19. Альфа-канал орбиты спутника. Маска кольца учитывает присутствие облаков и планеты

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

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

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