2017-08-31 111 views
2

根据three.js中的mirror example,我重新创建了一个很好的旧电影放映机praxinoscope,其中一列镜像反映了一小段图像,以创建幻像运动。three.js场景中的多个镜像杀死了性能

在three.js的84版本中,这很有效。

实例:采用V84:https://codepen.io/Sphinxxxx/pen/eEbjba enter image description here

在85版本然而,有一些变化Mirror.js,并在以后的版本中所有的镜子(在这种情况下,8个镜子)使praxinoscope很慢(低FPS)。

实例:采用V87:https://codepen.io/Sphinxxxx/pen/vJvozR enter image description here

我怀疑缓慢的性能有不少递归调用和不必要的渲染开始呼吁从Mirror.js一个onBeforeRender()功能做。堆栈跟踪:

enter image description here

如果你在看代码,创建并在addMirrorAndImage()功能附加镜。有没有更好的方法来添加镜像或其他一些可以提供与旧版本(v85之前版本)相同性能的技巧?

+0

如果你觉得有理由相信出现了three.js所回归,它将这个文件作为three.js网站上的错误报告进行归档是适当的。 – WestLangley

+0

@WestLangley - 谢谢,我提交了一个问题:https://github.com/mrdoob/three.js/issues/12098 – Sphinxxx

回答