Blender VR Support test build

As mentioned in last weeks meeting notes, the VR support could use some user feedback

  • Currently the VR display (OpenHMD) branch is getting a critical review. To make a balanced
    decision we’d like to hear from more HMD users what they think.

https://developer.blender.org/D2133#60417

There is a windows build available here and TheOnlyJoey was kind enough to supply a linux build here, and documentation is available here

Will update the build when updates become available!

I hate to be a Naysayer (actually I love to be a Naysayer), but VR without positional tracking is not worth it (actually even VR with head tracking is not worth it). Consequently, using OpenHMD is not worth it.

Right now, the only way to get this whole VR thing to work “well” leads through proprietary software (and 600+$ hardware). This is one more case of the GPL legally preventing you from creating (or rather publishing) the best-working software solution. As a consolation, you all may watch some Richard Stallman videos on Youtube.

The GPL ultimately did not stop the developers from supporting the .fbx format for export (even though it gave them headaches in the process), and in a way that people could actually use nonetheless.

Also, I think the initial purpose of this is to provide a way to preview your scene in VR and not much else (perhaps before exporting to a serious VR-capable program with all the bells and whistles like Unreal 4). I doubt there’s going to be a ton of complaints of how you can’t move around the scene by walking around the dedicated space in your home (at least as long as that limitation is communicated).

Sure, you could do reverse engineering here as well. I’m talking about “right now” and the immediate future. As far as I’m aware, reverse-engineering is not in the scope of OpenHMD, either.

I doubt there’s going to be a ton of complaints of how you can’t move around the scene by walking around the dedicated space in your home (at least as long as that limitation is communicated).

You have no idea what kind of a difference positional tracking makes. It’s not just about moving around in your home, it’s about moving your head. Without positional tracking, this is very disorienting and likely nauseating.

Resolving some of the current limitations is on the developer’s radar (said by the coder himself in this post).

So it could be that things like head tracking will eventually make their way into the official implementation, as it’s still being treated as a work in progress.

Unless you’re using Razer’s OSVR, their headset is open-source and supposedly their software toolkit supports Oculus and HTC Vive headsets. Idea there is to have a generic VR driver that can handle all sorts of different headsets and peripherals, but i’m not sure how far it has progressed.

Yeah, add to that the fact that Oculus doesn’t even do positional tracking at all and you’ve got a real winner of a technology. However, I’ve viewed tons of 360 VR videos where you can only rotate your head and it doesn’t really make people sick to move your head around. You get used to it pretty quick. Certainly, there will be some who won’t be able to handle it but they should probebly stay away from VR if that’s the case. Those are usually the same people who can’t go see 3D movies by the way.

I’ve worked on several 360 stereo (VR) projects now. Every time I do one I’m re-reminded how ridiculously, gimmicky it actually is. Especially on an Oculus. We also have an HTC Vive and it’s much better in general for VR because of the head tracking but it doesn’t do anything for pre-rendered 360 stereo. So far everything I see is like, “Yeah, that’s cool I guess. What next?” but no one ever steps up with the goods. Everyone’s so afraid of making people sick that we have unintentionally handicapped what we all imagine is the coolest thing about VR. Being totally immerses and free moving inside a virtual world. I really just can not understand why we are all not just wearing cheep head sets while playing video games and being done with it. It could be really great for video games but, I really feel like we are expecting way to much from the technology. All the ideas are flooding in and everyone wants to seem like they are cool and ahead of the curve. But really, the hardware is years behind and no one really knows what to do with it and how to make it work.

You know what we mostly do when we do VR projects? Pharmaceutical info graphics and trade show demos of technology.

And, I say all this but really, I’m kind of excited about OpenHMD. What I really want to be able to do is use Blender in VR. I don’t claim to know how to make this work properly but I did try it with an addon and sculpting was pretty cool even though it was totally crippled. :wink: Also, I feel like I’m gaining a better understanding of what the issues are just by the very notion that I’m not satisfied with any current VR that I really want to try and make something that does work.

Pretty sure the BF’s decision to try and support this OpenHMD implementation was not made because of GPL compliance. Dalai’s already written an add-on that uses the Oculus SDK that adds some preliminary VR support to Blender, and that’s been forked and had OpenVR support added by William Culver/Cedeon.

The issue is that the Oculus SDK and OpenVR are Windows only (OpenVR added initial Linux support like two months ago, but it’s not fully featured, yet). OpenHMD promises to be multi-platform, but if it’s Linux support is as bad as it’s Windows support is, it’d honestly be better to wait for OpenVR’s Linux support to mature.

As for this OpenHMD implementation: I agree with BeerBaron. Without positional tracking of the HMD, it’s useless.

The bare minimum requirement for VR integration into Blender needs to be allowing the user to preview their stuff in VR without having to export it from Blender and import it into Unreal/Unity/whatever. If there’s no positional tracking, you’re not getting a proper VR preview. Period.

Actually, most of the devices OpenHMD supports are reversed engineered, and there are even developers funded by projects like Collabora working on reverse engineering protocols such as Lighthouse (Which is used for the HTC Vive).
First party support for devices is also being worked on (unreleased hardware).

So the situation with positional is 2 sided and also kind of opinionated.

The first part is dependency related, at this moment there is no option to introduce the dependencies needed to provide support for usb camera’s in Blender, so some devices (such as the Oculus DK2/CV1 and OSVR HDK2) can not use positional when OpenHMD supports it.
Other devices such as HTC Vive are using bluetooth communication and is mainly handled by the HMD Firmware, this is something that can be introduced in Blender and is being worked on.

The second part is the opinion regarding positional.
So a lot of the devices OpenHMD supports or is working on does not have positional at all (Oculus DK1, Deepoon E2, Pimax 4k, LG 360VR), and during my contact with Oculus (before the Facebook buyout) we got intel regarding most people not using their external camera at all for the DK2 (about 30/40% had it plugged in all the time).
I do agree that Positional enhances the VR experience, but I don’t think it is crucial.
Some people get motion sick from regular screens, and some can have a laggy experience with VR devices and feel nothing.
We had people already using the implementation, even early on (https://developer.blender.org/D2133#60494 and https://developer.blender.org/D2133#60632 are recent reports on that), and they don’t seem to mind the lack of positional tracking.

I want to ask to keep the thread focused on feedback regarding the Implementation, I will take some time to prepare a Linux build myself to make it more accessible to other users.

Thanks for testing!

I hardly think that a three year old datapoint from a time when the majority of the software available for Oculus was written with the DK1 SDK is relevant to the average HMD owning user today, when positional tracking is an integral part of three of the most popular VR devices on the market. I also find it a little disturbing that, per your response in the 2.8 dev thread, you’ve been doing the majority of your testing on drastically out of date hardware (DK2), or hardware that is owned by a fraction of a fraction of a percent of the market (the Deepoon E2? Seriously?).

I work in a VR company, and I can say, unequivocally, that as far as true VR content creation is concerned positional tracking is crucial. The lack of it was immediately apparent (right after the FOV, convergence, and framerate problems), especially as there doesn’t even appear to be any sort of neck model on your rotation, which non-positional devices like the GearVR and Daydream implement. And if the OpenHMD devs are working on Pimax and LG 360 VR support, they need to stop wasting their time. Nobody owns those, and nobody is developing software for them.

If you want the “good” VR, you have a choice between the Vive and the Oculus CV1.

What do you mean? Both the CV1 and the DK2 do positional tracking, though not quite as “freely” as the Vive.

Being totally immerses and free moving inside a virtual world…

…makes people sick! Maybe not all people, but it’s probably the majority to at least some degree. It’s not a solved problem.

You know what we mostly do when we do VR projects? Pharmaceutical info graphics and trade show demos of technology.

That sounds about right.

Yeah sure, just like there’s “two sides” to any debate. The wrong side and my side.

This is VR without positional head tracking:
http://docs.roxio.com/myroxio/upload/2010/05/how_3d_video_works/viewmaster.jpg

Whatever the decision-making process is here, the Rift libs aren’t GPL-compatible. I suppose they could distribute the bridge lib separately and then link that library dynamically at runtime - I’d say that’s a grey area.

I didn’t have time to test the OpenHMD build yet, but I do agree that VR in Blender without positional tracking is not so very useful. Sure, in our studio we do produce mobile VR apps with only rotation tracking as well, but that’s a different kind of use-case. For passive applications, such as entertainment, info or educational VR apps, positional tracking is not always necessary.
But for a productive, creative application such as Blender positional tracking is essential. Tilt Brush with only rotation? Nah… :wink:
We had an intern in our studio who was investigating openVR with Blender and the HTC Vive, using the addon that was mentioned in one of the posts above. The addon itself works totally fine. And he even managed to get the controllers working, kind of. So you could grab and move things with the controllers, walk around your models etc. Of course only in a very hackish kind of way. But still, openVR seems to be working fine.
Anyway, I hope that positional tracking for at least the Vive and Rift can be implemented soon. :slight_smile:

So, I have been working with VR since 2013 and consult quite a bit for bigger companies here and there, but never had some one disregard such a big portion of users.
Devices like the Pimax have really high sales numbers (both inside and outside of Asia) and i have seen them used as primary devices within companies in their workflow.
This is the same for devices like the GearVR, which are commonly used in companies working with 3D content and games, still while not having positional tracking.

The reason for testing a lot with the DK2 is that a lot of Blender users own one, and the device and implementation is really stable.
Most people we asked to test our branch over the last half year had one, so it was a logical choise to use that, though I also tested with the PSVR (Linux, Windows) and the Vive on Linux.

Again, i am not arguing that we don’t need positional tracking, I am arguing that it is not as crucial als some people make it sound.
Positional is in development for multiple devices (Rift, Vive, PSVR and unannounced devices) and will land sooner or later, being able to merge the current support for release will make it easier to add this to Blender in the pipeline and work on getting more things ready for VR.

FOV and Convergence fixes will be pushed today or tomorrow, including new lens calibration for the Vive.

So, the problem with frameworks like OpenVR is that they are still limited to mostly Windows, and currently Linux in a early beta. (no macOS in the pipeline it seems) It also disregards a huge portion of HMD owners (with PSVR being one of the best sold VR devices at the moment) and terrible support for other devices.

I get that for Tilt Brush type applications positional is required, but to have Blender ready for this kind of workflow, a lot has to be done within Blender itself to make it function properly (allow multiple active objects, proper VR scaling model, more UI adoptations to allow for position aware UI, better handling of 3D positioned cursors etc), which will take time on its own.

But in the meantime, there are a lot of use cases which can be done at this moment such as visual aid for 3D video renders (which was the original implementation case), architectural work and feedback in 3D (as reported by https://developer.blender.org/D2133#60494), content previewing for sit-down type games (still a large portion), height indication for 3D printing etc.

Also i still want to add that adding positional to some devices will be impossible due to the dependency on libusb, which we can not do at this point. So positional for the Rift will be out of the question for the near future in any case.

Using a Python addon has been tested in the past as well, but the performance was drastically lower, and tracking issues would appear on heavier scenes due to lack of correct threading in python etc.
In comparison, using the Addon with the Vive on one of the test systems (with a 650ti) i got a lousy 15/20 FPS on one of the Caminandes scenes (which was one of the targets for the initial implementation), with rotational tracking being very inaccurate (due to not having enough update frames) and jumping positional data, which was unusable.
Where on the same system with the native C implementation I got near 50FPS on the same Scene (which was close to regular viewport FPS) and tracking being accurate even with dropped frames.

Of course you could still use the addon if your system is high end and you choose to do so, but due to the lack of platform and device support, and bad performance, making it a part of core Blender is out of the question.

Taking some time to fix up the Vive and new PSVR lens correction today, pushing in a couple of hours.

So far our main focus is VR and I have to agree, VR without positional tracking is not VR, even my clients say that by now, we do GearVR, Cardboard and VIVE/OCULUS projects, and they have one thing clear, they want the VIVE as much as they can.

Now speaking about postional tracking, one that is seat oriented, like the one Oculus have (with one camera) is ok for the main target exposed here wich is review, but still positional tracking is a must I think, even if it’s a bit limited.

Right now I was not able to test the build, and with that I mean that I downloaded it, I openend it, I pressed the buttons that I’m supose to press, start the session and nothing came out in my VIVE, should I do something?

Also, one question, is the OpenVR license incompatible with Blender?

Cheers.

The issue is not the license, but the Platform and Device compatibility.
We are excluding a lot of users with other devices, and the lack of Mac and still very early Linux support makes it not suitable for use in core blender.

I hope they are not wasting time! Pimax 4K and 8K are IMO important players in the emerging VR marketplace, especially for business users. NVidia recently announcing their eye tracked Foveated rendering (http://www.roadtovr.com/nvidia-present-latest-foveated-rendering-research-gtc-2017-may/) which will help lower end hardware run current VR titles at faster frame rates BUT for serious users it will provide super hi res visuals using 2 x 4k panels, one for each eye along side foveated rendering at 90+ Hz. That imo is when VR will really take off. When it can be used for pro design.

Pimax VR headsets are cheap too so anybody coming to market with another 4K or even 8K headset will be less inclined to charge extortionate amounts for it much like the projector market is now.

Geez, those still exist? Damn, now I do feel old :smiley:

I have tried today the HMD branch from graphicall and work fine the rotation in oculus rift, cv1. The only problem is some crashes when I tried to close the windows. I only could use the system one time and the next the blender freeze

Even thought the license itself should be compatible with Blender’s GPL, OpenVR isn’t. Significant parts of OpenVR are available as binary libraries only which are not allowed to be linked with a GPL licensed application.
Strictly speaking, OpenVR isn’t open source, only parts of it are.