Вердж3Д для Майи: Освещение и рендеринг — Софт Эйт Софт
Description: Как настроить освещение среды, свет и параметры рендеринга в Вердж3Д для Майя.

# Освещение и рендеринг / Майя

Эта страница содержит информацию о настройках освещения, рендеринга и фона, которые можно использовать в «Вердж3Д для Майи».

- Рендереры
- Освещение от окружающей среды
- Источники освещения
- Зонды освещения в виде отражающих кубических текстур
- Зонды освещения в виде планарных отражений
- Фон
- Глобальные настройки рендеринга
- Эмбиент окклюжн
- Контурный рендеринг
- Настройки рендеринга для каждого объекта
- Рендеринг с высокой плотностью пикселей («ретина»)
- Контрольные точки видимости
- Рендеринг линий
- Секущие плоскости

#

## Рендереры

«Вердж3Д» разработан для максимально возможного соответствия аппаратному рендереру «Вьюпорт 2.0» «Майи». Он поддерживает физически-корректный шейдинг, лампы, тени и освещение на основе изображений.

#

## Освещение от окружающей среды

Освещение от окружающей среды — важная составляющая графического пайплайна «Вердж3Д». Вы можете осветить всю сцену только картой окружения, без использования каких-либо иных источников освещения. Смотрите демо-приложение «Скутер», реализующее данный подход.

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

Кроме того, вы можете использовать атрибут Intensity для настройки интенсивности освещения окружения и Texture Resolution для настройки его качества:

- Low (64x64) и Medium (128x128) - значения не поддерживаются, вместо них «Вердж3Д» будет использовать настройку High (256x256) .
- High (256x256) - оптимальное качество при низком потреблении памяти (значение по умолчанию).
- Higher (512x512) - лучшее качество при умеренном потреблении памяти и снижении производительности. Используйте его для рендеринга отражений высокого качества, например, для рендеринга ювелирных изделий.
- Ultra (1024x1024) - наилучшее качество при высоком потреблении памяти и низкой производительности (обычно не рекомендуется).

При использовании HDR-текстуры для skydome, убедитесь, что для параметра Color Space вы установили значение Raw:

Вы также можете использовать aiSkyDomeLight без текстуры, чтобы имитировать свет, равномерно исходящий со всех сторон. Однако гораздо эффективнее использовать для этого Ambient Lights.

#

## Источники освещения

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

«Вердж3Д» поддерживает следующие типы освещения:

- Ambient Lights — в «Вердж3Д» поддерживаются свойства Color и Power.
- Directional Lights — в «Вердж3Д» поддерживаются свойства Color и Intensity.
- Point Lights — в «Вердж3Д» поддерживаются свойства Color, Intensity и Decay Rate.
- Spot Lights — в «Вердж3Д» поддерживаются свойства Color, Intensity, Decay Rate, Cone Angle и Penumbra Angle .
- Area Lights — в «Вердж3Д» поддерживаются свойства Color, Intensity. Масштабирование трансформации света управляет областью излучения.

Кроме того, вы можете назначить свойства Depth Map Shadow Attributes для источников освещения типа Directional, Point и Spot. Смотрите здесь для получения дополнительной информации

#

## Зонды освещения в виде отражающих кубических текстур

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

Аддон «Вердж3Д» добавляет настраиваемый объект светового зонда под названием v3dReflectionCubemap, который можно использовать для применения непрямого освещения к объектам с помощью локальной карты отражения.

Данная функциональность используется в демо-приложении Light Probe (исходные файлы доступны в магазине ассетов).

Новый объект светового зонда можно найти внутри панели Verge3D:

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

Преимущество использования локальной карты отражения заключается в том, что окружающие объекты запечены в неё, в то время как глобальная карта сцены содержит только текстуру/цвет фона, который может быть задан через объект aiSkyDomeLight. Локальные карты отражения также имеют эффект параллакса в зависимости от настроек геометрии influence или parallax.

Слева - отражающий объект во вьюпорте «Майи», справа - эффект, который он добавляет к отражающему материалу в «Вердж3Д».

Объекты типа v3dReflectionCubemap имеют следующие параметры:

Общие настройки
  Общие настройки светового зонда:
  Influence Type
    Тип области влияния: Sphere или Box. Только объекты расположенные внутри этой области, подвергаются воздействию зонда освещения. По умолчанию используется Sphere.
  Influence Distance
    Размер области влияния. Можно также изменить масштабирование объекта и сделать форму области влияния неоднородной. По умолчанию 1.0.
  Intensity
    Интенсивность непрямого освещения. Любое значение, отличное от 1.0 не является физически корректным. По умолчанию - 1.0.
  Clipping Start
    Расстояние до отсечения. Объекты, расположенные ближе, чем это значение, не будут отображаться в карте отражения. По умолчанию 0.1.
  Clipping End
    Дальнее расстояние отсечения. Объекты, расположенные дальше этого значения не будут отображаться в карте отражения. По умолчанию 100.0.
Настройки видимости
  Настройки видимости объекта:
  Visibility Set
    Ограничить объекты, которые должны появиться на кубической карте отражения, только теми, которые принадлежат данному набору. Укажите пустое значение, чтобы сделать видимыми все объекты сцены.
  Invert Visibility
    Инвертировать набор объектов, видимых данным световым зондом, если задан Visibility Set. По умолчанию отключено.
Custom Parallax
  Настройки параллакса:
  Use Custom Parallax
    Включить пользовательские настройки для коррекции параллакса. Эта группа настроек определяет область параллакса, который используется для проецирования освещения, полученного датчиком. Если функция Custom Parallax не включена эффект параллакса рассчитывается на основе Influence Type и Influence Distance. По умолчанию отключено.
  Parallax Type
    Тип области параллакса: Sphere или Box. По умолчанию это Sphere.
  Parallax Distance
    Размер области параллакса. По умолчанию это 1.0.
Custom Influence
  Настройки влияния:
  Use Custom Influence
    Включить настройки влияния светового зонда, позволяющие назначить коллекцию объектов, которая будет находиться под влиянием соответствующего зонда. При указании параметра Influence Set, настройки Influence Type и Influence Distance будут проигнорированы.
  Influence Set
    Набор объектов, на которую будет оказывать влияние зонд. Если этот параметр указан, данная коллекция будет использоваться вместо настроек Influence Type и Influence Distance
  Invert Influence
    Инвертировать объекты, на которые влияет зонд если коллекция Influence Set установлена.

#

## Зонды освещения в виде планарных отражений

Зонды планарных отражений — удобный способ добавить непрямые зеркальные отражения на плоские объекты, в частности, на зеркала, пол, стены и т.д.

Данная функциональность используется в демо-приложении «Световые зонды» (исходные файлы доступны в магазине ассетов).

Объект планарного зонда освещения добавляется с помощью панели инструментов Verge3D:

Поддерживаются следующие свойства планарных зондов:

Influence Distance
  Дистанция влияния зонда.
Falloff
  Интенсивность спада влияния.
Clipping Offset
  Ближняя плоскость отсечения для объектов, отображаемых в данном планарном зонде.
Visibility Set
  Набор объектов, видимых данным зондом. Укажите пустое значение, чтобы сделать видимыми все объекты сцены.
Invert Visibility
  Инвертировать набор объектов, видимых данным световым зондом, если задан Visibility Set. По умолчанию отключено.

Планарные зонда освещения могут влиять только на металлические поверхности с нулевой шероховатостью:

Планарные зонды могут существенно ухудшить производительность ваших приложений, поскольку для их работы требуется N+1 вызовов отрисовки. Чтобы ускорить рендеринг, всегда ограничивайте количество объектов с помощью набора Visibility Set.

#

## Фон

По умолчанию «Вердж3Д» отображает тот же фон, который вы видите во вьюпорте «Майи» (серый в большинстве случаев). При использовании освещения на основе изображения (обеспечиваемого объектами aiSkyDomeLight) вместо него отображается текстура окружения.

Чтобы изменить фон на другой цвет, не редактируйте настройки Viewport в «Майе», просто назначьте Background Color и включите атрибут Render Background на основной камере:

Вы можете использовать окно Render View в «Майе» или функцию Sneak Peek в «Вердж3Д» для предварительного просмотра сцены с пользовательским фоном.

#

## Глобальные настройки рендеринга

Глобальные настройки рендеринга, доступные из диалогового окна Verge3D Export Settings (Verge3D → Export Settings... в меню «Майи»).

Anti-Aliasing
  Выберите, какой алгоритм сглаживания (анти-алиасинга) использовать для сцены:
  Auto
    Использовать системный метод по умолчанию. В большинстве случаев это будет MSAA 4x.
  MSAA 4x
    Использовать мультисемплинг с 4-мя семплами, если такая настройка поддерживается оборудованием. Обеспечивает приемлемое качество при хорошей производительности.
  MSAA 8x
    Использовать мультисемплинг 8-ю семплами, если такая настройка поддерживается оборудованием. Обеспечивает улучшенное качестве при сниженной производительности.
  MSAA 16x
    Использовать мультисемплинг с 16-ю семплами, если такая настройка поддерживается оборудованием. Обеспечивает максимальное качество, но имеет самую низкую производительность.
  FXAA
    Использовать FXAA (быстрый аппроксимирующий анти-алиасинг). Включите этот алгоритм в случае проблем с алиасингом процедурных текстур.
  None
    Отключить сглаживание. Используйте эту опцию для агрессивной оптимизации, когда качество не имеет значения.
Use HDR Rendering

  Включает рендеринг с высоким динамическим диапазоном (HDR).

  При включении этой опции «Вердж3Д» будет использовать 16-битные текстуры для буферов рендеринга. Эта функция может значительно улучшить качество эффекта постобработки «Блум», а также «гладкость» процедурных текстур градиентов. Недостаток — увеличенное потребление видеопамяти и сниженная производительность.

  Эта настройка не имеет отношения к .hdr-текстурам, используемым для рендеринга окружения. Соответственно, включение HDR-рендеринга никак не отразится на их качестве.

Order-Independent Transparency
  Включить метод порядконезависимой прозрачности (OIT). Избавляет от большинства артефактов при рендеринге обьектов с прозрачностью. Подробнее об этом здесь.
IBL Environment Mode
  PMREM (best)
    Использовать карты PMREM. Это значение используется по умолчанию, поскольку обеспечивает наилучшее качество при нормальной производительности.
  Light Probe + Cubemap (medium)
    Отключает спекулярные отражения от карты окружения (но не диффузные). Метод быстрый, но подходит только для неметаллических поверхностей (например, отображаемых с помощью шейдера Lambert).
  Light Probe (fast)
    Отключает и спекулярные и диффузные отражения от карты окружения. Высочайшая производительность, но подходит только для материалов, которым не требуется освещение от карты освещения (например эмиссивные шейдеры), либо требуется освещение только от источников света.

#

## Эмбиент окклюжн

Эмбиент окклюжн (англ. ambient occlusion) — техника улучшающая реалистичность рендеринга посредством дополнительного затенения от непрямых источников. Степень этого затенения определяется тем, насколько видима рисуемая часть объекта, если смотреть не из камеры, а со стороны источников освещения.

Движок «Вердж3Д» воспроизводит алгоритм называемый GTAO (Ground Truth Ambient Occlusion). Настройки этого алгоритма находятся на вкладке AO настроек экспорта Verge3D Export Settings (вызываются из меню «Майи» Verge3D → Export Settings...):

«Вердж3Д» поддерживает эмбиент окклюжн только для материалов Standard Sufrace и aiStandardSufrace и только для сцен имеющих освещение от окружения (на основе объекта aiSkyDomeLight рендера «Арнольд»).

Enabled
  Включить/выключить эмбиент окклюжн.
Distance
  Радиус (в системных единицах измерения) в пределах которого будет производиться расчёт эффекта. Большие значения делают эффект более заметным, но уменьшают производительность, соответственно меньшие значения делают эффект менее заметным.
Factor
  Интенсивность эффекта эмбиент окклюжн.
Trace Precision
  Более высокие значения увеличивают точность эффекта за счёт снижения производительности. Меньшие значения уменьшают качество, но увеличивают производительность.
Bent Normals
  Использовать модифицированные («изогнутые», от англ. bent) нормали для семплирования карты окружения, вместо оригинальных. Направление модифицированных нормалей задаётся в сторону наименьшего затененения, что улучшает качество эффекта, но уменьшает производительность.

Данная функциональность используется в демо-приложении «Эмбиент окклюжн» (исходные файлы доступны в магазине ассетов).

#

## Контурный рендеринг

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

Чтобы использовать визуализацию контура (и дополнительное свечение) в «Вердж3Д»-приложении, сначала включите эффект в настройках экспорта Verge3D Export Settings:

а затем используйте пазл outline, чтобы применить его к объекту (объектам).

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

Вы можете настроить контур с помощью следующих параметров:

Enabled
  Включить контурный рендеринг.
Edge Strength
  Фактор силы контура.
Edge Glow
  Интенсивность дополнительного свечения (отрисовывается за пределами основного края контура).
Edge Thickness
  Коэффициент толщины края контура.
Pulse Period
  Период импульса в секундах. Укажите, чтобы сделать эффект анимированным.
Visible Edge Color
  Цвет видимого контура.
Hidden Edge Color
  Цвет края контура, отображаемого за другими объектами сцены.
Render Hidden Edge
  Включить/выключить отрисовку края контура за другими объектами сцены.

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

#

## Настройки рендеринга для каждого объекта

«Вердж3Д» поддерживает следующие дополнительные настройки рендеринга геометрических объектов:

Render Order
  Изменяет порядок рендеринга для конкретного объекта. Чем меньше индекс, тем раньше будет отрисован объект. В большинстве случаев это значение необходимо подстроить при использовании прозрачности типа blend для устранения артефактов прозрачности.
Frustum Culling
  Включает/выключает оптимизацию фрустум каллинга. Снимите этот флажок, если у вас есть объект со скиннингом, который может выходить за пределы экранного пространства, чтобы предотвратить его пропадание.

Кроме того, ряд параметров доступен на панели настроек объекта трансформации Verge3D → Advanced Rendering:

HiDPI Compositing
  Включить/выключить пасс рендеринга с высокой плотностью пикселей. Смотрите ниже для получения дополнительной информации.
Fix Ortho Zoom
  Применять обратное увеличение к объектам, которые рендерятся с использованием ортографической камеры. Данная коррекция используется для того, чтобы сделать объекты, дочерние к такой камере, неподвижными и имеющими неизменяемые размеры.
Fit to Camera Edge
  Смотрите тут для получения дополнительной информации.
Visibility Breakpoints
  Установить контрольные точки видимости. Смотрите тут для получения дополнительной информации.

#

## Рендеринг с высокой плотностью пикселей («ретина»)

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

Есть 2 способа улучшить качество рендеринга с высокой плотностью, но так чтобы производительность не уменьшалась слишком сильно:

- Увеличить разрешение не так сильно, например выставив фактор масштабирования в 1.5. Смотрите здесь чтобы узнать подробнее об этой технике.
- Использовать высокое разрешение только там, где это наиболее актуально, например чтобы улучшить качество текста и интерфейсных элементов.

Второй способ активируется с помощью настройки HiDPI Compositing расположенной на панели Advanced Rendering:

HiDPI-композитинг используется для отображения текста и элементов управления в демо «Электронное обучение».

Однако рендеринг контента в отдельном пассе с высоким качеством имеет свои ограничения:

- Вы не можете применять эффекты постобработки к объектам, отображаемым в HiDPI-пассе.
- Такие объекты не могут быть заслонены объектами, которые рендерятся перед ними. Это может давать артефакты, как показано на рисунки ниже (зелёный — обычный объект, синий — HiDPI-объект, но зелёный ближе к наблюдателю):

Это означает, что настройка HiDPI Compositing должна использоваться в основном для интерфейсных элементов и объектов, привязанных к камере.

Данная функциональность используется в демо-приложении «Кольцо» (исходные файлы доступны в магазине ассетов).

#

## Контрольные точки видимости

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

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

Контрольные точки видимости настраиваются на панели Advanced Rendering:

Min Width
  Минимальная ширина 3Д-холста при которой объект остаётся видимым.
Max Width
  Максимальная ширина 3Д-холста при которой объект остаётся видимым.
Min Height
  Минимальная высота 3Д-холста при которой объект остаётся видимым.
Max Height
  Максимальная высота 3Д-холста при которой объект остаётся видимым.
Orientation
  Ориентация экрана при которой объект остаётся видимым.

#

## Рендеринг линий

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

Рендеринг скелета геометрического объекта.

Рендеринг линий включается на панели Verge3D Settings, которая в свою очередь расположена на панели Object Data Properties:

Тут также настройки цвета и толщины линий. В «Вердж3Д» линии рендерятся с помощью эмиссивного шейдера (без освещения).

Данная функциональность используется в демо-приложении «Линии» (исходные файлы доступны в магазине ассетов).

#

## Секущие плоскости

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

Пример сцены использующей секущие плоскости.

Чтобы добавить новую плоскость, используйте кнопку Verge3D → Clipping Plane расположенную на панели инструментов «Майи»:

Объекты на сцене будут обрезаны в отрицательном направлении оси Y плоскости сечения.

Плоскости сечения имеют следующие параметры:

Affected Objects
  Набор объектов, с которыми будет взаимодействовать секущая плоскость. Если коллекция не назначена, все объекты сцены будут обрезаны.
Negated
  Поменять местами обрезанную и необрезанную стороны.
Clip Shadows
  Обрезать тени, отбрасываемые обрезанными объектами.
Union Planes
  Построить объединение из всех плоскостей сечения, воздействуя на объект, а не на их пересечение.
Cross-Section
  Заполнить отверстие образованное секущей плоскостью в затронутых объектах.
Color
  Цвет и прозрачность поперечного сечения.
Render Side
  Сторона геометрии плоскости отсечения. Укажите Double-sided чтобы рендерить сложную геометрию с вырезами.
Render Size
  Размер плоскости сечения. Увеличьте это значение, если вы используете сцену большего размера.

Данная функциональность используется в демо-приложении «Мясорубка» (исходные файлы доступны в магазине ассетов).

## Остались вопросы?

Задайте их на нашем форуме!