Имитация теней в Maya
Режим формирования теней в Maya может быть включен или выключен по вашему желанию. По умолчанию он выключен. Соответственно, хотя поверхности освещенных объектов затенены, то есть ближняя к источнику света сторона объекта имеет более яркий цвет, чем противоположная, сами объекты не отбрасывают теней. Кроме того, это значит, что свет беспрепятственно проходит сквозь поверхности, освещая даже объекты, расположенные в тени других объектов.
Наличие тени помогает яснее определить размер объекта, его положение и ориентацию в пространстве. Соответственно, формирование теней позволяет определить пространственные соотношения между объектами. Отсутствие теней в сцене приводит к появлению в результате визуализации плоской картинки, то есть тени добавляют сцене глубину и делают ее более реальной. Особенно это касается сцен в интерьере. Еще раз посмотрите на рис. 9.8. Как вы видите, в данном случае сложно сказать, стоят ли объекты на поверхности или же парят в пространстве между камерой и опорной
плоскостью.
Обычно принято использовать в сцене несколько источников света, формирующих тени, и большое количество более тусклых, «заполняющих» осветителей. Наличие теней значительно увеличивает время визуализации, особенно если тени формируются источником света типа Area (Прямоугольный) или являются трассированными. Поэтому при создании сцены с тенями руководствоваться надлежит также соображениями минимизации времени вычислений. Кроме того, тени имеют свойство выцветать при появлении дополнительных источников света с включенным свойством формирования теней, освещающих ту же самую область. В Maya существует много способов как сделать сцену более контрастной, так и уменьшить время визуализации. Рассмотрим подробнее дна основных типа теней в Maya — полученные на основе карты глубины и трассированные.
Карта глубины
В Maya существует возможность формирования теней на основе так называемой карты глубины (Depth Map), которая содержит информацию о расстоянии от источника света до поверхности, которую он освещает. Программа вычисляет эту карту при первой же визуализации, и впоследствии она используется при расчете теней. Благодаря наличию карты теней визуализатор получает информацию об освещенности различных областей сцены, указывая, насколько далеко могут распространяться лучи света. В итоге они останавливаются на поверхностях объектов.
Тени, полученные на основе карты глубины, обычно хорошо имитируют реальные, при этом значительного увеличения времени визуализации не происходит. Они обычно имеют более размытые края, что выглядит более натурально, чем резкие трассированные тени. Впрочем, при желании можно получить примерно такой же уровень резкости теней, увеличив значение параметра Dmap Resolution (Разрешение карты глубины). Основным недостатком этого метода является отсутствие возможности создания мягких теней и невосприимчивость к прозрачности объектов.
Для источников света типа Point (Точечный), Ambient (Рассеянный) и Area (Прямоугольный) карта глубины работает особым образом. Дело в том, что для создания теней с помощью карты необходимо квадратное растровое изображение, а упомянутые источники света распространяют лучи во всех направлениях. Соответственно, приходится создавать набор карт, покрывающий всю область тени. В Maya для этих случаев используются кубические карты теней, то есть шесть теней, расположенных на шести сторонах куба. Этот процесс требует в шесть раз большего объема оперативной памяти, что может быть связано с увеличенным размером карты. В общем случае желательно, чтобы большинство теней создавалось источниками света типа Spot (Прожектор) или Directional (Направленный). При этом можно прямо указать направление лучей света и падения теней.
Параметры карты глубины
При работе с картами теней можно настраивать следующие параметры:
- Shadow Color (Цвет тени). Этот параметр относится к обоим типам теней в Maya. Его изменение приводит к изменению цвета тени после визуализации. Сделав цвет тени немного ярче черного, можно имитировать диффузное рассеяние света. Кроме того, данному параметру можно назначить карту текстуры, используя способ, описанный в главе 8.
- Dmap Resolution (Разрешение карты глубины). Определяет аккуратность теней, сформированных на основе карты глубины. Карты представляют собой квадратные изображения, поэтому установив этот параметр равным 1024, вы получите карту теней с разрешением 1024x1024 пиксела. При очень больших значениях этого параметра у компьютера может не хватить оперативной памяти на обработку такой карты. Если же данный параметр имеет малое значение, у теней могут образоваться зубчатые края.
Правда, это имеет отношение только к окончательному изображению, полученному в результате визуализации. Этот эффект можно завуалировать, увеличив значение параметра Dmap Filter Size (Размер фильтра карты глубины). Увеличение разрешения тоже приводит к исчезновению зазубренных краев, но формирует более резкие границы тени.
- Dmap Filter Size (Размер фильтра карты глубины). Непосредственно влияет на состояние границы тени. Удачно скомбинировав значение этого параметра с величиной разрешения карты глубины, можно сгладить размытую границу тени, избавившись от эффекта. Имейте в виду, что увеличение размера фильтра карты глубины сопровождается увеличением времени визуализации, поэтому без крайней необходимости не присваивайте данному параметру значений, превосходящих 3.
- Dmap Bias (Смещение карты глубины). Когда с помощью карты глубины формируются длинные тени, иногда они могут быть смещены относительно объекта, который их отбрасывает. Смещение карты глубины регулирует расстояние между тенью и объектом. Как правило, изменение заданного по умолчанию значения требуется очень редко. Например, при имитации теней, возникающих при заходящем Солнце.
Трассированные
тени
В общем случае на визуализацию сцены с трассированными тенями уходит больше
времени, но зато она требует меньшего количества оперативной памяти. Кроме того,
появляется возможность создания размытых теней, а также теней от прозрачных
объектов. Чтобы тени этого типа появились после визуализации, необходимо включить
процедуру трассирования, установив флажок Raytracing (Трассирование) в окне
диалога Render Globals (Общие параметры визуализации).
Источники типа Spot (Прожектор), Directional (Направленный), Ambient (Рассеянный
свет) и Point (Точечный) могут формировать такие же тени, как и источник света
Area (Прямоугольный). В этом случае размытые тени создаются путем увеличения
радиуса источника света. Неточечные источники света формируют размытые тени
(так называемые полутени), так как некоторое количество лучей света оказывается
заблокированным расположенным на их пути объектом. В итоге лучи как бы огибают
объект, частично освещая пространство за ним. В результате создается впечатление
медленного перехода от тени к ее отсутствию.
Прозрачные объекты формируют только трассированные тени. При этом цвет объекта
не учитывается. Для получения цветных теней необходимо назначить карту текстуры
характеристике Transparency (Прозрачность) материала. Также имейте в виду, что
тени будут иметь постоянную яркость, потому что при их построении эффекты преломления
света в расчет не принимаются.
Параметры трассированных теней
Перечислим основные параметры, с которыми вам придется работать при использовании
трассированных теней:
- Light Radius (Радиус источника). Устанавливает воображаемый размер круга, испускающего лучи света, который является имитацией источника света типа Area (Прямоугольный). Имейте в виду, что отличие данного параметра от нуля приводит к формированию размытых теней и увеличению времени визуализации сцены.
- Shadow Rays (Лучи тени). Отвечает за вид размытых теней. При малых значениях данного параметра тени будут пятнистыми, зато процесс визуализации ускорится. Он похож на параметр Dmap Filter Size (Размер фильтра карты глубины), который регулирует состояние границы тени, полученной на основе карты глубины, тем, что его увеличение приводит к снижению зернистости тени. При этом увеличение значения параметра Shadow Rays (Лучи тени) сильно замедляет процесс визуализации, поэтому старайтесь использовать минимальное значение, необходимое для получения приемлемого результата.
- Ray Depth Limit (Предел глубины луча). Этот параметр на единицу меньше числа отражений и преломлений, после которых луч еще в состоянии формировать тень. Вы можете увеличить его значение, если хотите дать лучам света возможность отражаться и преломляться перед тем, как сформировать тень.
Тени, формируемые
источником света типа Area
Если вы включили для источника света типа Area (Прямоугольный) возможность формирования
теней, то они будут вычисляться на основе размера области, испускающей световые
лучи. Аналогичный результат получается для точечных источников света после увеличения
значения параметра Light Radius (Радиус источника).
Упражнение. Работа с тенями
Продолжите выполнение предыдущего упражнения.
- Выделите в окне диалога Outliner (Структура) источник света spotLightl и введите в поле параметра Visibility (Видимость) в окне каналов значение 1. Откройте окно диалога Attribute Editor (Редактор атрибутов) и раскройте раздел Shadows (Тени). Установите флажок Use Depth Map Shadows (Использование карты глубины) в разделе Depth Map Shadow Attributes (Параметры карты глубины).
- Визуализируйте окно проекции RenderCamera (Камера), чтобы посмотреть на созданные тени. Их вид показан на рис. 9.10.
Рис. 9.10. Результат включения формирования теней на основе карты глубины для источника света типа Spot
ВНИМАНИЕ
Интерактивная фотореалистичная визуализация позволяет отследить процесс редактирования
материалов и источников света. Но она не может помочь при редактировании параметров
теней, включая их разрешение. Если ваши действия не приводят к видимым изменениям,
еще раз проведите интерактивную фотореалистичную визуализацию.
- Введите в поле Dmap Resolution (Разрешение карты глубины) значение 128. После интерактивной фотореалистичной визуализации вы увидите появление зубчатых теней. Помните, что данный процесс не отражает результатов изменения разрешения карты глубины. Впрочем, вы сможете увидеть результат редактирования значения параметра Dmap Filter Size (Размер фильтра карты глубины).
- Введите в поле параметра Dmap Filter Size (Размер фильтра карты глубины) значение 3, чтобы убрать зубчатые края теней.
- Теперь пришло время исследовать трассированные тени. Снимите флажок Use Depth Map Shadows (Использование карты глубины) в разделе Depth Map Shadow Attributes (Параметры карты глубины) окна диалога Attribute Editor (Редактор атрибутов). Тени от объектов должны исчезнуть.
- Раскройте раздел Raytrace Shadow Attributes (Параметры трассированных теней) и установите флажок Use Raytrace Shadows (Использование трассированных теней). Однако появления теней в визуализаторе вы не увидите. Щелкните правой кнопкой мыши в произвольной точке визуализатора и выберите в появившемся контекстном меню команду Options > Render Globals (Параметры > Общие параметры визуализации). В разделе Raytracing Quality (Качество трассирования) появившегося окна диалога установите флажок Raytracing (Трассирование). Теперь у вас включен режим формирования трассированных теней, а также эффектов отражения и преломления света.
- Закройте окно диалога Render Globals (Общие параметры визуализации) и снова запустите интерактивную фотореалистичную визуализацию. Как легко заметить, тени по-прежнему не появились. В строке подсказки при этом отображается надпись Error:// IPR does not support raytracing. Turn off raytracing in Render Globals and select a new region. //. Это объясняет, почему интерактивная фотореалистичная визуализация не дает желаемого результата. Чтобы посмотреть на трассированные тени в действии, сначала необходимо провести обычную визуализацию.
- Нажмите первую слева кнопку на панели инструментов окна диалога Render View (Визуализатор). Процесс визуализации займет немного больше времени, чем при использовании теней, сформированных на основе карты глубины. На этот раз тени будут иметь очень резкие края. Обратите внимание, что тени от объектов, материалам которых была назначена карта рельефа, также изменились.
- Введите в поле параметра Light Radius (Радиус источника) значение 1,25. Повторная визуализация покажет размывание границ теней. Увеличьте масштаб, и вы заметите, что их структура имеет зернистый характер. Если приглядеться, то можно обнаружить, что зернистость растет по мере удаления от поверхности объекта.
- Чтобы уменьшить зернистость границ, введите в поле параметра Shadow Rays (Лучи тени) значение 10. Еще раз визуализируйте сцену, но имейте в виду, что на этот раз визуализация займет еще больше времени.
Итак, вы получили представление об основах настройки источников света и теней. Теперь рассмотрим дополнительные элементы управления освещенностью.