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

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

Рендереры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Новый объект светового зонда можно найти внутри специальной панели 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.
Настройки видимости
настройки видимости объекта:
Selection Set
ограничить объекты, которые должны появиться на кубокарте отражения, только теми, которые принадлежат данному набору. Выберите опцию пустой строки, чтобы не указывать никакого набора объектов - в этом случае все объекты сцены будут использованы для создания кубической карты отражения. По умолчанию используется пустая строка.
Invert Visibility
инвертировать выбор объектов, видимых данным световым зондом, если задан Selection Set. По умолчанию отключено.
Custom Parallax
настройки параллакса:
Use Custom Parallax
включить пользовательские настройки для коррекции параллакса. Эта группа настроек определяет область параллакса, который используется для проецирования освещения, полученного датчиком. Если функция Custom Parallax не включена эффект параллакса рассчитывается на основе Influence Type и Influence Distance. По умолчанию отключено.
Parallax Type
тип области параллакса: Sphere или Box. По умолчанию это Sphere
Parallax Distance
размер области параллакса. По умолчанию это 1.0.

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

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

Планарные отражения в демо-приложении «Загружаем-выгружаем».

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

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

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

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

Фон

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

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

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

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

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

Anti-Aliasing
Выберите, какой алгоритм сглаживания (анти-алиасинга) использовать для сцены:
Auto
Использовать системный метод по умолчанию.
MSAA 4x
Использовать мультисемплинг с 4-мя семплами, если такая настройка поддерживается оборудованием.
MSAA 8x
Использовать мультисемплинг 8-ю семплами, если такая настройка поддерживается оборудованием.
MSAA 16x
Использовать мультисемплинг с 16-ю семплами, если такая настройка поддерживается оборудованием.
FXAA
Использовать БААА (быстрый аппроксимирующий анти-алиасинг). Включите этот алгоритм в случае проблем с алиасингом процедурных текстур.
None
Отключить сглаживание.
Use HDR Rendering
Включить рендеринг с высоким динамическим диапазоном (ХДР).
Order-Indep. Transparency
Включить метод порядок-независимой прозрачности (OIT). Избавляет от большинства артефактов при рендеринге обьектов с прозрачностью. Подробнее об этом здесь.
IBL Environment Mode
Способ рендеринга карты отражений:
PMREM (slow)
Высокое качество (значение по умолчанию).
Light Probe + Cubemap (medium)
Снижение качества зеркальных отражений на основе изображений, лучшая производительность.
Light Probe (fast)
Отключение зеркальных отражений на основе изображений, высочайшая производительность.
Outlining Effect
Смотрите ниже.

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

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

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

Ambient occlusion settings window

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

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 - включает/выключает оптимизацию фрустум кулинга. Снимите этот флажок, если у вас есть какой-либо обтекаемый объект, который может выходить за пределы экранного пространства, чтобы предотвратить его обтекание.

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

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

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

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

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

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

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

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

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

Min Width
Минимальная ширина канваса при которой объект остаётся видимым.
Max Width
Максимальная ширина канваса при которой объект остаётся видимым.
Min Height
Минимальная высота канваса при которой объект остаётся видимым.
Max Height
Максимальная высота канваса при которой объект остаётся видимым.
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
Размер плоскости сечения. Увеличьте это значение, если вы используете сцену большего размера.

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

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

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