2016-03-21 4 views
1

WebGLを使用してキャンバスに何かを描いているとします。window.requestAnimFrame(somemethod);WebGLで1秒あたりのフレーム数を達成するには?

フレーム数を取得するにはどうすればよいですか?

たとえば、このLinkを開くと、1秒あたりのフレーム数が左上隅に表示されます。

プレーンJavaScriptを使用して類似の方法を達成するにはどうすればよいですか? APIは必要ありません。 someMethodで

答えて

2

setIntervalをログに記録する間隔を追加することは、単にに渡されたタイムスタンプを使用し、1が重い仕事をしていた場合、それが遅延及び/または積層してもよい、正確ではありません、その後増加していますアニメーションフレームコールバックを要求する。

var prev = 0; 
requestAnimationFrame(function (now) { 
    var delta = now - prev; 
    var fps = 1000/delta; 
    prev = now; 
    // render logic 
}); 
+0

今のところは何ですか?あらかじめ定義された番号ですか? – subhfyu546754

+0

私はおそらくこれを受け入れるでしょう - もっとエレガントで、今はタイムスタンプですhttps://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame – Martin

2

は、グローバル変数counterは値

setInterval(function(){ console.log('fps:'+counter); counter=0; },1000); 
+0

タイマーは、WebGLによって描画される1秒あたりのフレーム数とどのように相関しますか? – DarkDust

+0

各描画呼び出しはwindow.requestAnimFramer somemethod()によって実行されます。変数があれば、描画呼び出しごとに1秒後に増加します。somemethod – Martin

+0

Yupが呼び出された回数だけ表示されます。私はあなたの答えであなたが最初に意味することを理解していない、明確化のおかげで。 – DarkDust

関連する問題