Я не слишком много использовал Java, но, основываясь на белой книге от 1984 , это должно быть довольно простое отображение режимов смешивания состояний рендеринга.
Конечно, вы можете сделать больше, чем просто это, например, нормальное альфа-смешивание (SourceAlpha, InvSourceAlpha) или добавку (One, One) и многие другие. (Я полагаю, что вы спрашиваете об этом именно потому, что переносите некоторые существующие функции? В связи с этим вас могут не волновать другие комбинации ...)
В любом случае, они предполагают, что BlendOperation - Add, а AlphaBlendEnable - true.
Очистить
SourceBlend = Zero
DestinationBlend = Zero
A
SourceBlend = One
DestinationBlend = Zero
B
SourceBlend = Zero
DestinationBlend = One
А над В
SourceBlend = One
DestinationBlend = InvSourceAlpha
B более A
SourceBlend = InvDestinationAlpha
DestinationBlend = One
A в B
SourceBlend = DestinationAlpha
DestinationBlend = One
B в A
SourceBlend = Zero
DestinationBlend = SourceAlpha
A out B
SourceBlend = InvDestinationAlpha
DestinationBlend = Zero
B out A
SourceBlend = Zero
DestinationBlend = InvSourceAlpha
поверх B
SourceBlend = DestinationAlpha
DestinationBlend = InvSourceAlpha
B поверх A
SourceBlend = InvDestinationAlpha
DestinationBlend = SourceAlpha
A xor B
SourceBlend = InvDestinationAlpha
DestinationBlend = InvSourceAlpha
Объединение их в цепочку немного сложнее и потребует либо нескольких проходов, либо нескольких текстурных входов в шейдер.