【问题标题】:Multiple mirrors in a three.js scene kills performanceThree.js 场景中的多个镜像会影响性能
【发布时间】: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

标签: three.js mirror


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-07-24
    • 2013-11-22
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多