在 Viewport 2.0 中,分别为 RGB 通道和 Alpha 通道指定混合。该行为不同于默认渲染器和高质量渲染器的行为,其中 RGB 和 Alpha 共享一组混合参数。          

编写插件时,使用 MHWRender::MBlendStateDesc 混合状态类指定您的混合。          

设定源、目标混合和 Alpha 混合,并设定要添加的混合操作。混合因子应设定为 1、1、1、1。          

以下示例取自 Maya API Devkit 中提供的 hwPhongShader 节点插件。          

若要通过内置 cgfx 插件示例设置同一状态,请指定以下过程状态:          

BlendFunc = int2( SrcAlpha, OneMinusSrcAlpha);BlendFuncSeparate = int4( SrcAlpha, OneMinusSrcAlpha, One, OneMinusSrcAlpha);BlendEquationSeparate = int2( Add, Add );BlendColor = float4(1.0f,1.0f,1.0f,1.0f);

其中:          

  • BlendColor 对应于 blendFactor

  • BlendFuncSeperate 对应于 sourceBlenddestinationBlendalphaSourceBlendalphaDestinationBlen

  • BlendEquationSeparate 对应于 blendOperationalphaBlendOperation

在 MBlendStateDesc 结构中。          

用于绘制透明度的默认混合是 { source alpha, 1-source alpha },如以下示例所示。          

,