three.js 场景中的多个镜像会降低性能

Multiple mirrors in a three.js scene kills performance

基于 mirror example in three.js, I have recreated a good old praxinoscope "movie projector",其中一列镜子反射一小段图像以营造运动的错觉。

在 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() 函数中创建并添加镜像。是否有更好的方法来添加镜像,或提供与旧版本(v85 之前)相同性能的其他技巧?

已在 v88 中修复(Mirror 重命名为 Reflector):https://codepen.io/Sphinxxxx/pen/dZYKwP