我使用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
,其他东西仍会与白色背景融为一体。
答案 0 :(得分:0)
three.js控制混合。当您致电renderer.render
时,它会为每种材料设置调用调用gl.enable(gl.BLEND)
,具体取决于该材料是否需要混合。
最重要的是,即使混合关闭,您也可以使用非1.0 alpha进行绘制,最终会使用可以透视背景的画布。