Вердж3Д для Майи: Прозрачность — Софт Эйт Софт
Description: Узнайте, какие виды прозрачности можно включить для материалов Майя и использовать в Вердж3Д.

# Прозрачность / Майя

Здесь мы покажем, как включить прозрачность для Standard Surface, OpenPBR и glTF-совместимых PBR материалов в «Майе».

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

- Альфа-блендинг и альфа-клиппинг
- Аддитивный композитинг (рендеринг без буфера глубины)
- Порядконезависимая прозрачность (OIT)
- Прозрачность Standard Surface материалов
- Прозрачность glTF-совместимых PBR-материалов

#

## Альфа-блендинг и альфа-клиппинг

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

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

Используйте выпадающий список Alpha Mode в настройках материала, чтобы выбрать между смешиванием и клиппингом.

Также имеется вариация метода Mask, называемая Coverage. Она использует MSAA-рендеринг для улучшения качества рендеринга клиппинг-прозрачности.

#

## Аддитивный композитинг (рендеринг без буфера глубины)

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

Выберите Blend в выпадающем списке Alpha Mode и снимите флажок Depth Write в настройках материала, чтобы включить этот режим. Кроме того, вам нужно увеличить значение Render Order в параметрах объекта чтобы ваш прозрачный объект отрендерился первым.

#

## Порядконезависимая прозрачность (OIT)

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

Данную опцию можно активировать в диалоге настроек экспорта Verge3D Export Settings.

Ограничения:

- OIT опция совместима только с WebGL 2, в противном случае эффекта не будет.
- OIT игнорируется зондами освещения в виде отражающих кубических текстур и в виде планарных отражений.
- Может плохо работать с объектами с высокой непрозрачностью.
- Не следует использовать вместе с MSAA (мультисемпловое сглаживание) в сценах с 2 и более непрозрачными объектами. Вместо этого вы можете использовать FXAA (быстрое приближенное сглаживание), которое полностью совместимо с OIT.

#

## Прозрачность Standard Surface материалов

Прозрачность Standard Surface, aiStandardSurface, а также OpenPBR Surface материалов может быть настроена с помощью следующих параметров:

Параметры:

Transmission Weight
  Коэффициент пропускания тонкостенных и преломляющих материалов.
Transmission Color
  Цвет преломления (Thin Walled отключен) материала.
Thin Walled
  Использовать общие тонкостенные или основанные на преломлении прозрачности.
Opacity
  Коэффициент непрозрачности для тонкостенных материалов.
Alpha Mode
  Режим прозрачности материала.
  Auto
    Проанализировать материал и выбрать один из двух методов: Opaque (непрозрачный) или Blend (альфа-блендинг).
  Opaque
    Не использовать прозрачность.
  Blend
    Альфа-блендинг (см. выше).
  Mask
    Прозрачность в виде маски (альфа-клиппинг) (см. выше).
  Coverage
    Хеш-прозрачность, или прозрачность частичного перекрытия. Этот метод является промежуточным между клиппингом и блендингом. По сути это расширение метода маски, использующее мульти-самплинг.
  Add
    Прозрачность на основе аддитивиного композитинга (см. выше).
Transparency Hack
  Включить один из двух специализированных режимов для борьбы с артефактами прозрачности:
  Nearest Layer
    Рендерить только ближайший к камере слой с помощью вспомогательного буфера глубины (техника "depth prepass").
  Two-Pass
    Рендерить сначала обратную сторону объектов, а потом прямую. Техника работает только для двусторонних материалов (опция Two Sided должна быть включена).
  Обе техники уменьшают производительность, поэтому используйте их только когда это реально необходимо.
Depth Write
  Отключение для аддитивного составления прозрачности (смотрите выше).

По умолчанию в «Майе» параметр Thin Walled не отмечен, что отключает наиболее типичный рендеринг прозрачности, который вы ожидали увидеть в интерактивном приложении. Всегда следите за этим параметром, когда имеете дело с прозрачными материалами.

#

## Прозрачность glTF-совместимых PBR-материалов

Чтобы включить прозрачность для таких материалов, необходимо запечь карту прозрачности как 4 (альфа) компонент текстуры базового цвета и подключить Alpha выход этой текстуры к Opacity входу материала Standard Surface.

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

Используйте выпадающий список Alpha Mode для выбора режима прозрачности из списка поддерживаемых: Auto, Opaque, Blend и Mask.

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

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