EffectComposer 第二遍 "overwrites" 第一遍
EffectComposer second pass "overwrites" first pass
我想在背景中渲染纹理,在前景中渲染 3d 场景。我用 effectcomposer 来做这个。
我的第一遍(背景)似乎是 "overwritten" 第二遍(场景)结果只有场景被绘制成黑色背景。看起来第二遍的背景没有画成透明或者透明度丢失了。
http://jsfiddle.net/mdwzx1f8/8/
var renderTex = new THREE.TexturePass(myTex);
var renderScene = new THREE.RenderPass(scene, camera);
composer.addPass(renderTex);
composer.addPass(renderScene);
var effectCopy = new THREE.ShaderPass(THREE.CopyShader);
effectCopy.renderToScreen = true;
composer.addPass(effectCopy);
我希望有人能快速浏览一下并指出正确的方向
提前致谢
更新:
2015 年 7 月 7 日
我尝试用 renderer.clear(false, true, false);
清除 zbuffer
在掩码上找到了一个 post,我看过但没有添加到
threejs 据我所知
https://github.com/mrdoob/three.js/issues/2448
2015 年 7 月 8 日
- 找到另一个有趣的页面https://github.com/mrdoob/three.js/issues/5979不确定这是否相关
- 更新了 fiddle 如果您注释第 53 行,您将看到第一遍,如果场景背景绘制为透明,则应该可见
threejs irc 频道的 Bobafett 帮助我解决了问题,他发现了我的问题,结果我打电话给:
renderer.autoClear = false;
而不是 renderer.autoClearColor = false;
这是修改后的工作 fiddle:
http://jsfiddle.net/mdwzx1f8/9/
我要感谢所有帮助我寻找解决方案的人
我想在背景中渲染纹理,在前景中渲染 3d 场景。我用 effectcomposer 来做这个。
我的第一遍(背景)似乎是 "overwritten" 第二遍(场景)结果只有场景被绘制成黑色背景。看起来第二遍的背景没有画成透明或者透明度丢失了。
http://jsfiddle.net/mdwzx1f8/8/
var renderTex = new THREE.TexturePass(myTex);
var renderScene = new THREE.RenderPass(scene, camera);
composer.addPass(renderTex);
composer.addPass(renderScene);
var effectCopy = new THREE.ShaderPass(THREE.CopyShader);
effectCopy.renderToScreen = true;
composer.addPass(effectCopy);
我希望有人能快速浏览一下并指出正确的方向
提前致谢
更新:
2015 年 7 月 7 日
我尝试用 renderer.clear(false, true, false);
清除 zbuffer
在掩码上找到了一个 post,我看过但没有添加到
threejs 据我所知
https://github.com/mrdoob/three.js/issues/2448
2015 年 7 月 8 日
- 找到另一个有趣的页面https://github.com/mrdoob/three.js/issues/5979不确定这是否相关
- 更新了 fiddle 如果您注释第 53 行,您将看到第一遍,如果场景背景绘制为透明,则应该可见
threejs irc 频道的 Bobafett 帮助我解决了问题,他发现了我的问题,结果我打电话给:
renderer.autoClear = false;
而不是 renderer.autoClearColor = false;
这是修改后的工作 fiddle: http://jsfiddle.net/mdwzx1f8/9/
我要感谢所有帮助我寻找解决方案的人