私はGreensockのTweenMaxJSとThree.jsを試してきました。どちらのライブラリもrequestAnimationFrame(rAF)を使用しているため、どちらのライブラリでこれを処理するかを決定する必要がありました。
に組み込まれているrAFを使用するThree.js
と、約30 fpsで実行され、非常にスムーズです。
たとえば、使用する場合TweenMax
:TweenMax.ticker.addEventListener('tick', animate);
約55〜60 fpsで動作しますが、少し途切れがちです。
Three.jsrAFバージョンと同様に期待どおりに実行されるfpsを変更できますTweenMax
。TweenMax.ticker.fps(30);
私の質問は、どちらの方法が好まれ、一方が他方よりもベストプラクティスと見なされるかということです。また、Three.jsを選択した場合、rAF実装のfpsを変更できますか?
最後に、より多くのオーディエンスに合うようにfpsをどのように決定しますか?30 fpsに制限することは問題ないように見えますが、少し恣意的です。一部のユーザーは、私が許可しているよりもはるかに高いレートを使用できる場合があります。
アップデート :
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が内部でどのように機能するかを知っている人と一緒に行うことができます。今のところ、アンチエイリアスをオンにしてTweenMax30fpsまたはThree.jsのいずれかを使用します。