Первые шаги в Maya. Урок 12. Основы освещения сцены

Светлана Шляхтина

Теоретические аспекты

Добавление источника света Point

Создание теней

Добавление источника света Directional

Добавление источника света Spot

Добавление источника света Ambient

Настройка спада освещенности и размытие тени

Применение световых эффектов

Практические примеры настройки освещения сцены

Объемный текст с трассированной тенью

Разноцветные колонны

Освещенный домик

 

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

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

Теоретические аспекты

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

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

В Maya предусмотрено шесть типов источников света:

  • Ambient (Рассеянный) — равномерно испускает лучи во всех направлениях и освещает всю сцену; используется в качестве заполняющих осветителей или осветителей фона, предназначенных для равномерного освещения поверхностей всех объектов и создания общего светового фона сцены; применяется только вместе с другими типами источников света, так как иначе визуализированная сцена может стать совершенно плоской и высветленной; данный источник света превращается в Point-источник при значении параметра AmbientShade (Уменьшение рассеивания) равном 1;
  • Directional (Направленный) — равномерно распространяет лучи, идущие параллельным световым потоком в определенном направлении, и освещает область внутри прямого или наклонного цилиндров; применяется в качестве ключевого, заполняющего и контрового осветителей и прекрасно подходит для имитации солнечного света, а также для создания общего освещения сцен в интерьере;
  • Point (Точечный) — равномерно испускает лучи во всех направлениях от единственного точечного источника, освещая область вблизи него; широко применяется для общего освещения сцены, а также для имитации горения электрической лампочки и пр.;
  • Spot (Прожектор) — распространяет лучи, выходящие из точки, в определенном направлении коническим потоком и освещает область внутри конуса; применяется для имитации света прожекторов и потому используется в качестве ключевых и заполняющих осветителей для создания ореола вокруг объекта, для получения световых пятен в определенных областях и т.д.;
  • Area (Прямоугольный) — распространяет лучи из ограниченной прямоугольной области (размеры которой регулируются) и освещает лишь соответствующую прямоугольную область на сцене; может использоваться, например, для имитации узкой полоски света, падающей из приоткрытой двери, диффузного рассеивания света плоскими поверхностями ярко освещенных объектов и т.п.;
  • Volume (Объемный) — испускает лучи из некой определенной пользователем области пространства (сферы, параллелепипеда, цилиндра или конуса) и освещает ограниченный участок сцены; применяется для имитации пламени факела или свечи, создании различных объемных эффектов, а также в случае необходимости более сложной настройки областей света и тени (например, когда какой-то объект должен войти в освещенное пространство, но путем настройки общего освещения сцены этого добиться не удается).

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

Создавать источники света можно как через меню Create=>Lights (Создать=>Источники света), так и с помощью инструментов панели Shelf (Полка), открытой на странице Rendering (Визуализация), — рис. 1. И в том, и в другом случае становятся доступными все вышеописанные типы источников. Технология их создания напоминает создание объектов геометрии: достаточно выбрать тип источника и он тут же появится в начале координат. Созданным источникам (так же, как и объектам геометрии) присваиваются имена: AmbientLight1, Directional Light1 и т.п., которые лучше сразу заменять на более информативные. Любой источник света можно дублировать, удалять, перемещать, поворачивать и масштабировать на видовых экранах так же, как и все другие стандартные объекты.

 

Рис. 1. Создание направленного источника света

Рис. 1. Создание направленного источника света

 

Параметры источников устанавливаются сразу при их создании через меню Create (для этого следует щелкать на квадратике, расположенном справа от имени типа источника) либо корректируются позднее в окне каналов (ChannelBox) или окне редактора атрибутов (AttributeEditor). Часть параметров у каждого типа источников света индивидуальна, однако имеются и базовые параметры, присущие любому (или почти любому) источнику. Это параметры, присутствующие в свитке Light Attributes редактора атрибутов (рис. 2):

  • Type (Тип осветителя) — позволяет изменять тип источника;
  • Color (Цвет) — определяет цвет светового потока и позволяет назначать данному параметру карту текстуры;
  • Intensity (Интенсивность) — обеспечивает контроль интенсивности светового потока (при увеличении значения данного параметра сцена освещается более ярко).

 

Рис. 2. Базовые параметры источника света

Рис. 2. Базовые параметры источника света

 

У источников света типов Point, Spot и Area имеется общий параметр — DecayRate (Скорость спада), с помощью которого определяется скорость снижения интенсивности света по мере удаления от источника. Правда, его применение требует параллельного увеличения общего значения интенсивности света (параметр Intensity), чтобы компенсировать его спад. По умолчанию интенсивность света не изменяется с расстоянием и все световые лучи достигают всех объектов сцены, так как для данного параметра установлено значение NoDecay. Чтобы интенсивность света действительно уменьшалась с увеличением расстояния от источника, требуется изменить значение данного параметра на один из вариантов: Linear, Quadratic или Cubic. Первый из вариантов обеспечивает наименьшую скорость спада освещенности, а последний — наибольшую. Реальности более всего соответствует вариант Quadratic, когда свет ослабевает обратно пропорционально квадрату расстояния до источника, однако его применение требует значительного увеличения параметра Intensity (Интенсивность).

Любым источником света можно управлять посредством флажка IlluminatesbyDefault (Освещение по умолчанию), который по умолчанию включен, что приводит к освещению всех объектов сцены. При выключенном флажке освещаться будут лишь указанные пользователем объекты, что регулируется через редактор связей (команда Window=>RelationshipEditors=>LightLinking — Окно=>Редакторы связей=>Связывание источников света).

Кроме того, для всех осветителей, кроме осветителей типа Ambient, возможна настройка особенностей испускания ими света посредством включения/выключения флажков EmitDiffuse (Диффузная компонента) и EmitSpecular (Свечение зеркальных бликов), с помощью которых определяется, будет ли испускаемый свет влиять на Diffuse- и Specular-компоненты материалов соответственно. В частности, включение флажка EmitDiffuse применяется для имитации мягкого отражения света на поверхности объектов, а установка флажка EmitSpecular позволяет имитировать освещенную металлическую поверхность.

В начало В начало

Добавление источника света Point

Подготовьте простую сцену из двух объектов: плоскости и шара (рис. 3). Создайте источник света типа Point, щелкнув на одноименной кнопке панели Shelf (Полка), предварительно открытой на странице Rendering (Визуализация), — в начале координат тут же появится объект в виде солнышка, это и есть созданный источник света. Если после этого сразу визуализировать сцену, то результат не произведет впечатления, так как видимой окажется лишь совсем небольшая область шара рядом с источником (рис. 4).

Попробуем изменить параметры Point-источника так, чтобы шар был нормально освещен. Учитывая, что для этого потребуется многократная корректировка настроек источника, вначале перейдем в режим интерактивной фотореалистичной визуализации. Для этого откройте окно RenderView, что можно сделать как из меню (команда Window=>RenderingEditors=>RenderView — Окно=>Редакторы визуализации=>Визуализатор), так и обычным образом, щелкнув на кнопке Render the Current Frame. Нажмите на панели инструментов данного окна третью слева кнопку (рис. 5) и по завершении процесса визуализации выделите рамкой предполагаемую область визуализации (рис. 6) — теперь изменения в настройках источника будут сразу же отображаться в окне визуализации, что позволит сэкономить немало времени на настройке параметров. Инструментом Move Tool отрегулируйте положение источника так, чтобы в проекции Front он находился справа от шара и был расположен гораздо выше его (обратите внимание, что любое передвижение источника тут же отражается на особенностях освещения шара в окне визуализации), — шар окажется освещенным справа (рис. 7). Попробуйте поперемещать источник света вокруг шара и увидите, что в зависимости от положения источника будет освещаться та или иная часть шара. По окончании эксперимента верните источник на исходную позицию справа от шара.

 

Рис. 3. Исходная сцена

Рис. 3. Исходная сцена

 

Рис. 4. Результат визуализации сцены при настройках Point-источника по умолчанию

Рис. 4. Результат визуализации сцены при настройках Point-источника по умолчанию

 

Рис. 5. Включение режима интерактивной фотореалистичной визуализации

Рис. 5. Включение режима интерактивной фотореалистичной визуализации

 

Рис. 6. Выделение области визуализации

Рис. 6. Выделение области визуализации

 

Рис. 7. Перемещение Point-источника

Рис. 7. Перемещение Point-источника

 

А теперь при выделенном источнике в окне каналов включите опцию DepthMapShadow, задав в соответствующем поле значение on или просто введя в него значение 1. Данная операция необходима для того, чтобы шар мог отбрасывать тень, правда результат включения названной опции в окне RenderView первоначально не отобразится — придется вновь вначале щелкнуть на третьей слева кнопке, а затем выделить область визуализации. После этого при рендеринге тень от шара станет отображаться (рис. 8).

 

Рис. 8. Вид шара с тенью

Рис. 8. Вид шара с тенью

 

Теперь научимся управлять интенсивностью света — это возможно как через окно каналов, так и в редакторе атрибутов, при этом второй вариант несколько удобнее, так как осуществляется посредством медленного перемещения ползунка, что позволяет более тонко регулировать яркость свечения источника. Поэтому откройте редактор атрибутов и поэкспериментируйте со значением параметра Intensity (Интенсивность), постепенно увеличивая его значение, — освещение сцены станет намного ярче (рис. 9). В этом же свитке можно изменить цвет световых лучей источника, установив нужный оттенок в поле Color (Цвет). Для примера попробуйте изменить устанавливаемый по умолчанию белый цвет, например, на желтый — при визуализации сцена окажется освещенной желтой лампочкой (рис. 10).

 

Рис. 9. Настройка интенсивности освещения

Рис. 9. Настройка интенсивности освещения

 

Рис. 10. Изменение вида сцены в результате смены цвета источника

Рис. 10. Изменение вида сцены в результате смены цвета источника

В начало В начало

Создание теней

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

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

Трассированные тени чувствительны к прозрачности объектов и тоже могут быть как резкими, так и размытыми, но требуют большего времени на визуализацию. А для их формирования требуется установить в окне каналов флажок RayTraceShadows (Использовать трассированные тени) и включить функцию трассирования ( Raytracing) в диалоговом окне RenderGlobalSettings (Общие параметры визуализации), вызываемом командой Window=>RenderingEditors=>RenderGlobals (Окно=>Редакторы визуализации=>Общие параметры визуализации), — рис. 11.

 

Рис. 11. Включение трассировки

Рис. 11. Включение трассировки

 

Вернемся к нашей рабочей сцене. Если визуализировать сцену при большем масштабе и присмотреться к тени, то окажется, что она имеет ломаную границу (рис. 12). Данная проблема нередко имеет место при использовании теней на основе карт глубины, однако она легко решается — для этого достаточно подобрать подходящее значение параметра DmapResolution (Разрешение карты глубины), которое обеспечивало бы нужную форму контура тени для данного типа источника света. По умолчанию названный параметр всегда равен 512, что обеспечивает очень быструю визуализацию, но чаще всего не дает нужной плавности контура тени. Увеличивая значение параметра DmapResolution, можно добиться более четких теней. Разные типы источников света требуют различных значений данного параметра для достижения одного и того же по качеству результата. Так, Spot-источник обеспечивает достаточно четкую тень даже при совсем малом разрешении карты глубины, а получение качественных теней при применении Directional-источника потребует более высокого разрешения, но в целом большинство теней оказываются достаточно детализированными при разрешении карты глубины в 1024. Исходя из этих соображений, увеличьте в рабочей сцене значение параметра DmapResolution до 1024, и вы увидите, что граница станет гораздо более четкой (рис. 13).

 

Рис. 12. Шар с недостаточно детализированной тенью, полученной на основе карты глубины

Рис. 12. Шар с недостаточно детализированной тенью, полученной на основе карты глубины

 

Рис. 13. Шар с качественной тенью, полученной на основе карты глубины

Рис. 13. Шар с качественной тенью, полученной на основе карты глубины

 

Чтобы оценить качество трассированных теней, откажитесь от формирования теней на основе карты глубины, введя в окне каналов в поле DepthMapShadows значение off (или просто число 0). Активируйте процесс создания теней в ходе трассировки, указав в поле RayTraceShadows число 1, включите флажок Raytracing в диалоговом окне RenderGlobalSettings, параллельно обнулив значения в полях Refractions и Reflections, и проведите рендеринг. Как видно из рис. 14, трассированные тени от непрозрачного объекта не сильно отличаются от теней, полученных на основе карты глубины.

 

Рис. 14. Шар с трассированной тенью

Рис. 14. Шар с трассированной тенью

В начало В начало

Добавление источника света Directional

Воспользуемся источником света типа Directional для получения заполняющего осветителя. Создайте Directional-источник, щелкнув на одноименной кнопке панели Shelf. Теперь надо подобрать направление испускаемых им световых лучей так, чтобы свет падал под некоторым углом и освещал находящуюся в тени левую нижнюю часть шара. Для удобства работы вначале увеличьте размер значка Directional-источника, задав для него соответствующий масштаб по всем координатным осям (рис. 15). Поверните источник нужным образом примерно так, чтобы его лучи смотрели в направлении ключевого источника света (рис. 16), а затем в редакторе атрибутов уменьшите его интенсивность примерно до 0,7 и снимите флажок EmitSpecular (Свечение зеркальных бликов), чтобы исключить формирование зеркальных бликов на поверхности объектов, — это обеспечит достаточное освещение теневых областей сцены (рис. 17). Обратите внимание, что перемещать данный тип источника бессмысленно (разве что для удобства обзора окон проекций), так как его положение в пространстве значения не имеет.

 

Рис. 15. Масштабирование первого Directional-источника

Рис. 15. Масштабирование первого Directional-источника

 

Рис. 16. Определение направления первого Directional-источника

Рис. 16. Определение направления первого Directional-источника

 

Рис. 17. Вид сцены после настройки заполняющего осветителя

Рис. 17. Вид сцены после настройки заполняющего осветителя

 

В качестве контрового осветителя создайте второй Directional-источник, направив его примерно так, как показано на рис. 18, отключив для него флажок EmitSpecular и уменьшив интенсивность, — контуры объектов станут более четкими, поскольку вокруг них сформируется небольшой ореол (рис. 19).

 

Рис. 18. Определение направления второго Directional-источника

Рис. 18. Определение направления второго Directional-источника

 

Рис. 19. Вид сцены после настройки контрового осветителя

Рис. 19. Вид сцены после настройки контрового осветителя

В начало В начало

КомпьютерПресс 7'2007

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует