1

XNAゲームを開発しています。私のゲームでは、Kinectを使用してColor StreamDepth Streamプレーヤーの画像のみを取得しています。このため、深度ピクセルをチェックして、が付いているピクセルを見つけますPlayerIndex > 0。次に、これらの深度ポイントをMapDepthPointToColorPointメソッドを使用してカラーポイントにマッピングし、カラービデオからこれらのピクセルの色を取得します。

これは正常に機能しますが、パフォーマンスは非常に悪くなります(特にこれがゲームの場合)。カラーストリームを閉じて、ピクセルを黒色(つまり、プレーヤーインデックスのあるピクセル)に設定すると、すべてスムーズになります。しかし、カラーストリームを有効にすると、あまり効果的ではありません。

私はこれのために機能的に2つのことを試みAllFramesReadyました:

1-

   using (ColorImageFrame colorVideoFrame = imageFrames.OpenColorImageFrame()) 
   {
      //color logic
   }
   using (DepthImageFrame depthVideoFrame = imageFrames.OpenDepthImageFrame()) 
   {
      //depth logic 
   }

2-2-

   using (ColorImageFrame colorVideoFrame = imageFrames.OpenColorImageFrame()) 
   {
      colorReceived=true;
   }
   if (colorReceived){
      //color logic
   }
   using (DepthImageFrame depthVideoFrame = imageFrames.OpenDepthImageFrame()) 
   {
      depthReceived=true; 
   }
   if (depthReceived){
      //depth logic
   }

The second one seems to have a better performance because it applies color and depth logic outside of using blocks and returns resources to Kinect as soon as possible. But when the second player comes in performance decreases drastically. But sometimes the image of the player just disappears for 1 or 2 frames when I use the second choice.

What more can I do to increase performance of color and depth streams? Thanks for any help.

4

0 に答える 0