Прозрачность / Майя
Здесь мы покажем, как включить прозрачность для Standard Surface, Lambert и glTF-совместимых PBR материалов в «Майе».
- Альфа-блендинг и альфа-клиппинг
- Аддитивный композитинг (рендеринг без буфера глубины)
- Порядконезависимая прозрачность (OIT)
- Прозрачность Standard Surface материалов
- Прозрачность glTF-совместимых PBR-материалов
Альфа-блендинг и альфа-клиппинг
«Вердж3Д», являясь 3Д-движком, работающим в реальном времени, предлагает два метода работы с прозрачными объектами: альфа-блендинг и альфа-клиппинг (обычно с изображением-маской). Альфа-блендинг позволяет комбинировать полупрозрачный цвет переднего плана с цветом фона, используя альфа-канал в качестве фактора смешивания. Альфа-клиппинг действует по принципу отбрасывания всех пикселей альфа-канала меньше заданного порога (в «Вердж3Д для Майи» он всегда равен 0,5).
![](files/transparency-common/blending-vs-clipping.jpg)
Альфа-блендинг менее производителен, чем альфа-клиппинг, но обеспечивает мягкие переходы, которые выглядят красивее. Альфа-блендинг также может вызывать артефакты связанные с Z-файтингом, когда полигоны визуализируются в неправильном порядке. Альфа-клиппинг создает жёсткие края, которые не могут быть сглажены, поэтому лучше всего подходит для визуализации многочисленных небольших предметов (таких как трава или листья деревьев).
Используйте выпадающий список Alpha Mode в настройках материала, чтобы выбрать между смешиванием и клиппингом.
![](files/transparency-maya/alpha-mode.jpg)
Аддитивный композитинг (рендеринг без буфера глубины)
«Вердж3Д» также предлагает специальный режим, для отключения буфера глубины во время рендеринга. Это приводит к отмене сравнения значений глубины пикселей перекрываемых полигонов. Такие полигоны будут визуализированы аддитивным способом, который иногда позволяет избавиться от артефактов альфа-смешения.
![](files/transparency-common/no-depth-writes.jpg)
Выберите Blend в выпадающем списке Alpha Mode и снимите флажок Depth Write в настройках материала, чтобы включить этот режим. Кроме того, вам нужно увеличить значение Rendering Order в параметрах объекта чтобы ваш прозрачный объект отрендерился первым.
Порядконезависимая прозрачность (OIT)
«Вердж3Д» позволяет использовать метод приближенной порядконезависимой прозрачности, который не требует рендеринга геометрии в отсортированном порядке, поэтому он избавляет от большинства артефактов альфа-смешения, без использования вышеперечисленных приёмов.
![Пример порядконезависимой прозрачности](files/transparency-common/oit-example.jpg)
Данную опцию можно активировать в панели настроек Verge3D Settings.
![Настройки Order-Independent Transparency в Майя](files/transparency-maya/oit.jpg)
Ограничения:
- OIT опция совместима только с WebGL 2, в противном случае эффекта не будет.
- OIT игнорируется зондами освещения в виде отражающих кубических текстур и в виде планарных отражений.
- Может плохо работать с объектами с высокой непрозрачностью.
- Не следует использовать вместе с MSAA (мультисемпловое сглаживание) в сценах с 2 и более непрозрачными объектами. Вместо этого вы можете использовать FXAA (быстрое приближенное сглаживание), которое полностью совместимо с OIT.
Прозрачность Standard Surface материалов
Прозрачность Standard Surface (или aiStandardSurface) материалов может быть настроена с помощью следующих параметров:
![](files/transparency-maya/standard-surface-transparency.jpg)
Параметры:
- Transmission Weight
- коэффициент пропускания тонкостенных и преломляющих материалов.
- Transmission Color
- цвет преломления (Thin Walled отключен) материала.
- Thin Walled
- использовать общие тонкостенные или основанные на преломлении прозрачности.
- Opacity
- коэффициент непрозрачности для тонкостенных материалов.
- Alpha Mode
- режим прозрачности материала.
- Depth Write
- отключение для аддитивного составления прозрачности (смотрите выше).
По умолчанию в «Майе» параметр Thin Walled не отмечен, что отключает наиболее типичный рендеринг прозрачности, который вы ожидали увидеть в интерактивном приложении. Всегда следите за этим параметром, когда имеете дело с прозрачными материалами Standard Surface.
Прозрачность glTF-совместимых PBR-материалов
Чтобы включить прозрачность для таких материалов, необходимо запечь карту прозрачности как 4 (альфа) компонент текстуры базового цвета и подключить Alpha выход этой текстуры к Opacity входу материала Standard Surface.
![](files/transparency-maya/gltf-compat-transparency.jpg)
Если текстура базового цвета недоступна, просто используйте неподключенный параметр Opacity.
Используйте выпадающий список Alpha Mode для выбора режима прозрачности.
Остались вопросы?
Задайте их на нашем форуме!