1

在 _D3DRENDERSTATETYPE 结构中的 d3d9types.h 中,最后 3 种类型是:

D3DRS_SRCBLENDALPHA             = 207,  /* SRC blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */
D3DRS_DESTBLENDALPHA            = 208,  /* DST blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */
D3DRS_BLENDOPALPHA              = 209,  /* Blending operation for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */

请注意,它提到如果“D3DRS_SEPARATEDESTALPHAENABLE 为 TRUE”,将使用这些,但是结构中没有 D3DRS_SEPARATEDESTALPHAENABLE。最接近的似乎是:“D3DRS_SEPARATEALPHABLENDENABLE”,但我完全不确定这是否是同一件事。

所以我只是想知道最后三个渲染状态应该设置为 true 才能实际工作(如果有的话?),我强烈认为它是 D3DRS_SEPARATEALPHABLENDENABLE 但希望有人确认?

4

1 回答 1

2

是的,D3DRS_SEPARATEALPHABLENDENABLE。好像评论里有错别字。

从 DXSDK:

D3DRS_SRCBLENDALPHA

D3DBLEND 枚举类型的成员之一。除非 D3DRS_SEPARATEALPHABLENDENABLE 为真,否则忽略此值。默认值为 D3DBLEND_ONE。

D3DRS_DESTBLENDALPHA

D3DBLEND 枚举类型的成员之一。除非 D3DRS_SEPARATEALPHABLENDENABLE 为真,否则忽略此值。默认值为 D3DBLEND_ZERO。

D3DRS_BLENDOPALPHA

当渲染状态 D3DRS_SEPARATEALPHABLENDENABLE 设置为 TRUE 时,用于选择应用于单独 Alpha 混合的算术运算的值。

有效值由 D3DBLENDOP 枚举类型定义。默认值为 D3DBLENDOP_ADD。如果不支持 D3DPMISCCAPS_BLENDOP 设备功能,则执行 D3DBLENDOP_ADD。请参阅 D3DPMISCCAPS。

于 2009-07-28T06:26:38.777 回答