Blending (Змішування)
Blending - один із етапів графічного конвеєра, який працює після виконання фрагментного (піксельного) шейдера та post Depth/Stencil тестів. Blending дозволяє змішувати отриманий в результаті розрахунків фрагментного шейдера колір і той колір, який знаходиться в буфері кадру. Змішування проводиться за формулою:
За наявності D3DPBLENDCAPS_BLENDFACTOR у DX або GL_EXT_blend_color у GL (в ядрі з версії 1.2) з'являються додаткові значення:
| Параметр | Назва в Direct3D10 | Назва в Direct3D9 | Назва в OpenGL | Доповнення |
| (Rc,Gc,Bc,Ac) | D3D10_BLEND_BLEND_FACTOR | D3DBLEND_BLENDFACTOR | GL_CONSTANT_COLOR | Покомпонентне множення на константний колір |
| (1-Rc,1-Gc,1-Bc,1-Ac) | D3D10_BLEND_INV_BLEND_FACTOR | D3DBLEND_INVBLENDFACTOR | GL_ONE_MINUS_CONSTANT_COLOR | Компонентне множення на інв. константний колір |
| (Ac,Ac,Ac,Ac) | D3D10_BLEND_BLEND_FACTOR | - | GL_CONSTANT_ALPHA | Компонентне множення на константну альфу |
| (1-Ac,1-Ac,1-Ac,1-Ac) | D3D10_BLEND_INV_BLEND_FACTOR | - | GL_ONE_MINUS_CONSTANT_ALPHA | Покомпонентне множення інв. константну альфу |
Для встановлення названих вище операцій та параметрів використовуються такі функції: Для включення блендингу
Але це ще всі можливості стадії змішування. Існують додаткові розширення, які дозволяють розділити операції над rgb кольором і альфою. Ця можливість називається separate alpha blend.При його включенні блендинг проводиться за формулами:
У GL роздільний блендинг встановлюється командою
Але це ще не все! Можна також встановити окремі blendOp's для rgb та альфи.
У GL це проводитиметься командою
Що таке Blending (Змішування)?