【发布时间】:2012-08-17 22:52:09
【问题描述】:
我一直在试验Greensock's TweenMax JS 和Three.js。由于两个库都使用 requestAnimationFrame (rAF),我需要决定哪个库应该处理这个问题。
如果我使用Three.js 内置的 rAF,它的运行速度约为 30fps,并且非常流畅。
如果我使用TweenMax,例如:TweenMax.ticker.addEventListener('tick', animate);,它的运行速度约为 55-60fps,但有点不稳定。
我可以将 TweenMax 中的 fps 更改为 TweenMax.ticker.fps(30);,正如预期的那样,它的运行类似于 Three.js rAF 版本。
我的问题是哪种方法更受欢迎,哪种方法被认为是最佳实践?另外,如果我选择 Three.js,我是否可以在其 rAF 实现中更改 fps?
最后,您将如何决定 fps 以适应更广泛的受众?限制为 30fps 似乎没问题,但有点武断,一些用户的速率可能比我允许的高得多。
更新:
根据 mrdoob 和 jack 的反馈,我已经在 three.js 中尝试 rAF 和使用 TweenMax 的 rAF,开启和关闭抗锯齿。
抗锯齿开启:
Three.js rAF (default) - 30fps smooth.
TweenMax rAF (default) - 55-60fps slightly choppy.
TweenMax rAF (fps(30)) - 30fps smooth.
抗锯齿关闭:
Three.js rAF (default) - 30 - 60fps slightly choppy.
TweenMax rAF (default) - 92-120fps slightly choppy.
TweenMax rAF (fps(30)) - 30fps smooth.
可以请知道 requestAnimationFrame 如何在后台工作的人来帮助解释差异,现在我将使用 TweenMax 30fps 或 Three.js 两者都启用抗锯齿。
【问题讨论】: