我需要在alpha通道中进行单独混合但不起作用。
让我用我的测试来解释。
启用了Alpha混合,我将color和alpha write mask设置为true。
1)我正在使用glClear(0,0,0,1)
清除缓冲区2)我正在绘制一个大的2D四边形,它的颜色混合到一半,并且将#34;目标alpha值设置为零" ( - >这是我需要实现的!) Src颜色为(1,1,1,0.5)
以下是我正在设置的混合参数
transparencyData.color_blendfunc = BlendInfo.BLEND_FUNC_ADD
transparencyData.alpha_blendfunc = BlendInfo.BLEND_FUNC_ADD
transparencyData.colorSrc_blendfactor = BlendInfo.BLEND_FACTOR_SRC_ALPHA
transparencyData.colorDst_blendfactor = BlendInfo.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA
transparencyData.alphaSrc_blendfactor = BlendInfo.BLEND_FACTOR_ZERO
transparencyData.alphaDst_blendfactor = BlendInfo.BLEND_FACTOR_ZERO
3)我在上面的四边形内画了一个较小的2D四边形 Src颜色为(1,1,1,1) 以下是我设置的混合参数
transparencyData.color_blendfunc = BlendInfo.BLEND_FUNC_ADD
transparencyData.alpha_blendfunc = BlendInfo.BLEND_FUNC_ADD
transparencyData.colorSrc_blendfactor = BlendInfo.BLEND_FACTOR_ONE_MINUS_DST_ALPHA
transparencyData.colorDst_blendfactor = BlendInfo.BLEND_FACTOR_DST_ALPHA
transparencyData.alphaSrc_blendfactor = BlendInfo.BLEND_FACTOR_ONE
transparencyData.alphaDst_blendfactor = BlendInfo.BLEND_FACTOR_ZERO
现在,当步骤2渲染的四边形显示为半混合时,我想要的目标是将目标的最终alpha值设置为零,这种情况不会发生。 我怎么知道这是因为如果目标alpha为零,则在步骤3中呈现的四边形应该出现,如果目标alpha为1则不会出现。 这让我相信可能发生的alpha混合不起作用并写入目的地或者我做的事情不对!
我为此目的使用glBlendEquationSeparate和glBlendFuncSeparate。
你可以请光明并帮助我做我想做的事吗?