1

I'm using the Kinect 2 to perform rotation and zooming of a virtual camera showing on an 3D object by moving the hand in all three directions. The problem I currently tackle with is that these operations are executed with some noticeable delay. If my hand is in a steady position again, the camera still continues to move for a short time. It feels like if I push the camera instead of control them in real time. Perhaps the frame rate is a problem. As far as I know the Kinect has 30 FPS while my application has 60 FPS (VSync enabled).

What could be the cause for this issue? How can I control my camera without any significant delay?

user1056903
  • 921
  • 9
  • 26
  • 1
    While @Rafaf Tahsin answered your question, I don't see how that helps with you actual problem. If your rendering is slower than the Kinect FPS, then there will always be a new frame available when you render. If it were the other way around, comparing timestamps would help. But then it would make more sense to wait for a new frame before rendering again. But for your problem you should be dropping frames until the rendering is done and then render again with only the latest frame. But that doesn't seem to be what you are asking? – HenningJ Aug 25 '16 at 13:36
  • Completely revised the question. – user1056903 Aug 25 '16 at 19:44
  • I think my answer is no more useful according to revisited context. I'm deleting it. – Rafaf Tahsin Aug 26 '16 at 00:21
  • 1
    Better question :-) Now, show us some code: how do you get the data from the kinect, how do you get it into your application, what do you do with it then. Without code, we can only guess whats wrong – HenningJ Aug 26 '16 at 08:35

1 Answers1

0

The Kinect is a very graphic and process intensive piece of hardware. For your application I'd suggest a minimum specification of a GTX960 and a 4th gen i7 processor. Your hardware will be a prime factor in how fast you can compute Kinect data.

You're also going to want to avoid using loops as much as possible and instead rely on multi threading and if you are looping be certain that there are no foreach loops as they take longer to execute. It is very important that your code is running the data read from the Kinect and the position command asynchronously.

The Kinect will never be real time responsive. There is just too much data that it is handling, the best you can do is optimize your code and increase your hardware power to shrink the response time.

Sean
  • 296
  • 1
  • 11