Прозрачность / 3дс Макс
Здесь мы покажем, как включить и настроить прозрачность «3дс Макс»-материалов Physical, OpenPBR, Standard и glTF-совместимых.
Данная функциональность используется в демо-приложении «Прозрачность» (исходные файлы доступны в магазине ассетов).
- Альфа-блендинг и альфа-клиппинг
- Аддитивный композитинг (рендеринг без буфера глубины)
- Порядконезависимая прозрачность (OIT)
- Прозрачность физических материалов
- Прозрачность стандартных материалов
- Прозрачность glTF-совместимых PBR-материалов
Альфа-блендинг и альфа-клиппинг
«Вердж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.
Ограничения:
- OIT опция совместима только с WebGL 2, в противном случае эффекта не будет.
- OIT игнорируется зондами освещения в виде отражающих кубических текстур и в виде планарных отражений.
- Может плохо работать с объектами с высокой непрозрачностью.
- Не следует использовать вместе с MSAA (мультисемпловое сглаживание) в сценах с 2 и более непрозрачными объектами. Вместо этого вы можете использовать FXAA (быстрое приближенное сглаживание), которое полностью совместимо с OIT.
Прозрачность физических материалов
Прозрачность физических (а также 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.
Остались вопросы?
Задайте их на нашем форуме!