我想要一个带有透明背景的threejs画布。我正在创建这样的渲染器:
# coffeescript
r = new THREE.WebGLRenderer alpha: true
当我调用 时r.render()
,它按预期工作,对象出现在透明背景上。但是,当我尝试像这样使用 EffectComposer 添加后处理时:
cmp = new THREE.EffectComposer r
cmp.addPass new THREE.RenderPass scene, camera
effect = new THREE.FilmPass 0.9, 2, 2048, true
effect.renderToScreen = true
cmp.addPass effect
cmp.render 3
新的结果是场景按预期渲染(对象正确应用了电影效果),除了背景不再像期望的那样透明......而是黑色和不透明。为什么?如何防止后期处理篡改我的透明背景?