bm843 Operace alfa kanálu

Textury , Operace barvy


 

Při pokrývání povrchu objektu texturou je možné určit operaci, ktrá bude provedena mezi texturou a povrchem objektu. Operací i textur může být nastaveno až 8. Aktivní stupeň operace, který bude nastavován, se určuje prvkem stupeň , uplatňuje se pro aktivní objekt . Povolený počet stupňů lze zjistit čtením prvku stupeň .

 

Prvek operace alfa kanálu definuje operaci, která se bude provádět se složkou alfa . Podobně lze definovat operace s barvou pomocí prvku operace barvy . Operace alfa kanálu může mít následující hodnotu:

 

1         stupeň operace je vypnut, stejně tak všechny následující stupně

2         výstupem operace je argument 1 alfa kanálu

3         výstupem operace je argument 2 alfa kanálu

4         modulace, výstup = arg1 * arg2

5         modulace 2x, výstup = arg1 * arg2 * 2

6         modulace 4x, výstup = arg1 * arg2 * 4

7         součet, výstup = arg1 + arg2

8         součet se znaménkem, výstup = arg1 + arg2 - 0.5

9         součet se znaménkem 2x, výstup = (arg1 + arg2 - 0.5) * 2

10         rozdíl, výstup = arg1 - arg2

11         součet zjemněný, výstup = arg1+arg2 - arg1*arg2

12         průhlednost, alfa z barvy, výstup = arg1*(alfa) + arg2*(1-alfa)

13         průhlednost, alfa z textury, výstup = arg1*(alfa) + arg2*(1-alfa)

14         průhlednost, alfa z faktoru , výstup = arg1*(alfa) + arg2*(1-alfa)

15         průhlednost, přednásobené alfa z textury, výstup = arg1 + arg2*(1-alfa)

16         průhlednost, alfa z výsledku, výstup = arg1*(alfa) + arg2*(1-alfa)

17         předmodulace - modulace následujícím stupněm textury

 

Implicitně je pro stupeň 0 nastavena operace modulace (kód 4), ostatní stupně jsou vypnuty (kód 1).

 

Ne všechny operace jsou podporovány všemi rozhraními a videokartami. Rozhraní OpenGL umožňuje pouze operace výběr argumentu a modulaci (tj. operace 1 až 4), argumentem může být barva objektu nebo textura. Operace alfa kanálu jsou ignorovány. Rozhraní DirectX 5 podporuje kromě operací uvedených pro OpenGL navíc operaci součtu (7), operace 5, 6, 8 a 9 nahrazuje jinými variantami operací 4 a 7. Plná podpora operací je pouze pro DirectX 6 až 8 v závislosti na tom, zda jsou operace podporovány videokartou. Není-li požadovaná operace videokartou podporována, může být lepší variantou použití softwarového ovladače, který většinu operací podporuje.