我一直在试验Greensock 的 TweenMax JS和Three.js。由于两个库都使用 requestAnimationFrame (rAF),我需要决定哪个库应该处理这个问题。
如果我使用内置的 rAF Three.js
,它的运行速度约为 30fps,并且非常流畅。
如果我使用TweenMax
例如:TweenMax.ticker.addEventListener('tick', animate);
它运行大约 55-60fps 但有点波涛汹涌。
我可以更改与 Three.js rAF 版本类似的预期运行的TweenMax
fps TweenMax.ticker.fps(30);
。
我的问题是哪种方法更受青睐,并且哪种方法被认为是最佳实践?另外,如果我选择 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 两者都启用抗锯齿。