AddEquation 的奇怪效果
Weird effects with AddEquation
我正在尝试渲染多个径向渐变,目标是它们的颜色在它们重叠的地方相加。我为此做了一个非常简单的 three.js 代码,请参阅 fiddle here。
然而,我得到了意想不到的效果 - 重叠渐变的边界似乎使其他渐变 更暗,请参阅此屏幕截图中的黑线:
我不明白为什么会这样。如果我正确理解了 OpenGL 文档,GL_FUNC_ADD 应该简单地 add 组件值(而且,我假设,固定到 1.0)。我使用 GL_SRC_ALPHA 和 GL_ONE(或者更确切地说,它们在 three.js 中的等价物)用于 source/destination 因素,例如
const mat = new THREE.MeshBasicMaterial({
alphaMap: grad2,
blending: THREE.CustomBlending, // Similar with THREE.AdditiveBlending
blendEquation: THREE.AddEquation,
blendSrc: THREE.SrcAlphaFactor,
blendDst: THREE.OneFactor,
});
我错过了什么?
我认为它正在做你想做的事。边框不是更暗,而是其他区域更亮。
我正在尝试渲染多个径向渐变,目标是它们的颜色在它们重叠的地方相加。我为此做了一个非常简单的 three.js 代码,请参阅 fiddle here。
然而,我得到了意想不到的效果 - 重叠渐变的边界似乎使其他渐变 更暗,请参阅此屏幕截图中的黑线:
我不明白为什么会这样。如果我正确理解了 OpenGL 文档,GL_FUNC_ADD 应该简单地 add 组件值(而且,我假设,固定到 1.0)。我使用 GL_SRC_ALPHA 和 GL_ONE(或者更确切地说,它们在 three.js 中的等价物)用于 source/destination 因素,例如
const mat = new THREE.MeshBasicMaterial({
alphaMap: grad2,
blending: THREE.CustomBlending, // Similar with THREE.AdditiveBlending
blendEquation: THREE.AddEquation,
blendSrc: THREE.SrcAlphaFactor,
blendDst: THREE.OneFactor,
});
我错过了什么?
我认为它正在做你想做的事。边框不是更暗,而是其他区域更亮。