我正在使用Kinect 2来执行显示在3D对象上的虚拟相机的旋转和缩放,方法是在所有三个方向上移动手。我目前正在处理的问题是,这些操作的执行有一些明显的延迟。如果我的手再次处于稳定的位置,相机仍然会在短时间内继续移动。感觉就像我按下摄像头而不是实时控制它们。也许帧速率是个问题。据我所知,Kinect有30FPS,而我的应用程序有60FPS(支持VSync)。
此问题的原因可能是什么?我怎样才能在没有明显延迟的情况下控制我的相机?
发布于 2016-09-13 03:20:13
Kinect是一款图形和处理密集型的硬件。对于您的应用程序,我建议使用GTX960和第四代i7处理器的最低规格。你的硬件将是你计算Kinect数据速度的主要因素。
您还会希望尽可能避免使用循环,而是依赖于多线程,并且如果您正在循环,请确保没有foreach循环,因为它们需要更长的执行时间。非常重要的一点是,您的代码将异步运行从Kinect读取的数据和position命令。
Kinect永远不会是实时响应的。它要处理的数据太多了,你能做的最好的事情就是优化你的代码,增加你的硬件能力来缩短响应时间。
https://stackoverflow.com/questions/39141518
复制相似问题