Смешение цветов и альфа-смешение

Экспериментируя с классом XNA BlendState, я обнаружил, что он имеет две группы состояний:
одну для альфа-смешивания и одну для смешения цветов. (как это называет фреймворк).

Изменяемые члены каждой группы называются *BlendFunction, *DestinationBlend и *SourceBlend
(где * заменяется либо Alpha, либо Color).

Я понимаю, как смешивать два цвета RGBA, и я предполагаю, что для этого предназначена функция смешивания цветов.


Какова цель этого "альфа-смешивания", которое, по-видимому, поддерживает XNA? Как это работает?

Разве все 4 компонента цвета, включая значение альфа-канала, не изменяются при смешивании цветов?


person Griffin    schedule 29.08.2012    source источник


Ответы (1)


Да, все четыре компонента смешиваются с помощью смешивания цветов. Альфа-смешивание позволяет вам установить пользовательское смешение, которое переопределит смешение цветов только для альфа-канала.

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

person Dervall    schedule 29.08.2012
comment
У вас есть примеры того, когда/как я мог бы применить это? - person Griffin; 29.08.2012
comment
Будет зависеть от того, какого эффекта вы пытаетесь достичь. На макушке вообще ничего не приходит в голову. Помните, что все это в основном удобные функции для самостоятельного написания шейдеров или вещи, изначально поддерживаемые старым оборудованием, которое не создает шейдеры самостоятельно. Использование шейдеров, вероятно, было бы более современным способом ведения дел, если вы знаете, что базовое оборудование будет его поддерживать, что следует учитывать, поскольку шейдеры уже давно устарели. - person Dervall; 29.08.2012
comment
@Dervall На самом деле смешивание по-прежнему является одной из немногих вещей, которые пока нельзя сделать с помощью программируемых шейдеров. - person Christian Rau; 29.08.2012