0

Kick.jsにとても興味があります。教授にこのフレームワークを使用するように説得するために、kick.jsを使用してカスタム3Dモデルをロード/コーディングでき、さらにオブジェクトを追加できるアプリケーションを開発したいと思います。また、キャンバスに3Dオブジェクトを追加するときに、FPSを印刷してFPSのバリエーションを確認できるはずです。私はグラフィックプログラミングに不慣れで、シェーダープログラミングやopenGLの知識がありません。初心者なので、どうすればこのフレームワークに飛び込むことができますか?

私が実装したかった次のステップ(私がうまくいかない場合は私に提案してください):

  1. キャンバスに単一の立方体または球体またはティーポットをロードするkick.jsを使用して簡単なデモを開発します。
  2. カメラアングルを変更すると、fpsが表示されます。
  3. 後で、同じタイプ(例:ティーポット)のキャンバスに三角形(モデル)を追加して、fpsを単一のティーポットのものと比較できるようになるはずです。

私は正しい方法に近づいていますか、それとも必要な提案をお願いします。提供されたチュートリアルには、どちらもFPSデモがありません。誰か助けてください。ホームページに記載されている機能は本当に気に入りましたが、デモでそれらを実装する方法がわかりません。

4

1 に答える 1

0

Kick.jsに「レンダリング」コールバックなどがあり、レンダリングするフレームごとに呼び出されると仮定すると(フレーム間の時間、またはプログラムの開始からの絶対時間がわかっている場合)、フレームレートの計算は非常に簡単です。

以前に使用した方法は、サンプルレートを選択し(250ミリ秒が好きなので、1秒間に4回更新されます)、250ミリ秒ごとに実行されたフレーム数をカウントします。250msに達したら、画面上のフレームレートカウンター変数を更新して、カウントを再開します。

timeSinceLastFPSUpdate += millisecondsSinceLastFrame;
framesSinceLastFPSUpdate++;
if timeSinceLastFPSUpdate > 250:
    timeSinceLastFPSUpdate = 0
    fps = framesSinceLastFPSUpdate * (1000 / 250); // convert "frames per 250ms" to "frames per 1s"
    framesSinceLastFPSUpdate = 0;

print fps to screen;

さまざまなサンプルレートで遊んだり、さまざまなフレームレート計算方法を使用して、タイマーをより「正確」にすることができます(フレームレートの低下をより正確に見つけるため)が、精度が低く、正確なものを探しているようです。フレーム間のディップではなく、レンダリングの全体的な複雑さについての合理的なアイデアを提供します。

于 2012-11-01T17:13:21.773 に答える