【发布时间】:2014-05-04 18:34:41
【问题描述】:
我有一个渲染设置,在调整浏览器窗口大小时出现调整大小问题。
我渲染了两个场景,其中一个用于应用了后处理效果的对象。对于效果,我使用示例目录中的 THREE.EffectComposer 和着色器。
然后借助另一个着色器示例将两个场景渲染相加混合。
请参阅以下简化设置:http://jsbin.com/hibum/18/edit?js,output (在 HTML 部分我包含了一些来自three.js 存储库的js 源代码)
如果您缩小输出面板,然后重新加载页面并再次加宽面板,您将看到如下内容:
主场景(蓝色球体)确实更新了其渲染大小,但效果场景(橙色球体)仍然具有相同的分辨率,只是放大了。
我找不到需要在浏览器调整大小事件中更新哪个渲染目标或渲染器(或着色器统一?)以在调整大小后仍然正确输出图像。
对于主要作曲家,它使用setSize() 调用,但如果我在效果作曲家上这样做,它不会渲染效果场景。
感谢任何帮助,谢谢。
【问题讨论】:
-
看看在three.js例子中
EffectComposer.reset()是如何使用的。 -
@WestLangley,如果我在我的 jsbin 示例中将
reset()添加到setSize()函数(在浏览器调整大小时调用的函数)内的主要或效果 EffectComposer 中,效果场景不是不再渲染,只有主场景... /edit: 只有main.reset();在这个函数中渲染两个场景,但对调整大小问题没有影响 -
好的,所以你必须弄清楚为什么它在 three.js 示例中可以正常工作,而不是你的代码。
-
@WestLangley 对,谢谢。重置两个作曲家后,我没有“重新附加”渲染目标。
标签: javascript three.js rendering