【发布时间】:2017-08-31 21:23:08
【问题描述】:
基于三个.js 中的mirror example,我重新创建了一个很好的旧praxinoscope“电影放映机”,其中一列镜子反射一小段图像以产生运动的错觉。
在 three.js 的 84 版中,这工作得很好。
使用 v84 的示例:https://codepen.io/Sphinxxxx/pen/eEbjba
然而,在 85 版中,Mirror.js 发生了一些变化,在以后的版本中,所有镜像(在本例中为 8 个镜像)使 praxinoscope 非常慢(低 FPS)。
使用 v87 的示例:https://codepen.io/Sphinxxxx/pen/vJvozR
我怀疑性能缓慢与大量递归调用和不必要的渲染有关,从Mirror.js 调用onBeforeRender() 函数开始。堆栈跟踪:
如果您查看代码,则会在addMirrorAndImage() 函数中创建并添加镜像。有没有更好的方法来添加镜像,或者其他一些技巧可以提供与旧版本(pre v85)相同的性能?
【问题讨论】:
-
如果您有足够的信心认为存在 three.js 回归,则可以将其作为 bug 报告提交到 three.js 网站。
-
@WestLangley - 谢谢,我已经提交了一个问题:github.com/mrdoob/three.js/issues/12098