Установка режима смешивания в шейдере
Команда Blend определяет, каким образом GPU объединяет вывод шейдера фрагментов с целью рендеринга.
Функциональность этой команды зависит от операции смешивания, которую можно установить с помощью команды BlendOp. Обратите внимание, что в то время как смешивание само по себе поддерживается на всех графиках APIs и оборудовании, некоторые операции смешивания имеют более ограниченную поддержку.
Включение blending отключает некоторые оптимизации на GPU (в основном удаление скрытых поверхностей/Early-Z), что может привести к увеличению времени кадров GPU.
Общие типы смесей
Ниже приведен синтаксис для наиболее распространенных типов смешения:
Blend SrcAlpha OneMinusSrcAlpha // Traditional transparency
Blend One OneMinusSrcAlpha // Premultiplied transparency
Blend One One // Additive
Blend OneMinusDstColor One // Soft additive
Blend DstColor Zero // Multiplicative
Blend DstColor SrcColor // 2x multiplicative
Примеры
Shader "Examples/CommandExample"
{
SubShader
{
// The rest of the code that defines the SubShader goes here.
Pass
{
// Enable regular alpha blending for this Pass
Blend SrcAlpha OneMinusSrcAlpha
// The rest of the code that defines the Pass goes here.
}
}
}
Этот пример кода демонстрирует синтаксис для использования этой команды в блоке SubShader.
Shader "Examples/CommandExample"
{
SubShader
{
// Enable regular alpha blending for this SubShader
Blend SrcAlpha OneMinusSrcAlpha
// The rest of the code that defines the SubShader goes here.
Pass
{
// The rest of the code that defines the Pass goes here.
}
}
}