禁用WebGL gl.BLEND不起作用

时间:2017-06-15 02:04:48

标签: three.js webgl

我使用THREE.js并启用alpha canvas :(因为我需要在其他东西之上构建我的WebGL)

this.renderer = new THREE.WebGLRenderer({ canvas: this.canvas, antialias: false, alpha: true });

我设置了这样的清晰颜色:

this.renderer.setClearColor(0xffffff, 0.0);

在每一帧中:

_render () {
    renderer.clear();
    gl.disable(gl.BLEND);
    // ... something else doesn't need to be blended, whose alpha value is not 1.0
}

我很好奇为什么即使我禁用gl.BLEND,其他东西仍会与白色背景融为一体。

1 个答案:

答案 0 :(得分:0)

three.js控制混合。当您致电renderer.render时,它会为每种材料设置调用调用gl.enable(gl.BLEND),具体取决于该材料是否需要混合。

最重要的是,即使混合关闭,您也可以使用非1.0 alpha进行绘制,最终会使用可以透视背景的画布。