Doing it the Hard Way - Building a Vulkan VR Engine for Linux

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Happy Feet blank actually yes thank you hello everyone I'm I'm Pete and gonna talk to you today about just a few things about VR on Linux and you know so welcome and some of the applications of Vulcan and VR and Linux and some other stuff what's this keyboard so just you know quickly a little bit about me um Pete black that's my twitter handle if you're interested in following that I keep a bit of a div log there so you know a lot of my kind of independent work I just kind of post stuff about what I'm doing it is mostly concerned with virtual reality in 3d graphics I'm from Wellington New Zealand I'm an independent graphics developer which basically means unemployed most of the time you know most of my interests or sort of a phone you know tools I suppose at the base level are C and C++ you know 3d graphics and virtual reality that's where I found a real interest in passion and things you know VR is one of those things that you kind of try it out and it's sort of for me it's it's um it's almost like a new way to interface with the computer it's quite exciting to be able to you know wave your hands around and interact with things and are in a very large-scale way and you know part of my background along with sort of a lot of the systems and programming stuff that I that I used to do touched on interactive exhibitions which is for museums and things which was another area where I sort of really got a lot out of I guess larger scale interfaces and being able to sort of I get to reach out and touch things and move things around rather than you know try and mess around with things in a little rectangle and you in the palm of your hand or we'll have everything confined to a rectangle on the wall breaking out of that for me is really interesting and really to sum up you know my story it's kind of like this you know I mean the there's the clown in the sewer who invites you to you know learn 3d graphics and that lets me down the bottom there I just just went in there and I haven't come up you know so to get away from that you know I thought I'd talk a little bit about you know what it what is Vulcan because that's some of you in the room and I guess hardcore 3d graphics developers and aren't really familiar with what Vulcan is and why you might use it Vulcan is a low-level 3d graphics API it's been created by the Khronos group who were also the standards group industry standards group behind OpenGL which is much more widely known but you know it's it's the it's the new hotness I suppose you could say Vulcan is based on a specification released by AMD called mental which they sort of tried to get out there as something that was going to be a way to get a lot more efficiency in games and other you know 3d interactive stuff but you know no one in the developer community really wanted a third standard and so AMD to their credit you know I really did the right thing and sort of contributed that to Chronos and it became the basis of Vulcan you know with a lot of other and put from from other industry players which you kind of see them on the screen there and you know what came out of that lengthy process really is an exceptionally good specification it's very very solid you know everything that you might want to know is kind of detailed in the Vulcan specification you know in a way that it's sort of isn't in the OpenGL specification you know there's not a lot of ambiguity it's a very you know explicit and very well-defined spec so you know a thumbs up to the Chronos guys and girls for that you know one of the things about Vulcan is it has explicit memory allocation synchronization this is something that I can GL did not expose and you know was a bit of a bit of a problem for a lot of the lower level things that you might want to do with a GPU another thing that Vulcan has that other api's don't is a bytecode shader format this is something that I think that DirectX hears I don't do a lot of work with DirectX but this is a this is great if you are I guess shipping shader code with your application that you actually want to run the same way on multiple different drivers and things you know scurvy makes that a little bit easier and more consistent across drivers across platforms it's generally a good thing and of course it has a number of front-end so you can compile GLSL or other languages as you like to target this intermediate format you know Vulcan and I suppose the thing for me that is exciting most as its high-performance potential Vulcan solves a lot of the problems that I've been GL has with regard to I guess draw call over here is the primary one or the primary problem you know you can get a lot out of Vulcan some other cool stuff about it is API interoperability and inter-process communication which I'll sort of touch on a little bit later and one of the projects that you know this work that I've done independently it's kind of led me to but this is something that OpenGL never defined something that has been sort of pushed I go I guess into the DRM layers of the kernel things like that where it becomes a little bit tricky to expose crosswind or especially when you're talking about Nvidia and you know another great thing about Vulcan is that it's supported on Windows Mac OS with a asterisk there because you know Apple kind of backed out of the whole Vulcan standards process arguably they had good reasons but um you know one of the company had created a sort of a wrapper layer that you know lets you write the target Vulcan on top of you know their metal API and so that's called Multan VK but it does work really well and it means you can run Vulcan code on Mac six you know which is nice I did it again and so you know one of the questions that um you know it all sounds good right no Balkan oh well its low level that's really fast it's it's really neat it's got all this cool stuff you know why not Vulcan why wouldn't you target Vulcan and you know some of the reasons are there it's you know it's not for everyone you know the programmer when you're when you're writing Vulcan code is responsible for for everything and I mean this is probably not such a bad thing for people who do low-level programming in other areas you know even if it's not graphics but people who just want to put a model or a triangle on screen you know it's it's a significant amount of boilerplate and a significant amount of over here so you know I wouldn't sort of downplay that it's hard it has a very steep learning curve you know I've been working in 3d graphics for quite a while and you know it's one of those things where you you kind of get to the end after you know doing all of the stuff which I'll sort of cover over the next few slides and you should have looked back and go wow that was that's really hot you know it was super cool to do that because I love learning stuff you know that gives me a real buzz but you know super hard it's hard to port existing code bases you know because Vulcan does so much and such I suppose a different way to OpenGL or DirectX or you know some of the other 3d ap is that there might be in use on consoles or on Android etcetera you know it's it's just quite hard to fit that you know I guess square peg into the round hole and so you sort of end up contemplating or maybe I should just rewrite the whole thing and Vulcan and that just becomes an enormous amount of work you know and for all of those reasons there's a little bit of a lack of a community if you go on to the internet and you like type into Google how do I do this in OpenGL you know you'll get a really good answer if you do the same thing with Vulcan a lot of people have you know some some pretty strong opinions on how things should be done in the Vulcan world you know often driven by you know I guess it attracts a you know a bunch of people who are very focused on for months and very focused on efficiency and all that stuff so you know you it's it's just this list of a community there's a list of a critical mass of people using out so you know that tends to be a little bit difficult for people approaching it you know modern hardware only you can't get your crappy old graphics card from the 90s it's not going to run Vulcan doesn't matter who the vendor is until AMD Nvidia you have to have a reasonably modern GPU to run Vulcan this is in some ways you know not such a bad thing people tend to update their GPUs more often there's a bit more of a mature nut anything below I guess in video six series I think anything older than an AMD r9 I think I can't really talk too much about Intel because I don't quite know but um you know there's a bit of a cutoff point there maybe it's as well or something like that anything older than that just doesn't support Vulcan and you know another thing is also it's a bit of a departure from OpenGL conventions around coordinate spaces and things like that so it tends to be quite hard to take something that works currently in OpenGL and just do a straight port to Vulcan you know it's it really requires a bit of really teacher and I guess actually quite deep knowledge about health and get from you know the you know the court on that space that you define your models in to the court in that space that actually ends up on the screen and if you don't have an understanding of that Vulcan will trip you up so moving along from from Vulcan to the state of VR on Linux which currently is you know I'd have to say quite quite poor you know there's it's it's coming along though most of my work with VR on Linux has been done the steamvr in open via but it you know it has to be said that the day-one Linux support announcement that Valve made you know way back in the day you know doesn't really happen and there was you know at least a year lag time but you know that being said open VR and steamvr online actually works pretty good now so you know props to them open hmd has been you know that's the other I guess API that you can target for doing VI applications on Linux it's been around for a long time unfortunately I think most of the people who work on open HMD have a you know bit of things to do I guess you know paid work probably that keeps them from really doing a great job of you know providing a complete api and so there's no positional tracking which is a huge you know lacking feature there oculus you know they started out supporting Linux you you could buy a DK one this is actually the part that I took to to virtual reality you know I tried to add a DK one at some conference over in the state sometime I think was a GTC I thought wow this is great this is just good enough to be a useful tool came home immediately ordered one you know they had Linux support the head-- OS X support you know they had Windows support it was great and then they got Facebook and all that stopped which kind of sucks so that was oculus OS VI was another interesting effort from I believe since X have got a long history and I guess scientific military industrial VR and razor her 3d you know gaming peripheral manufacturer they tried to sort of drive their own standard didn't really work out it's basically did I don't believe when it was alive they ever actually got their positional tracking working on Linux so that was disappointing but they've now sort of folded themselves into the open X a standards process which is the next big thing if it ever makes it out of the chrono standards process which I you know I don't really have any knowledge of so I'm not really sure and of course the other you know big dog and virtual reality is Microsoft with their windows mixed reality that doesn't run will never run forget it kind of crap but hey that's what you've got to deal with some other industry players you know Apple Google Intel leap motion metric leap generally no support for Linux there's a fair bit of support for Android you know especially you know Google and and magic leap platforms are based on Android but there's nothing really that you can sort of use to do VR development or AR development on on Linux on the other side I suppose of VR development most people don't really go down to the low level they don't they don't go down to those api's and you know this is probably one of them I guess one of the problems when you decide I want to do a VR application and I want to use Linux almost everyone else in the industry is using you know unity or unreal to do this type of application because it just has so many features and so much stuff is done for you but you know neither unity nor nor época are particularly interested in you know providing support for Linux as a first-class citizen at all you know unities got some stuff in the pipeline but you know in my experience it just hasn't really worked certainly not well enough to actually ship a product to eat to a user godo which is a game engine that is open source and you know very heavily lonex based they've got pretty good support you know they're supporting open VR and open hmd so that's probably your best bet if you want something that isn't very code based and requires you to you know go down to a very low level and write some you know pretty tricky 3d code you know probably if you can make it work and go to you know you can probably get it to run in VR maybe with one of those ap is blender is also a big supporter of you know VR and you know for their tools you know creative tools in VR are really exciting unfortunately I think a lot of their code is a little bit legacy and very OpenGL bound so I'm pretty sure that most of this stuff tends to be Windows only at this point in the VR space but you know I'm sure that they are very interested in moving that forward and also with VR actually wrote some patches to Firefox when I was working with Mozilla recently so that hopefully will be coming down the pipeline but nothing from Google the Chrome browser or anything anyone else and those you that support isn't quite perfect yet so I'll cover that a little bit later and you know some of the reasons for that is rewriting and Vulcan just for VR as a huge ask and the reality is that you know OpenGL doesn't really provide enough performance and there's a bunch of driver level problems that prevent it working really well with the approach at least the valve has taken with steamvr an open VR to get that stuff on the screen with the Layton sees that are necessary for VR and the other problem really is that you know for the creative community anyone who's doing game development or you know I guess content creation on you know for any reason at the path of least resistance when it comes to these commercial engines there's just so much there's just you know it's just so much easier just to say well you know I could write my own engine or I could just use unreal or unity and I could just use Windows you know that is just too easy too easy a choice for them to make and so I'll just cover just how you know like what I use just to you know do stuff on a day to day basis I mostly use fedora i use the l x QT desktop just because it doesn't have a compositor so that just cuts down my problems i use QT trader as my ide I like to use ideas rather than text editors that's just how I how I roll Rinda doc is a great tool that's written by I believe it's crisis the guys who write crisis just to really let you dig into the the GPU pipeline and what's happening at each stage of things you can inspect textures and geometry draw calls and the whole state of the GPU you know really get down and dirty and speak ting what your application is sending to the GPU and why it's going horribly wrong it's been invaluable over the course of my engine work I use GL fw4 window creation because it's easy C++ standard library of course you know you that's probably slower than you know rolling my own you know arrays and victor's and and you know lists and stuff but you know what if it doesn't show up on the profile or I don't I don't fix it you know QT for my GUI you're cute I don't know I can't say cute it's just silly duty is how I say it GLM this is a really great math library if you're looking to do anything in 3d graphics and you're wondering how you get your quaternions multiplied well your matrices multiplied and how do you how do you get a camera to point at something and express that as a matrix transform GLM will help you out big time it's been an invaluable tool for me just for networking in it that I believe came out of a game called celebratin or the cube - engine and it's just a very lightweight UDP networking library no mess no fuss just works I really like that I do a lot of work with video a lot of my background has been in video processing so I'm you know always always wanting to play videos and get the audio sync of videos working correctly and blah blah blah if if you impede indispensable tool and Linux for that stuff API is a little bit unstable but you know you can't argue with the functionality and GStreamer I use GStreamer when I need to send stuff across the network that there's video alike and so you know when I set out to sort of try and put something together I'd sort of realized that the commercial engines were not going to support my use case trying to do something with an existing OpenGL engine was going to be too slow at this time the extensions that would allow reasonably fast OpenGL you know paths to open VR to work were not present so I figured well I just I just do it from scratch how hard can it be you know I wanted to yeah in hindsight right I probably wouldn't have done it but anyway I wanted to optimize specifically for VR you know I wanted something that was going to support my crazy ideas in VR and do that kind of specifically I wanted a platform for my experiment that's really you know a lot of what I do is just playing around with stuff and trying stuff out I want to be able to ask a question and answer that with code you know I wanted to make it lean and fast because there what sort of drives a lot of graphics programmers and me as well it was an opportunity to learn Vulcan you don't have a reason you don't do it in a hollow you know a whole lot of other reasons it's it's like you know why not and just to touch on you know what other things need to be implemented to get a sort of a basic you know piece of functionality together you know you need some fire you need to be able to import misha's models you need physics you know at least you need to be able to kind of push stuff around or have objects interact with each other animation you know it's like you need to be able to animate stuff it and in some way shadows are you know for me completely necessary stuff without shadows just it you know it just looks terrible and for me video support was a must have multi-user networking I might plan for this eventually is to create a sort of a you know some kind of VR communal kind of social sort of space maybe it's a very nebulous plan but multi-user networking was a must you know 3d audio audio is really important in VR gives you a whole set of other cues and you know because you saw immersed good audio adds to that a lot needs the scripting language because you know who wants to recompile the whole engine just to make you know pinguin jump you know this way instead of that way and I was really interested in creative tools in VR paint interactive geometry you know being able to sculpt and I guess influence the environment in a very dynamic way you know so those were kind of my motivations and so the architecture that sort of informed a few decisions there you know for me to focus it's not an eye candy I didn't set out to make something that had you know all of the latest sort of shaded techniques and stuff I just wanted it to work and work fast I want to minimize draw calls if you're at all familiar with 3d graphics optimization you know draw calls are really your your enemy the more draw calls you have the slower things go this is mitigated by Vulcan to some extent but you know it's still you know the core constraint on you know how fast the GPU can can crunch sure your load I want to use texture adolescence where possible and I was quite inspired by I guess you know John Carmack's work on mega textures and the rage and and other engines going forward you know paging textures in and out of GPU Ram is really interesting I haven't quite got there yet I've been I've got horribly sidetracked which I'll touch on later I wanted to just sort of do as much as I could on a single shader because I didn't want to I guess prematurely kind of end up in the situation where I was just juggling all of these resources to to get things done I just wanted to keep things super simple a very minimal scene graph I I'm not even sure if I have parent-child relationships out outside the physics engine I wanted to really multi thread the GUI the video decoder and all that stuff so multi-threading was was quite a you know a goal for me is that you know that's the other thing that often works against you with 3d engines as if you don't have if everything bottlenecks on a single thread you know it sort of binds everything up you know you know just what the networking latency is key in VR so I wanted to reinforce that with a networking as well so it's sort of first-person shooter or inspired UDP very small state packets just try and minimize that and you know you know for my purposes that works fine and I also wanted low system requirements I at the time I sort of embarked on on this I didn't really have a job so the the you know best GP I had was a gtx 770 which is nowhere near what you know oculus or you know valve say as a minimum for VR but you know i was able to do 90 frames per second sustained in VR no problem and it ran about 300 frames per second you know without being you know it's synced by the by the open v a submission so with Falken you know where do you even start this is something that i get asked you know by the the very rare and the rare case that someone is actually interested in 3d graphics in vulcan you know they're so where to even start and really you know this is where i started i've read some stuff on the internet you know i started hacking I followed Vulcan tutorial calm that's very good and many many hours later and you know I you know I'd underline that many I think maybe I lost the underlying style there but it did take a lot of hours to get this cube on screen but it was it was cool I was like yes I painted something in a window with Falcon it's like wow that's that's neat you know most people look at them they go wow you know Pete that's crap you know that's a single cube what do you even you know what even doing but um you know what we're really quick for me is that um you know stuff like this I sort of got a really brief integration of a physics engine and you know that's I think two and a half thousand cubes all with their own you know shader load everything each end up in each cube is completely independent draw call completely independent state set up and that runs like with less than one millisecond per frame it's super fast and that was the moment where I was like okay this falkland thing it's got something done for it and so I kind of moved on from beer and the last time I gave this talk I had a bunch more slides and I kind of went into a little bit too much detail so I'm just going to kind of skip over some of the stuff so I can get some of the other things you know there's some yeah there's animation in there integrating open VR this was my first test of five controllers and physics you know just being able to touch this thing and it would you know trigger some movement like I said it's my first test you know I like to show people my unpolished work because you never get to see that normally you know you never get to see that this is what it looked like before it looked amazing kind of thing but a networking here again within it this is like two clients there I'm you know waving my controller around and moving the view around and you can kind of see there's these two players in the room sort of looking at each other and there's a video playing in the background you know all that's multi-threaded it's it's runs really well I'm quite happy with it with the shadows and all that stuff so I'm still working on on some of the Avatar stuff but yeah it's um it's kind of cool to get to that point and some experiments you know this is some stuff I was doing with GStreamer where you know this is a webcam that I'm sort of waving around the office that's playing you know really quite low latency video and it's got audio as well you can't quite hear that but you know that was cool this is a Kinect streaming my living room or my living room at the time so this is streaming over the network point clouds that I can kind of bounce around in you know and this was one of the things that I really wanted to experiment with and you know Vulcans live over here means you can just kind of can't like just get all these points and GPU RAM and just just throw them at the GPU and it's you know make stuff possible that I would kind of struggle doing efficiently with OpenGL and here's another little example this is me watching myself in VR in VR and you know one of my friends I don't know this is probably going to violate some code of conduct but one of my friend said well you can watch yourself masturbate while you masturbate in VR and I yeah sorry and you know another thing this is my poor man's tilt brush which is using sort of standing textures and programmer art but you can that's the trigger that some you know modulating the width of the stroke there so you can kind of paint stuff in 3d and this VR world you know this is kind of where I sort of wanted to get to when I sit out it's like well I can actually you know create this geometry and just have have fun and BR and do the stuff it's neat this is that's kind of what gets me going so I'm having quite a long you know after doing this for a while I had kind of got my stuff to a bit of a point where yeah you know it sort of reached a bit of a plateau and I was doing various pieces of consulting work for other companies rent Wellington there's a bunch of VR startups none of whom have any money so you know it's like you know Pete could you do this for us yeah I could are you gonna pay me no oh well I guess I'll do it anyway but some one day friend of mine in an IRC channel posted me just a single line of text which was he kept hassling Mozilla saying wins Firefox they are going to be supported and they said we're actually looking for contractors if you know of anyone doing plus plus and you know graphics have them reach up to us so I was like okay why not so I sent an email to you know the hit of Mozilla mix reality he got straight back to me and said you know we're really interested I sent him my Twitter and he hired me just like that just worth showing all of that stuff so I was really happy about that and so this year this this thing up here this is the very first Vulcan Mozilla Interop this is Mozilla or Firefox rendering to a Vulcan texture that's been imported into OpenGL bound as a render texture and rendered too if you're at all familiar with those challenges of doing IPC with you know zero copy leaving it on the GPU on Linux this is kind of a big deal and I was really happy to kind of get this far but um you know then that this one is actually a friend of Mines project called crypto voxels it's 3d world this is a separate program being driven by Mozilla that's just a view earlier so the input is going through the browser yeah and it's rendering to a single texture and displaying that in a Vulcan application that's just all it does is displays the texture so this is kind of my next step and this is using the OpenGL external memory objects extensions for Vulcan so this works on AMD and NVIDIA it works across display platforms whether that's X org or Wayland I haven't actually tested on on Wayland but I assume it does assuming there's a you know a Vulcan API theoretically it will work on Android it will work anywhere you've got a Vulcan driver with those external memory object extensions which is you know kind of cool because previously in order to get memory from one process to another you know you would either have to go through the Xserve or you would have to go through the DRM layer of the kernel you know it just it was really hard and there was no standards involved and you know trying to make that work on Nvidia AMD Intel etc I just threw up my hands and this is the stuff that I've kind of been waiting for to do this kind of thing but that's not to say there aren't problems with my cell you know we'd be our stuff I'm getting it to work was actually quite tricky it took me a while to I mean you know basically months of part-time work to make this function correctly mostly because of inconsistency in volcán drivers you know nvidia and AMD kind of have differences in how they do the stuff which you kind of have to go into the driver source code to understand which is great on the AMD side side because you can do that so you know there is a big one for hamdi you know i was able to just like okay why isn't this working you know look in the AR adv source code or that's why it's not working that's stupid but it's why it's not working ok and so that that helped me along there and the lack of documentation around these extensions and the lack of people actually doing this stuff I think it's really just valve and and me you know there's a couple of people doing doing some initial Wayland compositor stuff which is cool but it's nice to I guess be on the bleeding edge I'm kind of a little bit um you know I'm pretty stoked with that optimal texture format one of the you know one of these things that aren't documented with all and the drivers and I sort of needed to make a few guesses around some of that I've come up you know because there's no documentation I don't know if my if my hair actually sort of as the right way to do it but it seems to work and you know this is you know Firefox rendering to the vibe the frame rate and the video is actually quite low but that was since fixed and so this was a big milestone for me with this work you know it's really cool to actually get this working it's actually running in the Firefox window it's displaying to the vibe you know yeah that was cool and so the viability of Vulcan drum and IPC for this kind of application as is definitely proven there's a lot of areas in I guess the Linux graphics stack and in the Linux application space that could really make use of zero copy GPU texture IPC thank so you know if any of you guys have ideas or I want to talk to me about how that could happen happy to talk about that and there's also some proof of concept code I've got off on my get lab you know that would make me really happy to to share that knowledge and and help anyone out you know there's some really good performance you get out of the stuff you know that's really the reason why it's done that way and thanks Mozilla I'm pretty sure there's someone from Mozilla down here I believe she might be doing the next talk in this room I don't see here I don't actually know her so if you are here thanks Mozilla you paid me it was great and this is just Firefox running sketchfab and this is the display window so this is mirroring what you see in the vibe and this was sort of my real test this is quite a complex application there so you know I kind of got it to the point where you know off-the-shelf websites that make reasonably complex use of web VR and things like that you know they do work on Linux and it's a little bit hard to see in this video but it works pretty pretty fast you know fast enough to be usable so that was you know that was kind of problem solved or milestone hit for me with this work unfortunately I was a little bit cut short in the contract and Mozilla couldn't extend it for legal reasons apparently hiring new zealanders I don't know but that sort of moved on to opportunities with Calabar now and there's a couple of other people who are sort of interested in in general terms and what I'm doing so it's really I guess for me achieved something of a dream of being a professional graphics developer with Linux technologies you know I mean it would be easy to go and do unreal or unity development and make games or other 3d content but you know I'm really passionate about Linux and really passionate about using Linux as a platform possibly because of my history with you know both VFX you know we're Linux is heavily used but also going back you know many many years did ADEs - I you know I used to work for catalyst you know it's paper from catalyst represented on the room shout out you know a great place to work and met that really you know influenced my path big time so cool you know just while I've still got a few minutes I will take questions but um so that I touch on some some of the other work that I'm doing you know using the psvr ps3 ours a cheap HMD it actually is pretty cool it's got really good economics doesn't have hugely high resolution but it makes for a great setup I think and it's got an interesting tracking system that's based on stereo cameras from Sony and you know one of the things that I wanted to do was kind of sit out on this path to actually make that function haven't quite got there yet I have to say about some I had to go down quite a few rabbit holes just to get it to display nicely and do some stuff that I wanted it to do so that involve doing you know distortion reverse-engineering you can see I've made this that's hard to see possibly but that's a little 3d printed Cup that goes over the lens it kind of puts the camera where your eye is and so you can you know sort of distortion from the point of view of the eye you know it's complicated and silly but that's really interesting work so those distortion tools are also up on my get lab somewhere for free if you're interested in that sort of thing I'd love to have some help on on that side of things because that's something that you know what I've got kind of works well enough for me but it's not perfect so so yeah and this picture here that's my MacBook Pro I know that's terrible but um that's running a cubemap stereo image viewer for a company that I do some consulting for unfortunately it's closed source so I can't talk too much about it but yeah the psvr works really well and a limited kind of resource system and ear for viewing video and vr that's kind of neat moving on to the optical tracking side that I've been sort of working on one of the things that has to be done is you know you need to isolate the LEDs so you can blob track them you need to subtract the background of the frame so that you're only tracking the things in the frame that I'm moving you need to do singular vector decomposition which is essentially a way to come up with a pose or the best best fit 3d transform to match a set of measured values to a model and you've got to kind of put a let together and make that run in real time and make it robust against you know blobs dropping in and out of frame etc etc etc and so this was my very first attempt at tracking a single LED on the front of the psvr and this is kind of cool this is open HMD with a psvr in my engine and it's kind of sort of kind of working no which was a big buzz for me it's it's not working well enough to you know put out there but it's it's kind of neat you know and this one has some application that I sort of write to you know pull this whole process together so you can see me waving the psvr they are turn the LEDs on in the front unfortunately the projector is really killing the contrast so you can't really see the blob tracking but those little dots there that's the position of the psvr as I move it around you know you can see it kind of working so after I extend this a bit more you know I'm pretty confident that we will have a positionally tracked VR headset that works with open HMD as I found sauce for Linux which will be pretty cool so that's pretty much about it from me so do you guys have any questions connect v1 oh he jolt saw me using some point clouds and he was asking if there was the connect v1 whether connect v2 and it is the connect v1 mostly because the connect v2 has like an IR and for red frequency that doesn't play nicely with the lighthouse base stations from valve so if you want to use a connect in the same room as a vibe you'll have a bad time unless it's an old connect one which works flawlessly so that that's why I use that it's just Linux I'm sorry I have to repeat the question the question was I always do this is the work that I've done for Mozilla only on Linux or is it for all platforms and I design you for for Linux because you know Windows already works Mac OS probably you know Eponine who knows what they're doing know it no one really knows I certainly don't and it's probably not a priority for them they do have support for their Android the Android who hits it's like oculus go and things they've got their own browser Firefox reality you know this sort of got a whole program that is aimed at supporting those devices specifically but yeah Linux VR support was a bit of a hole so I'm you know really happy to have been able to contribute to that oh thank you
Info
Channel: linux.conf.au
Views: 3,447
Rating: 5 out of 5
Keywords: lca, lca2019, #linux.conf.au#linux#foss#opensource, PeteBlack
Id: lZUCqGMGXl8
Channel Id: undefined
Length: 41min 8sec (2468 seconds)
Published: Thu Jan 24 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.