Прозрачность / 3дс Макс

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Прозрачность физических материалов

Прозрачность физических (а также OpenPBR) материалов можно настроить с помощью одноименного параметра материала.

Параметры:

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

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

Любая комбинация карт и изображений может быть использована для влияния на прозрачность через вход Transparency Map.

Прозрачность стандартных материалов

Прозрачность стандартных материалов можно настроить с помощью параметра Opacity в настройках материала.

Вход Opacity стандартных материалов можно использовать для создания интересных зависимостей для большей реалистичности.

В качестве входных данных можно использовать изображение с информацией о прозрачности в альфа-канале. Вместо него можно также использовать отдельное альфа-изображение.

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

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

Чтобы включить прозрачность для таких материалов, необходимо использовать отдельную альфа-карту, связанную с входом Transparency Map физического материала.

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

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

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