Looks like the OpenVR API is now available & claims to do exactly what we want: unify VR development. It appears we should just drop the current Oculus SDK integration and implement OpenVR. That way, we get Vive & Rift support without us having to worry it. Has native support for Linux too.
License is pretty empty with no limitations or gotchas other than including the license when distributing. What do you guys think? It might be possible to just run this through some automated JNA thing to create a Java APIā¦ not sure how @jherico has been doing it (or if he is already planning on doing this with his new company & making it available for us).
I wouldnāt want to duplicate work with @jherico, though. Iād like to hear what his plans are first. Never used the tools above, so Iām expected heād be able to do this more quickly & correctly than I. However, Iāll pick it up if needed.
OpenVR doesnāt appear to support timewarp, so content using it and running
on a DK2 will appear to have higher latency than the same content running
directly against the Oculus SDK.
Supposedly there is a C API available, but right now itās only āsort ofā C,
since it includes headers that use namespaces.
All right. Letās see what we can do.
I did some reading a while back, and it seems JNA is quite a lot slower than JNI (although far more convenient). One test showed 30-40 times slower. Considering the performance dependent application of VR, is this a concern?
I think more info about the lib will be unraveled soon as people start working with it. Is there a forum somewhere?
Edit: Iād also like to mention that I have never felt that performance was ever an issue with jovr.
From looking at the example, it seems like the integration on jmeās side will be simpler than that of the oculus lib. However, it looks like itās only using client side distortion?
Not supporting Timewarp is a drawback, but Iām not sure it should be considered a dealbreaker. Ultimately, we want an easy library to integrate & maintain that will support multiple VR headsets. @rickard believes OpenVR will be easier to integrate, which is a big plus. Yes, I think it only does client-side distortion. Curious to see what the experience is compared to the native Oculus SDKā¦ I suspect it will only get better as the library matures, though.
Someone asked, āIs Oculus Rift support in the works or planned?ā and Valve replied, āSteamVR supports the Rift.ā Iām asking for some clarification:
The overview states āThe OpenVR API provides a game with a way to interact with Virtual Reality displays without relying on a specific hardware vendorās SDK.ā Their goal must be to support the Rift (and potentially others), even if it isnāt reached yet. I have the same goal with the jMonkeyEngine library, so I think we should follow their footsteps.
So many options for converting C++ libraries into a Java APIā¦ not sure which to choose. I donāt have any experience doing it (but Iām sure I could figure it out). @david_bernard_31, do you have any interest in converting it over since you have experience? @jherico is relatively busy with his new position, which mainly develops in C++, so Iām not sure how much more he will be able to contribute to this (although I hope he does!).