Прозрачность / Блендер

В этой статье мы покажем вам, как включать прозрачность для «Иви»/«Сайклз», а также ГЛТФ-совместимых материалов в «Блендере».

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

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

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

Разница между альфа-блендингом и альфа-клиппингом

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

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

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

Чтобы включить данный режим, отключите опцию Depth Write расположенную в окне настроек Verge3D Settings.

Порядок рендеринга (Z-индекс)

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

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

Парметр Render Order в Блендере

Поэтому, если требуется, чтобы прозрачные объекты на фоне которых в сцене присутствует другой объект, отображались корректно, установите любое отрицательное значение для объекта расположенного сзади.

Пример сцены с изменённым порядком рендеринга

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

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

Пример порядок-независимой прозрачности

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

Настройки Order-Independent Transparency в Блендере

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

Прозрачность для «Иви»-материалов

Прозрачность для «Иви»-материалов может быть включена посредством нод Transparent BSDF и Mix Shader. Чтобы регулировать значение альфа-канала, используйте коэффицент в ноде Mix Shader, для этого можно подключить ноду value или создать зависимость от ноды Fresnel для большей реалистичности.

Настройка режима прозрачности Иви

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

Также, для настройки прозрачности, вы можете использовать вход Alpha в ноде Principled BSDF.

Шейдер Principled BSDF с прозрачностью

Чтобы настроить прозрачность материала, на панели Settings доступны следующие параметры:

Прозрачность для ГЛТФ-совместимых материалов

Чтобы обеспечить прозрачность для таких материалов, добавьте альфа-маску в альфа-канал текстуры базового цвета. Также вы можете настроить альфа-канал, используя Alpha вход в ноде Principled BSDF.

Прозрачные ГЛТФ-материалы

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

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

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