2012-03-12 33 views
1

Kinect传感器每秒钟会产生很多事件,并且如果你在几帧内不能很快地阐述它们(例如尝试对真正的3D角色进行动画处理),那么会卡住。跳过Kinect事件

什么是最好的方法来处理只有合理数量的事件,而不会阻止用户界面?

谢谢。

+0

您使用的是Kinect SDK? – 2012-03-12 13:16:35

+0

官方Kinect SDK 1.0 – abenci 2012-03-12 13:29:46

回答

0

我会建议在循环中请求帧而不是使用事件方法。 要在动画循环这样做只是称:

sensor.DepthStream.OpenNextFrame(millisecondsWait);

或者:

sensor.SkeletonStream.OpenNextFrame(millisecondsWait); 

或者:

sensor.ColorStream.OpenNextFrame(millisecondsWait); 

事件驱动编程是伟大的,但是当你遇到这样的问题你提到最好是在需要时调用这些函数。

0

我想说,如果您正在为一些非常快速和精细的事情制作动画(例如,复杂的60fps 3D图像),那么您同步获取相机图像所需的时间可能会在渲染过程中产生颠簸。

我想尝试在不同的线程中分割渲染和Kinect处理/轮询;采用这种方法,您甚至可以继续使用30fps事件驱动模型。