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

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

Рендереры

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

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

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

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

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

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

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

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

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

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

Кроме того, вы можете назначить свойства 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:

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

Reflection plane params panel
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 (Verge3DExport 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 (вызываются из меню «Майи» Verge3DExport 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
Включает/выключает оптимизацию фрустум каллинга. Снимите этот флажок, если у вас есть объект со скиннингом, который может выходить за пределы экранного пространства, чтобы предотвратить его пропадание.

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

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

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

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

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

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

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

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

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

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