2016-11-11 269 views
1

我遇到以下问题:尝试使用RenderPass渲染多个场景进行后期处理。使用THREE.Renderpass呈现多个场景

有2个场景现在:

1)地形+云

2)文字层

两个场景渲染,但在文字层被混合到地形(通常他们是否有呈现在同一场景中,它应该像这样)。奇怪的是:我可以看到云层中的文字比地形更高(地形和云层在同一场景中进行测试)You cann see the text above the clouds but it blends to the terrain

您看不到云层上方的文字,但它会混合地形

以使其我使用下面的代码:

@renderPass = new THREE.RenderPass(@scene, @camera) 
    @renderPass.renderToScreen = true 
    @renderPass.clear = false 
    @renderPass.clearDepth = true 

    @textPass = new THREE.RenderPass(@textScene, @camera) 
    @textPass.renderToScreen = true 
    @textPass.clear = false 
    @textPass.clearDepth = true 

@composer = new THREE.EffectComposer(@renderer); 

     @composer.addPass(@renderPass) 
     @composer.addPass(@textPass) 

但是,当我试着去使它们正常使用:

@renderer.clear() 
    @renderer.render @scene, @camera 
    @renderer.clearDepth(); 
    @renderer.render @textScene, @camera 

一切按预期工作。 enter image description here

回答

1

RenderPass实际上没有clearDepth选项。我打开一拉请求添加支持这一点,这应该解决您的问题:

https://github.com/mrdoob/three.js/pull/10159

更新:拉请求被合并,并列入R83版本,所以你所写的代码应现在的工作。