Dela via


Rendera mål alfa (Direct3D 9)

Rambuffertblandaren kan nu blanda alfakanaler oberoende av färgkanalsblandning på återgivningsmål. Den här kontrollen är aktiverad med ett nytt återgivningstillstånd, D3DRS_SEPARATEALPHABLENDENABLE.

När D3DRS_SEPARATEALPHABLENDENABLE är inställt på FALSE- (vilket är standardvillkoret) är blandningsfaktorerna och åtgärderna för återgivningsmål som tillämpas på alfa desamma som de som definierats för att blanda färgkanaler. En drivrutin måste ange D3DPMISCCAPS_SEPARATEALPHABLEND-gränsen för att indikera att den kan stödja alfablandning med återgivningsmål. Se till att aktivera D3DRS_ALPHABLEND för att tala om för pipelinen att alfablandning behövs.

För att styra faktorerna i alfakanalen för render-målblandarna definieras två nya återgivningstillstånd på följande sätt:

D3DRS_SRCBLENDALPHA 
D3DRS_DESTBLENDALPHA 

Precis som D3DRS_SRCBLEND och D3DRS_DESTBLEND kan dessa anges till ett av värdena i D3DBLEND uppräkning. Inställningar för käll- och målblandning kan kombineras på flera sätt, beroende på inställningarna i SrcBlendCaps- och DestBlendCaps-medlemmarna i D3DCAPS9.

Alfablandningen görs på följande sätt:

renderTargetAlpha = (alfai * srcBlendOp) BlendOp (alfart * destBlendOp)

Var:

  • alphai är indata alfa-värdet.
  • srcBlendOp är en av blandningsfaktorerna i D3DBLEND.
  • BlendOp är en av blandningsfaktorerna i D3DBLENDOP.
  • alphart är alfavärdet render-target.
  • destBlendOp är en av blandningsfaktorerna i D3DBLEND.
  • renderTargetAlpha är det slutliga blandade alfavärdet.

Alpha Blending