将gl.blendFunc / gl.blendEquation参数转换为gl.blendFuncSeparate / gl.blendEquationSeparate

时间:2017-01-05 17:23:49

标签: webgl opengl-es-2.0

gl.blendFunc(A,B)gl.blendFuncSeparate(A,B,A,B)gl.blendFuncSeparate(A,B,ONE,ZERO)相同吗?

gl.blendEquation(A)gl.blendEquation(A,A)gl.blendEquation(A,FUNC_ADD)相同?

是否有关于此参数转换的文档?

2 个答案:

答案 0 :(得分:1)

gl.blendFunc(A,B)

完全等于

gl.blendFunc(A,B,A,B)

来自https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/blendFuncSeparate

上的功能页面

我们可以看到函数的语法

void gl.blendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);

如果您认为这些参数作为常数与相应的参数名称相乘,例如

,则会有所帮助
gl.blendFuncSeparate(SRC_ALPHA,  //sourcRGB will be multiplied by SRC_ALPHA
ONE_MINUS_SRC_ALPHA,             //destinationRGB will be multiplied by ONE_MINUS_SRC_ALPHA 
SRC_ALPHA,                       //sourceALPHA will be multiplied by SRC_ALPHA
ONE_MINUS_SRC_ALPHA);            //destinationALPHA will be multiplied by ONE_MINUS_SRC_ALPHA

同样适用于gl.blendEquation()和blendEquationSeparate(),其中您可以为RGB颜色和alpha值指定不同的方程式,默认情况下,在gl.blendEquation中,相同的方程式应用于rgb和alpha值。 / p>

要更好地了解整个opengl混合系统如何工作,请从andersriggelsen.dk检查这个伟大的网页 http://andersriggelsen.dk/glblendfunc.php

答案 1 :(得分:0)

来自man pages

  

此功能将RGB混合方程和alpha混合方程设置为单个方程式。

     

每种方法都定义了四个比例因子,分别为红色,绿色,蓝色和alpha。

因此,第一个选项:gl.blendFunc(A, B)gl.blendFuncSeparate(A, B, A, B)相同。