Javascript 如何在Three.js中定义其他混合模式?

Javascript 如何在Three.js中定义其他混合模式?,javascript,three.js,blending,Javascript,Three.js,Blending,我想在Three.js中定义额外的混合模式,就像你可以在Photoshop中找到的那样。例如: material.blending = THREE[ "CustomBlending" ]; if(blendMode === "Lightest"){ material.blendEquation = THREE.MaxEquation; } if(blendMode === "Darkest"){ material.blendEquation = THREE.MinEquation

我想在Three.js中定义额外的混合模式,就像你可以在Photoshop中找到的那样。例如:

material.blending = THREE[ "CustomBlending" ];
if(blendMode === "Lightest"){
    material.blendEquation = THREE.MaxEquation;
}
if(blendMode === "Darkest"){
    material.blendEquation = THREE.MinEquation;
}
线性燃烧: 像素=(src+dst)-1.0

屏幕: 像素=(src+dst)-(src*dst)

我想添加的混合模式的完整列表及其方程式可以在以下链接中找到:

ThreeJs仅提供普通、加法、减法和乘法混合,而不使用自定义混合模式。然而,通过使用“自定义混合”和Three的混合方程式,可以轻松添加最亮和最暗的颜色。例如:

material.blending = THREE[ "CustomBlending" ];
if(blendMode === "Lightest"){
    material.blendEquation = THREE.MaxEquation;
}
if(blendMode === "Darkest"){
    material.blendEquation = THREE.MinEquation;
}
在此处阅读有关自定义混合方程式的更多信息:

我的问题是:如何定义附加混合方程?

我已经在Github上查看了三个src文件,特别是WebGLState.js,其中似乎定义了blendequation。下面是加法的定义:

if ( currentBlendEquation !== AddEquation || currentBlendEquationAlpha !== AddEquation ) {

    gl.blendEquation( gl.FUNC_ADD );

    currentBlendEquation = AddEquation;
    currentBlendEquationAlpha = AddEquation;

}
您可以在此处查看代码:

不过,我似乎找不到其他blendfunction的定义。有人能帮我吗?编辑三个.js src文件的最佳方法是什么?定义源和目标因子(material.blendSrc=THREE.SrcAlphaFactor;)是其中的一部分吗

谢谢