In this post I'm going to outline all of the technology I will be using in my initial Prototype which I will be developing in the next few weeks.
Input:
LibFreenect: I will be using the LibFreenect library to extract the color and depth information from the Kinect. The library will also be used during the calibration phase of the application to change the Kinect's viewing angle. I will be wrapping the library in a KinectHandler class so that in the future I can easily replace it with an official SDK without changing the entire structure of the program.
OpenNI: I will be using the OpenNI library to determine the user's hand positioning and what they are doing with their hands (ie. grabbing an object). I chose this library because it is open source under LGPL, has excellent community support, and is well suited for processing the images extracted from the Kinect.
Fdlib: I will be using the FdLib library for face detection. I choose this library because it is both fast and simple to integrate, which makes it a very strong candidate for incorporation in the prototype. The fact that it is both proprietary and closed-source means that I will most likely be replacing it later in development, but for the purpose of rapid prototyping and getting to a play-testable state I think it will do nicely for now. I will be wrapping the library in a class so that it is easy to replace without altering the program structure.
Output:
DirectX: I will be using DirectX to handle my output. The reason I'm choosing DirectX instead of OpenGL is because I think that ultimately my game would be released on the Xbox 360 platform (and perhaps Windows), which means that I must use DirectX for rendering, but as I don't forsee releases on platforms that don't support DirectX, implementing OpenGL seems unnecessary. I'd also like to get more experience working with DirectX as it is the current game industry standard. I will be writing a wrapper around my output so that I can swap out DirectX for something else if I change my mind.
That's an overview of the software I'll be using in my project. I'm sure there will be future posts that further explore the good and bad of each library.
I've heard some choice words about working with OpenNI and Kinect from Lauren & Zach (who are working with Kinect for their CIS senior design). They might be a good resource if you run into any trouble with that (and haven't already talked to them) :)
ReplyDeleteAlso put up some sketches on the game play, and how you feel a player will experience your game now that you have a better feel for what is going on. Feel free to scan them in.
ReplyDeletePlease follow up on Lu's comments about chatting with Lauren and Zach, I can put you in contact with them if you need it
http://graphics.stanford.edu/~mdfisher/Kinect.html
ReplyDeleteTry to attend the GRASP talk this week. It will be VERY helpful.
ReplyDeleteSpring 2011 GRASP Seminar - Zhengyou Zhang, Microsoft Research, "Human Activity Understanding with Depth Sensors"