A Magic Mirror that displays 3D objects and augments the mirror image.
For a detailed project description and setup see its project site.
By default the DirectX 11 Renderer is used, as DirectX 12 isn't compatible with Stereoscopic 3D. The Renderer can only be changed on compile time (USE_D3DX11 in stdafx.h).
This projects goal was to research whether it is possible to display 3D object on a Magic Mirror. Head tracking via Kinect is used for motion parallax. The depth information of the Kinect is used for occlusion as well. Besides motion parallax the project also features stereoscopic 3D for further depth perception.
- DirectX 11 Renderer with Stereo (e.g. NVIDIA 3D Vision)
- DirectX 12 Renderer
- Head Tracking & Motion Parallax
- Occlusion
- Semi-transparent mirror
- Kinect v2 Sensor (including PC-Adapter)
- Windows System that meets the Kinect v2 requirements
- DirectX 11.1 Feature Level Support
- Microsoft Visual C++ 2015 Redistributable Update 3
For Stereo
- 120 Hz 3D Vision Ready Display
- NVIDIA 3D Vision Glasses (or any other Stereo glasses)
- Visual Stduio 2015 Update 3
- Windows 10 SDK 10.0.10586
- Kinect SDK v2.0
For setup connect your Kinect to the PC, place it beneath the monitor and adjust the Settings File. Place the semi-transparent mirror ontop of the monitor screen. Start the program and press Alt+Enter for fullscreen.
- WASDQE: Adjust Kinect offset
- +-(on Numpad): Adjust monitor height
- Space: Pause head tracking
- F: Colorize depth mesh
- Alt + Enter: Toggle fullscreen
- Changing 3D display mode while in fullscreen will let the app crash.
- Using the DirectX 12 Renderer while 3D display mode is enabled results in a crash on start up.
This project is licenced under the MIT license (MIT)
All length units are in Centimetres
- Monitorheight: The height of your display; used to calculate the oblique viewing.
- OffsetX, OffsetY, OffsetZ: The offset of your Kinect Sensor from your display center; used to map the real world face model to the virtual world. The face models origin is the IR camera, that is approx. 4cm to the left from the Kinect center.