Udostępnij za pośrednictwem


Renderuj docelową alfa (Direct3D 9)

Blender ramek może teraz mieszać kanały alfa niezależne od łączenia kanałów kolorów na elementach docelowych renderowania. Ta kontrolka jest włączona z nowym stanem renderowania, D3DRS_SEPARATEALPHABLENDENABLE.

Gdy D3DRS_SEPARATEALPHABLENDENABLE jest ustawiona na wartość false (co jest warunkiem domyślnym), czynniki i operacje łączenia elementów docelowych renderowania stosowane do alfa są takie same jak te zdefiniowane dla kanałów kolorów mieszanych. Sterownik musi ustawić limit D3DPMISCCAPS_SEPARATEALPHABLEND, aby wskazać, że może obsługiwać mieszanie alfa elementu docelowego renderowania. Pamiętaj, aby włączyć D3DRS_ALPHABLEND, aby poinformować potok, że wymagane jest mieszanie alfa.

Aby kontrolować czynniki w kanale alfa blenderów render-target, dwa nowe stany renderowania są definiowane w następujący sposób:

D3DRS_SRCBLENDALPHA 
D3DRS_DESTBLENDALPHA 

Podobnie jak D3DRS_SRCBLEND i D3DRS_DESTBLEND, można je ustawić na jedną z wartości w wyliczenie D3DBLEND. Ustawienia mieszania źródłowego i docelowego można łączyć na kilka sposobów, w zależności od ustawień w elementach członkowskich SrcBlendCaps i DestBlendCaps D3DCAPS9.

Mieszanie alfa odbywa się w następujący sposób:

renderTargetAlpha = (alphain * srcBlendOp) BlendOp (alphart * destBlendOp)

Gdzie:

  • alfa w jest wartością wejściową alfa.
  • srcBlendOp jest jednym z czynników mieszanych w D3DBLEND.
  • BlendOp jest jednym z czynników mieszania w D3DBLENDOP.
  • alfart jest wartością alfa docelową renderowania.
  • destBlendOp jest jednym z czynników mieszania w D3DBLEND.
  • renderTargetAlpha jest ostateczną wartością mieszaną alfa.

Alfa Blending