This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Режимы вывода изображения
Физика
Браузер SDK 2
Лицензирование и типы лицензий
Дополнения (Add-Ons)
Демонстрационные проекты
API Samples
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
Двойная точность координат
API
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы

Альфа-смешивание

Альфа-смешивание - это процесс объединения изображения с фоном для создания видимости частичной или полной прозрачности.

Формула смешивания#

Чтобы получить результирующий цвет путем альфа-смешивания, используется следующая формула:

ColorRes = ColorSrc * Src + ColorDest * Dest

ColorSrc соответствует цвету полигона (исходное изображение), а ColorDest соответствует цвету буфера экрана (целевое изображение). ColorRes - это результирующий цвет.

Если цвет имеет компонент Alpha, равный 0, он будет прозрачным. При значении Alpha 1 для создания цвета добавляются значения Red, Green и Blue. Для вычисления цвета в полупрозрачных областях используется линейная интерполяция.

Как и компонент Alpha, значения RGB также нормализуются.

Значения множителей Src и Dest#

Множители Src и Dest могут иметь следующие значения:

Name Description
None Смешивание не используется
Zero Компоненты RGBA соответствующего цвета умножаются на ноль
One Компоненты RGBA соответствующего цвета умножаются на единицу
Src color Компоненты RGBA соответствующего цвета умножаются на эти коэффициенты (для каждого компонента): (mR, mG, mB, mA)
One minus src color Компоненты RGBA соответствующих цветовых компонентов каждого цвета материала умножаются на эти коэффициенты (для каждого компонента): (1 - mR, 1 - mG, 1 - mB, 1 - mA)
Src alpha Компоненты RGBA соответствующего цвета умножаются на mA
One minus src alpha Компоненты RGBA соответствующего цвета умножаются на 1 - mA
Dest color Компоненты RGBA соответствующего цвета умножаются на эти коэффициенты (для каждого компонента): (bR, bG, bB, bA)
One minus dest color Компоненты RGBA соответствующего цвета умножаются на эти коэффициенты (для каждого компонента): (1 - bR, 1 - bG, 1 - bB, 1 - bA)
Dest alpha Компоненты RGBA соответствующего цвета умножаются на bA
One minus dest alpha Компоненты RGBA соответствующего цвета умножаются на 1 - bA

Где mR, mG, mB, mA - нормализованные материальные значения красного, зеленого, синего и альфа соответственно; ( br) bR, bG, bB, bA - это нормализованные значения красного, зеленого, синего и альфа-фона. соответственно.

Возможные комбинации#

В зависимости от комбинации множителей Src и Dest достигаются следующие эффекты:

1#

Src = None
Dest = None

Означает, что для материала нет альфа-смешивания. Объект становится полностью непрозрачным.

Никакого альфа-смешения. Основа для всех дальнейших комбинаций смешивания

2#

Src = One
Dest = One minus Src alpha

Результат: Альфа-смешивание

  • Непрозрачные области (alpha = 1) получают цвет материала.
  • Прозрачные области (alpha = 0) получают цвет буфера экрана.

Комбинация используется для создания эффекта прозрачности на основе альфа-компонента.

Альфа-смешанные частицы

3#

Src = Src alpha
Dest = One minus Src alpha

Результат: Стандартное альфа-смешивание

  • Непрозрачные области получают цвет материала, но они темнее и меньше по размеру, если сравнивать с предыдущим вариантом.
  • Области затухания альфа-градиента затемнены.
  • Прозрачные области получают цвет буфера экрана.

Стандартное альфа-смешивание. Обратите внимание на темную бахрому

4#

Src = Src color
Dest = One minus Src alpha

Результат:

  • Непрозрачные области также меньше и даже темнее и контрастнее по сравнению со вторым и третьим вариантами.
  • Области затухания альфа-градиента затемнены.
  • Прозрачные области получают цвет буфера экрана.

5#

Src = Src color
Dest = One minus Src color

Результат:

  • Непрозрачные области небольшие и имеют перевернутый цвет.
  • Области затухания альфа-градиента затемнены.
  • Прозрачные области получают цвет буфера экрана.
  • Полностью черный рассеянный цвет материала приведет к рендерингу в цвете буфера экрана.

6#

Src = Src alpha
Dest = One

Результат: добавление альфа-зависимого цвета

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

7#

Src = Src color
Dest = Dest alpha

Результат: почти такой же, как у предыдущего варианта, но немного менее яркий и менее четкий цвет материала

8#

Src = One
Dest = One

Результат: Добавление цвета

  • В перекрывающихся непрозрачных областях цвет материала добавляется сам к себе.
  • Области затухания альфа-градиента яркие и отчетливые.
  • Прозрачные области получают цвет буфера экрана.
  • Полностью черный рассеянный цвет материала приведет к рендерингу в цвете буфера экрана.

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

9#

Src = Zero
Dest = Src color

Src = Dest color
Dest = Zero

Результат (для обоих вариантов): Умножение

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

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

10#

Src = One minus Src color
Dest = Dest alpha

Результат:

  • При небелом цвете полностью непрозрачная область кажется маленькой и получает перевернутый цвет. В области затухания альфа-градиента он меняется на суммированный цвет. Наложение слоев приводит к усилению цвета.
  • Если цвет рассеянного материала белый, полностью непрозрачные области ядра получают цвет буфера экрана, который меняется на суммированный цвет по мере исчезновения альфа-градиента.
  • Прозрачные области имеют цвет экранного буфера.
  • Изменение множителя рассеянного цвета изменяет размер основных областей (размер кольца на рисунке).
  • Полностью черный рассеянный цвет материала приведет к рендерингу в цвете буфера экрана.

Множители рассеянного цвета материала: 1 (слева) и 1.5 (справа)

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

11#

Src = One minus Src color
Dest = One minus Src color

Результат: аналогично предыдущей комбинации , со следующими исключениями:

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

И следующие характеристики остаются прежними:

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

Множители рассеянного цвета материала: 1 (слева) и 1,5 (справа)

Если цвет рассеянного материала белый, то перевернутая непрозрачная сердцевина черная

12#

Src = One minus Dest color
Dest = Dest Alpha

Результат:

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

13#

Src = One minus Dest color
Dest = One minus Src alpha

Результат:

  • В перекрывающихся областях инверсия цвета буфера экрана становится все более заметной с увеличением количества слоев.
  • Прозрачные области имеют цвет экранного буфера.

14#

Src = One minus Dest color
Dest = One minus Src color

Результат:

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

15#

Src = Dest color
Dest = Dest alpha

Результат:

  • Эта комбинация больше подходит для материалов белого или ярких (ценных) рассеянных цветов. В противном случае оттенок цвета материала не будет виден.
  • Прозрачные области имеют цвет экранного буфера.

16#

Src = Dest color
Dest = Dest color

Результат:

  • Непрозрачные области получают суммарный цвет материала и буфера экрана.
  • Прозрачные области имеют тот же цвет экрана — более темный и насыщенный.
  • В перекрывающихся областях цвет материала как непрозрачных, так и прозрачных (в соответствии с альфа-компонентом) областей усиливается.

Последнее обновление: 16.08.2024
Build: ()