2016-08-25 2 views
1

私は、3方向すべての手を動かすことによって、3Dオブジェクトに表示される仮想カメラの回転とズームを実行するためにKinect 2を使用しています。私が現在取り組んでいる問題は、これらの操作がいくつかの目立つ遅延で実行されていることです。私の手が再び安定した位置にあれば、カメラはまだ短時間動いています。リアルタイムで制御するのではなく、カメラを押したような感じです。おそらくフレームレートが問題です。私の知る限り、Kinectのアプリケーションは30 FPS、アプリケーションには60 FPS(VSync有効)があります。Kinect 2 - 手の動きにかなりの遅れ

この問題の原因は何ですか?私のカメラを大幅に遅らせずにコントロールするにはどうすればいいですか?

+1

@Rafaf Tahsinはあなたの質問に答えてくれましたが、実際の問題にどのように役立つのか分かりません。レンダリングがKinect FPSよりも遅い場合は、レンダリング時に常に新しいフレームが使用可能になります。それ以外の場合は、タイムスタンプを比較すると役立ちます。しかし、レンダリングする前に新しいフレームを待つ方が意味があります。しかし、あなたの問題では、レンダリングが完了するまでフレームをドロップしてから、最新のフレームだけを使ってレンダリングする必要があります。しかし、それはあなたが求めているようではありませんか? – HenningJ

+0

質問を完全に改訂しました。 – user1056903

+0

私の答えは、再訪された文脈によっては役に立たないと思います。私はそれを削除します。 –

答えて

0

Kinectは非常にグラフィックでプロセス集中型のハードウェアです。あなたのアプリケーションでは、GTX960と第4世代i7プロセッサの最小仕様をお勧めします。あなたのハードウェアは、Kinectデータをどのくらい速く計算できるかの主要な要素になります。

また、できるだけ多くのループを使用するのを避け、マルチスレッドに頼っていて、ループしている場合は実行に時間がかかるのでforeachループがないことを確認してください。 Kinectとpositionコマンドから読み取ったデータを非同期的に実行するコードが非常に重要です。

Kinectはリアルタイムで反応することはありません。あまりにも多くのデータが処理されているので、コードを最適化し、ハードウェアの消費電力を増やして応答時間を短縮することが最善です。

関連する問題