Image bm840.GIF Operace barvy
Textury, Operace alfa kanálu
 
Při pokrývání povrchu objektu texturou je možné určit operaci, která 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 barvy definuje operaci, která se bude provádět se složkami barvy. Podobně lze definovat operace s alfa kanálem pomocí prvku operace alfa kanálu. Operace barvy 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 barvy
3 výstupem operace je argument 2 barvy
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
18 modulace alfa z arg1, výstup = arg1 + alfa1*arg2
19 modulace s přičtením alfa z arg1, výstup = arg1*arg2 + alfa1
20 inverzní modulace alfa z arg1, výstup = arg1 + (1-alfa1)*arg2
21 inverzní modulace s přičtením alfa z arg1, výstup = (1-arg1)*arg2 + alfa1
 
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.

Plný html kontextový help Petra - Gemtree Software & Dětské programování
Full Html Context Help of The Peter - Gemtree Software & Children Programming