Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在WebGL中实现各种GlobalComposite操作?_Javascript_Html5 Canvas_Webgl_Light - Fatal编程技术网

Javascript 如何在WebGL中实现各种GlobalComposite操作?

Javascript 如何在WebGL中实现各种GlobalComposite操作?,javascript,html5-canvas,webgl,light,Javascript,Html5 Canvas,Webgl,Light,我正在将我的项目从Javascript画布迁移到Javascript WebGL 在我的代码的某些部分中,我使用Canvas来处理诸如照明和雾之类的事情 现在我正在使用WebGL,我不再能够访问这些,而是能够访问。我特别希望从Canvas迁移到WebGL的全局合成操作是soft light,但存在两个问题: 我在混合函数列表中没有看到该项 我不确定在哪里可以找到柔和灯光的源代码,因此我不知道如何模拟它 我想我的问题分为两部分。第一,是否有任何来源列出了各种全局复合操作是如何实现的,如果有,是

我正在将我的项目从Javascript画布迁移到Javascript WebGL

在我的代码的某些部分中,我使用Canvas来处理诸如照明和雾之类的事情

现在我正在使用WebGL,我不再能够访问这些,而是能够访问。我特别希望从Canvas迁移到WebGL的全局合成操作是
soft light
,但存在两个问题:

  • 我在混合函数列表中没有看到该项

  • 我不确定在哪里可以找到
    柔和灯光
    的源代码,因此我不知道如何模拟它

  • 我想我的问题分为两部分。第一,是否有任何来源列出了各种全局复合操作是如何实现的,如果有,是否有相应的WebGL实现?如果没有,我如何将
    柔和灯光
    转换为WebGL混合功能,以便在我的应用程序中使用

    也就是说,在画布中,我会这样做:

    context.globalCompositeOperation = 'soft-light';
    
    // draw images
    
    context.globalCompositeOperation = 'source-over'; // reset back to default
    
    WebGL中的等价物是什么?类似于。。(这很接近,但不准确)

    gl.blendFunc(gl.DST_COLOR, gl.ONE_MINUS_SRC_ALPHA);
    
    // draw images
    
    gl.blendFunc(gl.ONE, gl.ZERO); // reset back to default