Введение в программирование трехмерных игр с DX9

       

Коэффициеты смешивания


Задавая различные комбинации коэффициентов смешивания источника и приемника вы можете реализовать десятки различных эффектов. Поэкспериментируйте с различными комбинациями, чтобы увидеть что они делают. Чтобы установить коэффициент смешивания источника и коэффициент смешивания приемника надо задать значения режимов визуализации D3DRS_SRCBLEND и D3DRS_DESTBLEND соответственно. Например, мы можем написать:

Device->SetRenderState(D3DRS_SRCBLEND, Source); Device->SetRenderState(D3DRS_DESTBLEND, Destination);

где Source и Destination могут принимать значения одного из следующих коэффициентов смешивания:

D3DBLEND_ZERO — коэффициент смешивания = (0, 0, 0, 0)

D3DBLEND_ONE — коэффициент смешивания = (1, 1, 1, 1)

D3DBLEND_SRCCOLOR — коэффициент смешивания = (rs, gs, bs, as)

D3DBLEND_INVSRCCOLOR — коэффициент смешивания = (1 – rs, 1 – gs, 1 – bs, 1 – as)

D3DBLEND_SRCALPHA — коэффициент смешивания = (as, as, as, as)

D3DBLEND_INVSRCALPHA — коэффициент смешивания = (1 – as, 1 – as, 1 – as, 1 – as)

D3DBLEND_DESTALPHA — коэффициент смешивания = (ad, ad, ad, ad)

D3DBLEND_INVDESTALPHA — коэффициент смешивания = (1 – ad, 1 – ad, 1 – ad, 1 – ad)

D3DBLEND_DESTCOLOR — коэффициент смешивания = (rd, gd, bd, ad)

D3DBLEND_INVDESTCOLOR — коэффициент смешивания = (1 – rd, 1 – gd, 1 – bd, 1 – ad)

D3DBLEND_SRCALPHASAT — коэффициент смешивания = (f, f, f, 1), где f = min(as, 1 – ad)

D3DBLEND_BOTHINVSRCALPHA — Этот режим смешивания устанавливает коэффициент смешивания источника равным (1 – as, 1 – as, 1 – as, 1 – as), а коэффициент смешивания приемника равным (as, as, as, as). Его можно указывать только для режима визуализации D3DRS_SRCBLEND.

Значениями по умолчанию для коэффициента смешивания источника и коэффициента смешивания приемника являются D3DBLEND_SRCALPHA и D3DBLEND_INVSRCALPHA соответственно.



Содержание раздела