Javascript 如何在Three.js中定义其他混合模式?
我想在Three.js中定义额外的混合模式,就像你可以在Photoshop中找到的那样。例如: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
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;)是其中的一部分吗
谢谢