Been a while since my last post...and that was on the old forums. Happy to be posting this on a shiny new forum!
Today (7/7) is the birthday of Cinder's fearless leader, Andrew Bell. There's no known history of any Cinder birthday traditions so in following with that - I'd like to wish him a "Happy Birthday!" along with introducing Cinder-VR: https://github.com/cinder/Cinder-VR
Nothing says caring like C++.
VR is pretty hot right now - and it's also fun to play with! About a month ago, we set out to consolidate VR functionality into one place and try to make it as accessible to Cinder users as much as possible. Poor @num3ric had to endure endless questions about the Oculus Rift - hopefully he'll forgive me one day. Starting with @num3ric's Cinder-OculusRift Block the design was evolved to incorporate OpenVR for the HTC Vive.
Currently, OpenGL is the default and only supported render. We're looking into making Vulkan possible in a sane way.
Cinder-VR will attempt to automatically detect which headset is present when it starts up. It has not been tested on a system with both plugged in. If someone has this config, please let us know how it turns out.
What APIs are used?
* Oculus Rift - Oculus SDK
* HTC Vive - OpenVR (Rift doesn't always play nice with OpenVR - so that combo is not recommended)
What controllers are supported?
* Oculus Rift - Remote and Xbox controller (Touch will be added once it's released)
* HTC Vive - Vive Controllers
There were two primary design goals:
1. Support major devices (Rift and Vive for now) that accessible to Cinder users
2. Create common coordinate system between the different environments (Rift and Vive)
As far as coordinate systems go, the major things to know:
* Device Coordinate System - coordinate system that's local to the device (similar object space for those familiar with 3D packages)
* Tracking Coordinate System - base coordinate system that's used by the device to track its position.
* World Coordinate System - coordinate system defined by an "origin" matrix applied to the Tracking Coordinate System to move the origin into a more accessible place.
The samples provide an idea of how all this comes together. More samples to come soon! @bantherewind has been talking one up.
Please check it out and let us know what you think! This is the initial release, so still very much a WIP. We welcome any feedback to improve the design so Cinder-VR becomes a solid VR solution taht works for Cinder users!
Thanks to @num3ric and @bantherewind for reviewing the code before it was initially release.
I'll update with a cool screenshot soon.