Выполняю, подождите...
 
 
Библиотека

Maya: Создание картины «A Glimpse Of The Past» (Отблеск прошлого)

Привет! Это мой первый урок, в котором я полностью описываю весь процесс создания трехмерного изображения вымышленного мной. Как вы можете видеть, картина выглядит весьма интересно (по крайней мере, мне так кажется), однако работа над ней не потребовала значительных усилий. Например, я затратил на нее не более 12 часов. Геометрия объектов очень проста, текстуры я взял с дисков 3DTotal CD. При освещении сцены я применял технику глобального освещения (Global Illumination), более подробно она описана в моих уроках на эту тему, но и здесь я вкратце расскажу о ней. В качестве математического обеспечения я использовал Maya 5.0, а для визуализации Mental Ray...

1. Введение

Работа над проектом "A Glimpse Of The Past"

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

Как вы можете видеть, картина выглядит весьма интересно (по крайней мере, мне так кажется), однако работа над ней не потребовала значительных усилий. Например, я затратил на нее не более 12 часов. Геометрия объектов очень проста, текстуры я взял с дисков 3DTotal CD. При освещении сцены я применял технику глобального освещения (Global Illumination), более подробно она описана в моих уроках на эту тему, но и здесь я вкратце расскажу о ней. В качестве математического обеспечения я использовал Maya 5.0, а для визуализации Mental Ray, так как стандартный визуализатор не поддерживает Global Illumination. Задний фон я создал с помощью программы генерации ландшафтов Terragen. Текстуры корректировались с помощью Photoshop, и с его же помощью делалась постобработка результата визуализации.

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

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

2. Моделирование

Как вы можете видеть на картинке, модель объекта весьма проста. Не беспокойтесь о деревьях, они легко создаются с помощью Paint Effect. Для строений я использовал полигональное моделирование. Почему? Потому что полигоны просты в работе, грани легко разрезаются и выдавливаются. При моделировании успешно применяются Булевы операции, а кроме этого на полигональные модели легко накладываются текстуры.

Сетка сцены 'A Glimpse Of The Past'
Сетка моделей в сцене.

Сначала я создал три куба, по одному на каждую часть здания (рис. 1, см. ниже) и придал примитивам желаемый размер и пропорции. Затем я выбрал нижнюю грань каждого куба и выдавил её дважды, первый раз масштабированием внутрь, а второй раз смещением вверх. В результате образовалась перевернутая коробка с ненулевой толщиной стен (рис. 2). Следующим шагом было разрезание кубов, играющих роль зданий, пополам вертикально, а башни горизонтально четыре раза (рис. 3). После разрезания я переместил вершины, чтобы придать правильную форму всем частям здания (рис. 4). В общем, во время описанных действий я использовал следующие средства: Create Polygon Cube, Cut Faces Tool и Extrude Face, плюс перемещение вершин после экструзии и разрезания.

Создание полигональных кубов и подгонка их под пропорции здания.

Рис. 1. Создание полигональных кубов и подгонка их под пропорции здания.

Используемые средства:
Create » Polygon Primitives » Cube + Move и Scale.
Экструзия нижней грани для создания толщины стен.

Рис. 2. Экструзия нижней грани для создания толщины стен для трех созданных кубов.

Используемые средства:
Edit Polygons » Extrude Face.

Разрезание граней полигональных моделей.

Рис. 3. Разрезание граней полигональных моделей для создания крыш и средней части башни.

Используемые средства:
Edit Polygons » Cut Faces Too.
Перемещение вершин, созданных в результате разрезания.

Рис. 4. Перемещение вершин, созданных в результате разрезания, для оформления крыш и средней части башни.

Используемые средства:
Move.

Теперь займемся крышей. Она делается совсем просто... Я создал полигональный куб (рис. 5.), отмасштабировал его и поместил туда, где должны находиться края крыши, после этого разрезал то, что получилось, посередине. Далее я переместил полученные посередине вершины так, чтобы получить скаты постоянной толщины.

Создание куба, его масштабирование и размещение.

Рис. 5. Создание куба, его масштабирование и размещение.

Используемые средства:
Move и Scale
Разрезание грани и редактирование положения вершин.

Рис. 6. Разрезание грани и редактирование положения вершин для получения лучшей формы.

Используемые средства:
Edit Polygons » Cut Faces Tool и Move.

Окна также делаются очень просто. Для этого я прибегнул к Булевской операции — вычитанию. Для двери я создал простой примитив Cube, который расположил в соответствующем месте (рис. 8). Для окон с аркой я создал полигональные цилиндры. После создания я увеличил число секций цилиндра, чтобы получить более гладкую форму окна при создании окна. Следующим шагом было размещение вершин для придания окну нужной формы (рис. 7). Модели окон располагаются в нужных местах с тем, чтобы пересекать стенку (рис. 8). Разумеется, потребуется дублировать объекты и изменять их размеры, так как для основного здания потребуется три окна с аркой. Последним шагом будет применение Булева вычитания. Я делал это для каждого окна и двери, результат можно видеть на рис. 9.

Создание цилиндра для окон.

Рис. 7. Увеличение числа секций. Масштабирование и перемещение вершин по оси Y.

Используемые средства:
Create » Polygon Primitives » Cylinder Move и Scale.

Объекты для вырезки окон.

Рис. 8. Объекты для вырезки окон созданы и размещены в полной готовности к применению Булевых операций.

Используемые средства:
Move, Scale и редактирование точек.
рименение Булевых операций для получения оконных и дверных проемов.

Рис. 9. Применение Булевых операций для получения оконных и дверных проемов. Сначала выбирается здание, потом объект-окно, после чего применяется Булева операция.

Используемые средства:
Polygons » Booleans » Difference.

Ограда также делается из полигональных кубов. Для начала я создал один куб и отмасштабировал его. Затем я разрезал его как на рис. 10. и переместил вершины, чтобы придать доске более натуральную форму (рис. 10. объект справа). Теперь нужны стойки, к которым будут прибиты доски. Для этого я нарисовал несколько непрямых линий (рис. 11. слева) и один NURBS круг, который и выдавил по этим линиям (рис.11. справа). После этого я перешел к проекции со стороны и начал закреплять доски на столбах, дублируя их и поворачивая, чтобы придать им некоторый беспорядок. Перед дублированием я разрезал их на много частей в горизонтальном и вертикальном направлениях, а после дублирования слегка смещал вершины, чтобы придать им естественный (нелинейный) вид. Теперь забор готов.

оздание кубов, их разрезание и перемещение вершин.

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

Используемые средства:
Create » Polygon Primitives » Cube
Edit Polygons » Cut Faces Tool.

Создание кривых для экструзии окружности.

Рис. 11. Создание кривых для экструзии окружности. Эти объекты создаются при помощи NURBS.

Используемые средства:
Create » CP Curve Tool
Create » Nurbs Primitives » Circle
Surfaces » Extrude.
Создание нескольких копий досок.

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

Используемые средства:
Edit Polygons » Cut Faces Tool.

Первый холм на заднем плане (с могилой) я сделал с помощью карты Displacement, наложенной на полигональный объект. Но перед тем, как применить смещение к полигону, я посмотрел, как будет выглядеть результат с помощью объекта Height Field, создав его в Hypershade. На нем я и отработал текстуру, которую потом применил для Displacement (см. рис 13). При наложении карты Displacement на Height Field, результат виден сразу, так что вы можете настраивать параметры Displacement-а, наблюдая за результатом в видовом окне. После того, как я получил тот понравившийся мне результат, я создал материал lambert и присоединил текстуру объекта heighfield к объекту lambertshadergroup. Затем я создал полигональную плоскость, подогнал ее размеры по осям X и Y к объекту heighfield и назначил ей получившийся шейдер. Кроме того, я задал для нее количество разбиений 100 на 100. В этой ситуации лучше отключить флажок Feature Displacement в разделе Displacement Map редактора атрибутов полигональной плоскости. Это существенно ускорит применение карты Displacement, так как сдвигаться будут только вершины реально существующих полигонов.

Для земной поверхности, расположенной перед камерой, на которой собственно и распложены здания, я использовал NURBS поверхность, которую отмасштабировал должным образом. Для придания ей некоторой неровности можно использовать Sculpt Surface Tool (рис. 14). Уровень тесселяции данной плоскости желательно выбрать так, чтобы поверхность земли выглядела достаточно гладкой, используя для этого редактор атрибутов.

объект HeighField, текстуры Ramp и Noise

Рис. 13. После создания объекта Height Field в окне Hypershade, я создал текстуру, которая будет использоваться для Displacement полигональной плоскости, имитирующей холм на заднем плане. Как видите, для создания склонов холма я использовал круговой градиент (Circular Ramp) и текстуру помех...

Используемые средства:
Окно Hypershade » объект HeighField, текстуры Ramp и Noise

NURBS плоскость

Рис. 14. Для земной поверхности перед камерой я создал NURBS плоскость и использовал Sculpt Tool, как показано на картинке.

Использованные средства:
Create » Nurbs Primitives » Plane
Edit Nurbs » Sculpt Surfaces Tool.

Деревья очень просто создаются в Maya, используя средство Paint Effects. Однако если вы используете для визуализации Mental Ray, то необходимо преобразовать полученные деревья в сеточные объекты. Например, для дерева рядом с главным зданием после настройки кисти и подгонки под требуемые размеры, я использовал средство Convert PE to Polygons. С первой попытки у меня получилось слишком много полигонов. Чтобы уменьшить их число надо перейти в редактор атрибутов и понизить значение в разделах Tube и Sub Segments в разделе Mesh. Если Вам нужно дерево крупным планом, возможно, придется иметь дело со сложной сеткой или оставить дерево в форме Paint Effect.

Рисование дерева: Paint Effect.

Рис. 15. Рисование дерева с использованием стандартных настроек Paint Effect.

Используемые средства:
Paint Effects » Get Brush
Настройка атрибутов полученного дерева.
дерево

Рис. 16. После того, как дерево готово, я конвертировал его в полигональную модель.

Используемые средства:
Modify » Convert » PE To Polygons.

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

3. Текстурирование

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

Первый метод дает менее реалистичный результат, но требует больше ресурсов. Процедурные текстуры рассчитываются, используя математические алгоритмы.. Их в свою очередь, можно поделить на две категории — 2D и 3D. Чтобы наложить 2D текстуру на полигональный объект, необходимо задать UV координаты, а для трехмерной текстуры они не нужны. С другой стороны при изменении положения объекта в пространстве трехмерная текстура начнет двигаться по модели, если не принять специальных мер.

Второй метод текстурирования использует файл с изображением, которое можно получить с реального объекта. Результат при этом выглядит боле реалистичным, но требует больше ресурсов. Разумеется, в этом случае нужна коллекция текстур или цифровой фотоаппарат, чтобы сделать их самому. Если вы собираетесь купить коллекцию текстур, то можно сделать это через Интернет. Например, для работы над этим проектом я использовал 3D Total Textures CD. Эти диски содержат богатую коллекцию бесшовных цветных текстур и соответствующих им карт рельефа.

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

Как вы можете видеть, (рис. 17.) начальное положение текстурных координат, получившееся после моделирования не выдерживает никакой критики. Maya предоставляет инструмент для интерактивного определения UV координат каждой вершины, им-то я и воспользовался. Поскольку я использовал только одно направление обзора, то текстурировал только две стены, которые видны с этого направления. Крыша при этом текстурируется отдельно. Итак, чтобы создать UV координаты нужных мне поверхностей, я выделил их (выделением граней) и применил к ней планарное проектирование. Две картинки внизу (рис. 18 и 19.) показывают, что у меня получилось. Я выбрал грани стен и перешел в окно настроек средства Planar Mapping. Там я включил опцию Fit to Bounding Box и выбрал направление проекции перпендикулярно поверхности стены. Выделяя грани стен, не забудьте также о гранях двери и окон.

Расположение UV координат.

Рис. 17. Расположение UV координат после завершения моделирования.

Используемые средства:
Просто вызов окна редактора UV.

создадим плоскую проекцию (Planar Mapping)

Рис. 18. Выделим грани, образующие боковую стенку и создадим плоскую проекцию (Planar Mapping).

Используемые средства:
Edit Polygons » Texture » Planar Mapping.
Planar Mapping

Рис. 19. То же самое (Planar Mapping) для передней стены.

Используемые средства:
Edit Polygons » Texture » Planar Mapping.

Теперь следующий шаг. Расположение UV координат еще не завершено. Выше я обеспечил сохранение пропорций модели, чтобы нарисованная текстура при наложении не искажалась. Но, как видите, текстуры на первой картинке внизу перекрываются (наложены одна поверх другой). Это нужно исправить. Об остальных гранях беспокоится не стоит, так как на итоговой картинке их не будет видно. Расположить их удачнее можно и вручную, но я прибег к помощи средства Layout. Я открыл опции этого средства и установил атрибуты Along U и Uniform Scale. После этого надо нажать кнопку Apply, грани оказались расположенными как на картинке внизу. Затем я перенес UV координаты для передней и боковой стены из правой верхней области вниз и отмасштабировал их так, чтобы они занимали область от 0 до 1 (рис 22.). Наконец, я выбрал ненужные участки UV координат и вынес их из сетки, а нужные участки разместил в правой верхней четверти.



Рис. 20. UV координаты обеих стен после проекции. Они расположены друг на друге.

Используемые средства:
Просо откройте окно редактора UV координат.



Рис. 21. UV координаты после использования средства Layout. Используются только два элемента слева.

Используемые средства:
В редакторе UV координат Polygons » Layout UVs.


Рис. 22. UV координаты двух нужных частей перемещены вниз, отмасштабированы, а потом перенесены вверх.

Средства, используемые в редакторе UV координат:
Сначала я выбрал одну точку UV у передней и боковой стены:
Select » Select Shell, а затем средства Move и Scale.

На этом этапе я применил плоское проецирование текстур к стенам здания. В применения той же проекции к внутренним граням окон и дверей, текстура на ней будет сильно растянута. Чтобы получить более приемлемый результат, я переместил вершины, соответствующие внутренней кромке проемов, как показано на рисунке. Сначала я выделил эти вершины в видовом окне (для этого я использовал каркасное отображение — рис. 23.) и конвертировал выделение в UV координаты (рис. 24). Затем в окне редактирования UV координат, я переместил выделенные вершины с помощью средства масштабирования как на рис. 25. Разумеется, данный способ не идеален, так как некоторое искажение текстур все равно остается, но им можно пренебречь в силу отдаленности объекта от камеры.



Рис. 23. В видовом окне я выбрал вершины, соответствующие внутренним ребрам окна.

Используемые средства:
Только выбор вершин.


Рис. 24. В редакторе UV координат я конвертировал выделение в UV координаты.

Средства, используемые в редакторе UV координат:
Select » Convert Selection to UV.


Рис. 25. После этого я отмасштабировал выбранные UV координаты, как показано на картинке.

Используемые средства:
Инструмент масштабирования.

Наконец, после всех определений UV координат, необходимо получить их изображение, на основе которого текстура может создаваться или корректироваться в редакторе растровой графики (я использовал Photoshop). Я открыл опции средства UV Snapshot в редакторе UV координат, и установил разрешение (1200x1200), а формат TGA, после чего нажал кнопку OK. В результате я получил снимок UV координат на жестком диске. На следующем шаге будем работать с Photoshop.



Рис. 26. Изображение UV координат сохранено на диск для последующей обработки в Photoshop.

Используемые средства:
В редакторе UV координат Polygons » UV Snapshoot.

В Photoshop я хотел сделать карту, которая нужна для смешивания двух текстур. Картинка должна быть черно-белой, на белых участках будет видна первая текстура, на черных – вторая. На серых участках текстуры будут смешиваться, но в данной ситуации требуется только два цвета. Можно, конечно самому нарисовать нужную текстуру, но это слишком трудный путь. В рассматриваемом случае отлично подойдут такие средства Photoshop, как генератор облаков и Threshold. Сначала я создал новый слой. Затем установил активные цвета в черный и белый и в меню Filter выбрал пункт Render, а затем Clouds. После этого получилось нечто похожее на то, что приведено на рис. 27. Далее в меню Image я выбрал пункт Adjustments, а затем Threshold. Выбрав подходящие настройки, я получил изображение, приведенное на рис. 28. Затем я сделал слой с текстурой слегка прозрачным, чтобы видеть расположение UV координат и с помощью белой кисти убрал ненужные пятна. Результат приведен на рис. 29.

Результат генерации облаков в Photoshop.

Рис. 27. Результат генерации облаков в Photoshop.

Используемые средства:
Filter » Render » Clouds.
Результат изменения порогового значения (Threshold).

Рис. 28. Результат изменения порогового значения (Threshold).

Используемые средства:
Image » Adjustments » Threshold.
Окончательный вид текстуры-маски.

Рис. 29. Окончательный вид текстуры-маски, после удаления ненужных пятен.

Используемые средства:
Brush Tool.

Вернемся в Maya. Сначала я создал простой шейдер типа Lambert, выбрал одну из текстур с диска 3Dtotal и наложил ее на канал цвета созданного шейдера. После этого я открыл окно редактора атрибутов для узла place2Dtexture и установил повтор по U и V, равными 2. Как видите, сеть шейдинга очень проста, а результат визуализации показан на рис. 31.

Шейдер Lambert

Рис. 30. Шейдер Lambert c графическим файлом, наложенным на канал цвета. Этот материал будет использоваться в качестве верхней текстуры.

Используемые средства:
Создание шейдера Lambert + наложение на цветовой канал текстуры File.


Рис. 31. Результат визуализации с получившимся материалом.

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



Рис. 32. Поскольку стандартный шейдер Lambert, использованный ранее, выглядит слишком плоско, я добавил карту рельефа, чтобы добавить реалистичности.

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

Результат визуализации с наложенной картой рельефа.

Рис. 33. Результат визуализации с наложенной картой рельефа.

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

Изображение, созданное в Photoshop.

Рис. 34. Изображение, созданное в Photoshop, наложено на канал прозрачности шейдера Lambert.

Использованные средства:
Наложение карты на канал прозрачности.

Результат визуализации.

Рис. 35. Результат визуализации: там, где маска имеет черный цвет, текстура прозрачна, там где цвет маски белый, текстура видна.

Далее я создал материал, представляющий собой нижний слой текстуры. Для простоты, сначала я создал шейдер Lambert и назначил его всей модели здания. Созданный ранее шейдер был отсоединен от модели, но остался в сцене. Как вы можете видеть на рис. 36, новый шейдер устроен так же, как предыдущий, но без прозрачности. Для кирпичей я изменил число повторений. На рис. 37 приведен результат рендеринга со вновь созданным шейдером.

Простой шейдер для нижнего слоя текстуры.

Рис. 36. Простой шейдер создан для нижнего слоя текстуры.

Используемые средства:
Создание материала Lambert, наложение изображения на канал цвета и микрорельефа.

Результат визуализации только нижнего слоя текстуры.

Рис. 37. Результат визуализации только нижнего слоя текстуры.

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



Рис. 38. Чтобы смешать две текстуры, я создал LayeredShader, назначил его зданию, а затем перенес на него подготовленные ранее материалы.

Используемые средства:
Создание LayeredShader, назначение его модели, перенос материалов в качестве слоев.
Результат визуализации с обоими слоями.

Рис. 39. Результат визуализации с обоими слоями.

Итак большая часть основного здания готова. Та же техника применялась при текстурировании остальных частей здания. Что касается крыши, то я использовал простую планарную карту, а затем использовал шейдер Lambert с картой микрорельефа. Для текстурирования крыши колокольни использовалась цилиндрическая карта и та же текстура, что и для крыши основного здания. Забор текстурировался так же, но без смешения карт, причем лучше слегка поварьировать UV координаты, чтобы доски не смотрелись одинаково.

И еще одна важная вещь! Если вы хотите получить реалистично выглядящий объект, то желательно накладывать текстуры и на другие каналы материала. Если объект невелик и не находится в центре композиции, то простой текстуры помехи наложенной на канал рассеянного света (Diffuse) вполне достаточно. Для центрального объекта композиции следует, как минимум, нужно использовать качественную файловую текстуру для канала Diffuse, что поможет сделать поверхность более детализированной. Эффект от такого приема показан на картинках внизу. Слева показана сеть шейдинга с файловой текстурой на канале Diffuse. Посередине – сама текстура, которая была наложена на этот канал. Я создал ее, смешав несколько текстур с дисков 3DTotal. Не забудьте, что в данном случае требуется черно-белое изображение. Разница между результатами рендеринга с текстурой в канале Difuse и без нее показана на рисунке справа. Как видите, реалистичность рисунка возросла. При создании металлических или других блестящих поверхностей, возможно, потребуется текстурировать и другие каналы.

Пример файловой текстуры.

Рис. 40. Пример файловой текстуры, наложенной на канал Diffuse шейдера Lambert.
Файловая текстура.

Рис. 41. Файловая текстура, наложенная на канал Diffuse.



Рис. 42. Сравните результаты рендеринга с текстурой в канале Diffuse и без нее.

4. Освещение

Последний по порядку, но не по значению шаг – освещение сцены. Здесь мне очень помогло средство Final Gather, предоставляемое Mental Ray. Если вы не знаете, как оно работает, ознакомьтесь с моим первым уроком по глобальному освещению. В нем вы увидите, как меняется результат при разных настройках для одного и того же объекта. Притом учтите, что использовался только один световой источник и сфера, используемая как источник отраженного света.

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

Направление светового источника.

Рис. 43. Направление светового источника при взгляде через него.
Атрибуты для светового источника.

Рис. 44. Атрибуты, которые я использовал для светового источника.

Цвет света я выбрал где-то между желтым и оранжевым и использовал квадратичное затухание (Quadratic Decay Rate). После переключения в Quadric Decay Rate, мне пришлось увеличить значение Intensity до 5000. Значение интенсивности зависит от общего масштаба сцены, и в моей ситуации величина 5000 оказалась наилучшим решением. Я так же поиграл значениями Pneumbra Angle и Cone Angle, чтобы получить неоднородное распределение теней при смещении от оси светового источника.

Теперь займемся освещением, исходящим от неба. Разумеется, оно не исходит от неба, изображенного на окончательной картинке. Оно исходит от большой сферы, окружающей сцену (рис. 45), и невидимой для всех, кроме Final Gather. Создать ее относительно несложно. Сделайте сферу и задайте ее величину такой, чтобы она охватывала всю сцену. В редакторе атрибутов, в разделе Render Stats я выключил опции Cast Shadow, Receive Shadow и Primary Visibility. После этого, если свет расположен вне сферы, она не будет затенять другие объекты, и не будет видна на результате рендеринга, но будет учитываться программой расчета глобального освещения. Последнее, что я сделал, это назначил шейдер созданной сфере. В качестве такового я использовал поверхностный шейдер (surface shader). В качестве атрибута Out Color я назначил темно-коричневый цвет (см. рис. 46). В результате сфера будет отражать свет, и освещать объекты сцены весьма натурально.

Сферический объект.

Рис. 45. Сферический объект, который используется в качестве источника непрямого освещения.

Шейдер для отражающей сферы.

Рис. 46. Шейдер, который используется для отражающей сферы.

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

5. Постобработка

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

Постобработку я делал с помощью Photoshop. Для этого были созданы несколько слоев, которые вы можете видеть на картинках внизу. Нижний слой — изображение, созданное с помощью Terragen. Камера в Terragen была установлена примерно так же, как и в Maya. Цвет получившегося изображения отличается от нужного нам, но это не важно, так как будет подправлено с помощью следующего слоя. Второй слой – результат рендеринга в Maya. Область, закрашенная голубым цветом, на самом деле прозрачна, я закрасил ее только чтобы показать ее прозрачность. Если бы я не сделал невидимой окружающую сферу, прозрачности бы не было. Именно для этого я и сделал ее невидимой. Третий слой – помехи. Режим смешивания для этого слоя я установил в Multiply. Этот слой придает рисунку фактуру. Чтобы не переборщить с помехами, я придал этому слою прозрачность. Четвертый слой содержит рамку, название картины и подпись художника. В нем нет ничего особенного. Пятый слой залит общим цветом картины, его задача придать цвет всем нижележащим слоям. Его режим смешения, как вы наверное догадались, установлен в Color. Для первого и второго слоев я сделал небольшую коррекцию кривых, чтобы придать всей картине лучшую контрастность.

Фоновый слой.

Слой 1: Фоновый слой содержит горы и небо, созданные с помощью Terragen (Terrain Generator). Поскольку они находятся сзади, слой должен быть самым нижним.
Результат рендеринга в Maya.

Слой 2: Второй слой — результат рендеринга в Maya. Голубым цветом я показал прозрачные области, через которые будет виден фон (слой 1).
Помехи (режим смешивания Multiply).

Слой 3: Помехи (режим смешивания Multiply). Теперь добавим немного помех к картине. Режим смешивания для этого слоя надо установить в Multiply. Если помехи слишком сильно выделяются, исправьте значение Opacity.
Рамка.

Слой 4: Рамка. Этот слой только создает рамку вокруг изображения.
Цвет (режим смешивания Color).

Слой 5: Цвет (режим смешивания Color). Последний слой придает цвет итоговому изображению. Это слой залит одним цветом, а режим смешивания для него установлен в Color.
A Glimpse Of The Past

Итоговое изображение.
Вот и все. Наверно вы обратили внимание, что оригинал отражен по горизонтали.

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

Всего хорошего!