WebGL规范中缺少的gl.blendFunci函数的替代方法

时间:2018-06-08 14:36:58

标签: javascript webgl blending

我正忙着将一些OpenGL转换为WebGL但无法为WebGL中的OpenGL function gl.BlendFunci(...)找到解决方法。

我的浏览器控制台只是报告:

  

gl.blendFunci不是函数

在绘制到多个缓冲区时,我可以使用什么来设置不同的混合函数?

2 个答案:

答案 0 :(得分:0)

没有任何版本的WebGL能够为不同的帧缓冲渲染目标设置不同的混合函数。 OpenGL ES直到ES 3.2才提供此功能,桌面GL直到4.0才提供此功能。因此,如果没有能够为每个目标设置不同的混合参数,您可以渲染到多个目标并不出人意料。

答案 1 :(得分:0)

对我来说有用的是WebGL函数gl.blendFuncSeparate(...)

尽管它并没有完全符合BlendFunci(...)的作用,但它仍然适用于我,因为它允许我分别设置rgb和alpha混合功能。 (无论如何,这是我用BlendFunci(...)做的)

仔细检查这两个文件找到我的答案:

https://github.com/tsherif/webgl2examples/blob/master/oit.html

https://github.com/endavid/webGL-tests/blob/master/OIT/oit.js