Kinect颜色和深度流性能

时间:2013-02-03 23:47:00

标签: performance colors xna kinect

我正在开发一款XNA游戏。在我的游戏中,我使用Kinect的Color StreamDepth Stream来获取玩家的图像。出于这个原因,我检查深度像素并找到PlayerIndex > 0的像素。然后我使用MapDepthPointToColorPoint方法将这些深度点映射到色点,并从彩色视频中获取这些像素的颜色。

这种方法正常但性能非常糟糕(特别是在游戏时)。当我关闭颜色流并设置黑色像素(我的意思是像素与玩家索引)时,它都很平滑。但是当我启用彩色流时,效果不是很好。

我在AllFramesReady函数中尝试了两件事:

1 -

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

2-

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

第二个似乎有更好的性能,因为它在using块之外应用颜色和深度逻辑,并尽快将资源返回给Kinect。但是当第二名球员的表现大幅下降时。但是当我使用第二种选择时,有时候玩家的图像会消失1或2帧。

我还可以做些什么来提高色彩和深度流的性能?谢谢你的帮助。

0 个答案:

没有答案