three.js EffectComposer浏览器窗口调整大小问题

时间:2014-05-04 18:34:42

标签: javascript three.js rendering

我有一个渲染设置,当调整浏览器窗口大小时会出现调整大小问题。

我渲染了两个场景,其中一个场景用于应用了后处理效果的对象。对于效果,我使用示例目录中的THREE.EffectComposer和着色器。

然后在另一个着色器示例的帮助下,将两个场景渲染相加混合。


请参阅以下简化设置:http://jsbin.com/hibum/18/edit?js,output (在HTML部分中我包含了来自three.js存储库的一些js源代码)

如果缩小输出面板,然后重新加载页面并再次加宽面板,您将看到如下内容:

The second scene rendering did not update correctly

主场景(蓝色球体)确实更新了渲染大小,但效果场景(橙色球体)仍具有相同的分辨率,只是放大了。

我无法找到需要在浏览器调整大小事件中更新哪个渲染目标或渲染器(或着色器制服?),以便在调整大小后仍能正确输出图像。

对于主要作曲家,它适用于setSize()调用,但如果我在效果作曲家上执行此操作,则无法渲染效果场景。

感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

我必须重置两个EffectComposers,然后重置AdditiveBlendShader的tDiffuse2制服:

main.reset();  
effects.reset();  

blend.uniforms.tDiffuse2.value = effects.renderTarget2;

请参阅http://jsbin.com/hibum/23/edit?js,output