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

Alternative approach for gl.blendFunci function that is missing from WebGL spec

我正忙于将一些 OpenGL 转换为 WebGL,但无法获得 WebGL 内部 OpenGL function gl.BlendFunci(...) 的解决方法。

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

gl.blendFunci is not a function

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

没有任何版本的 WebGL 能够为不同的帧缓冲区渲染目标设置不同的混合函数。 OpenGL ES 直到 ES 3.2 才提供此功能,桌面 GL 直到 4.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