Jump to content



Photo
* * * * * 13 votes

VP with VR headset


  • Please log in to reply
2044 replies to this topic

#1521 gear323

gear323

    VPXVR is awesome.

  • Members
  • PipPipPip
  • 324 posts
  • Location:New Jersey

  • Flag: United States of America

  • Favorite Pinball: All

Posted 03 February 2020 - 06:52 PM

Great to see toxie and fuzzel chiming in here. Wonderful to hear VPVR will be baked into VP11 when the time comes!

After ten years of service from my old GTX 750ti based machine, I finally decided to upgrade to a Core i7 / GTX 2060, with the express purpose of jumping on board with VPVR. New machine arrived this weekend. Got VPVR up and running! This first post is to just explain how easy it was to create a fresh installation of VPVR for anyone who might be interested in joining the fun. I'll post a separate "thank-you" message later (That'll probably be a long post, too!).

Installation process was smooth. I watched this instructional video. Recommended for VPVR newbs, like myself:


Caligula also has a helpful "Getting Started" post on his VPVR sourceforge page. The first instruction is to get "regular VP" up and running on your machine. Since this was a fresh install, I used the "all in one" VPX installer. Interestingly, the all in one installer did not give me the option to choose 64bit VPX vs. 32bit VPX (unless I missed it). I believe it installed the 32bit version.

Next instruction was to install VPVR and drag those uncompressed files into the "regular" visual pinball folder. I'm using a single monitor on this new computer (I'm still running my cabinet with a separate old computer), and chose installation options accordingly. Everything was pretty straightforward.

Third step for me was to get Oculus Link up and running for the first time. I installed Steam and the Steam VR extension. I downloaded Oculus Rift (even though I'm using a Quest, the Rift software is the only variant available for PC from Oculus). I unboxed my new 10 foot "Party Link" cable. It's USB C on both ends, but came with a USB C to USB 3.0 adapter. I couldn't for the life of me get my PC to recognize my Quest. I tried every single USB port on the machine. Finally, I found a Reddit thread that advised making sure the silk-screened side of Party Link cable USB 3.0 adaptor lines up with the silkscreened side of the Party Link USB C cable end. I'd done that. What was the problem? Just to make sure, I popped the adapter off, flipped it around the other way and snapped it back on. Bingo! Computer recognized the Quest. Green light. My cable adapter was simply silkscreened on the opposite side. Had no idea "which direction" you plug in a USB cable matters. Hope this helps someone. Cost me over an hour of trial and error and some doubts that I'd chosen the right gear!

Once the Oculus Rift software recognized my Quest the next step was to launch Steam VR. That was easy. I bumped the supersampling up to 150% (as I'd read people are getting good results) within the Steam VR settings.

Next I downloaded Arconovum's FSS mod of Bord's Pinbot table. I'm pretty sure Arconovum's FSS tables still require the associated backglass file to be renamed to same name as table file and placed in the VP tables folder, just like with regular VP. I did that. With Oculus Rift software running on PC, Quest connected via Party Link cable, and Steam VR runnning, I launched the VPVR app. I got a black screen. I was thinking it wasn't working. Then I checked over my right shoulder. Pinbot was "half way across the room." Ha! I took my computer keyboard over to the cab (I'd mapped the buttons earlier using JoyToKey) and pressed the zero key to recenter (this feature is fantastic -- I can't see how you guys got by without it early in development!). Mind was instantly blown.

Zen pinball on Quest gave me VR pinball fever. I really want Zen to know that their platform and ours can co-exist peacefully -- indeed that VPX is more or less an "advertisement" for their proprietary stuff. I buy all things Zen. Pinball FX2 on the Quest got me excited enough to buy a new computer to try VPVR. Boy, am I glad I did! I couldn't believe my eyes. Pinbot looks incredible in VPVR. VPX physics (which I already loved on the cab) make "even more sense" in VR. Everything translates so well. I had high hopes, and in most ways VPVR has exceeded my expectations. Can't believe this is "alpha" software!

Way to go Devs!

Hi Ben

Since the Quest is not a native PC VR headset super sampling does not work on it that way it does on basically any of the PC VR headsets. In fact, when link came out there was no way to super sample on the Quest.

I believe the only way to super sample on the quest is to follow these instructions as Oculus added the ability to SS the quest in a somewhat recent update and the process only works on a Quest.

The good news is you can probably get the picture looking better than what you currently have :)

I know DJRobX has tried this so maybe he can chime in on how much of a difference it made for him and what settings he used etc. if you are interested.


https://youtu.be/TgvFfsx0qAw

Edited by gear323, 03 February 2020 - 06:57 PM.


#1522 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 03 February 2020 - 08:11 PM

Thanks, gear323! That’s great news. Can’t wait to try this when I get home from work today. Much appreciated!

#1523 Rawd

Rawd

    Pinball Wizard

  • VIP
  • 4,313 posts
  • Location:Edmonton, Canada

  • Flag: Canada

  • Favorite Pinball: Triple Strike



Posted 03 February 2020 - 08:47 PM

 

 

Thanks.   It runs fairly smooth here.. Multiball is fine,  but I do get some jitters when all the flashers are going off.

Yes, I realize that it is 2D, but if we could at least put an angle on the lighting object, we could use it vertically, flat up against a backdrop/wall or a backglass.

 

 

Table authors have been asking for that, for a long long time.    Use a flasher object instead, which can be angled.     It's just painful to align them, requires a lot of trial and error.  

 

 

Thank you..   But can a flasher work just like a light?   I don't understand how a flasher will brighten something that is behind it with proper falloff.

 

@ Ben -  Nice to see you're up and running!


Edited by Rawd, 03 February 2020 - 08:48 PM.


 


#1524 Caligula_

Caligula_

    Enthusiast

  • Platinum Supporter
  • 74 posts

  • Flag: Germany

  • Favorite Pinball: Addams Family

Posted 03 February 2020 - 08:53 PM

 

Regarding performance and VPVR I am 100% sure it can improve a lot by techniques like grouping things together and doing batching the draw calls to the shader for each frame (this is the biggest thing hurting performance) but that stuff is too difficult for me to figure out how to implement in the engine, a bit too abstract for my brain how to do in code even if I understand the concept of it. So it's not that rendering pinball tables in VR are a performance killer it's just not completely optimized at the moment so there is a lot of potential to improve it.

I am pretty much interested in this topic, but my skills do not allow me to understand it completely yet.

Are you talking about work groups for compute shader? Is it right that a group would invoke one call and this could save ressources over calls for each shader because some shader share the same value?

If so, you think this could make a huge difference in performance? If so, we should get this done. Maybe toxie and/or fuzzel have an idea how to implement this.

If I got anything wrong, plmk.

 

There is already some (non-working) code for grouping meshes together in VPVR. So instead of creating a list of vertices and triangles for every object in the scene and switching them for every drawCall, I tried to group them into lists. And instead of rendering all triangles in a list, only a part of the list will be rendered. This would save a lot of Buffer switches and increase performance. And of course it would be possible to group objects toeghter to render them in a single drawcall. And to even increase performance, identical meshes for different objects (bumpers, screws, nuts...) could be rendered as instances instead of having a mesh for every single object. This only works if the meshes are identical, but I use this technique already to render both eyes at the same time.

 

Also Shaders switches between the same shader are also ignored, but It could help to reorder the parts to further reduce the shader switches (Lightning, transparent elements and post-processing happen already after the opaque parts).

 

So there are lots of things to tweak performance, but at the moment I hope to find some time to catch up with the many commits from Toxie and Fuzzel for VPX.



#1525 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 03 February 2020 - 09:17 PM

Sincere thanks to you, Caligula! Getting to experience your work for the first time this weekend was a positive thrill. I missed half the family Super Bowl party at my brother’s house, I was so blown away by VPVR!

#1526 unclewilly

unclewilly

    sofa king.....

  • VIP
  • 5,185 posts
  • Location:Baltimore, Maryland

  • Flag: United States of America

  • Favorite Pinball: tz, tom, big hurt, who dunnit



Posted 03 February 2020 - 09:27 PM

Great to see toxie and fuzzel chiming in here. Wonderful to hear VPVR will be baked into VP11 when the time comes!

After ten years of service from my old GTX 750ti based machine, I finally decided to upgrade to a Core i7 / GTX 2060, with the express purpose of jumping on board with VPVR. New machine arrived this weekend. Got VPVR up and running! This first post is to just explain how easy it was to create a fresh installation of VPVR for anyone who might be interested in joining the fun. I'll post a separate "thank-you" message later (That'll probably be a long post, too!).

Installation process was smooth. I watched this instructional video. Recommended for VPVR newbs, like myself:


Caligula also has a helpful "Getting Started" post on his VPVR sourceforge page. The first instruction is to get "regular VP" up and running on your machine. Since this was a fresh install, I used the "all in one" VPX installer. Interestingly, the all in one installer did not give me the option to choose 64bit VPX vs. 32bit VPX (unless I missed it). I believe it installed the 32bit version.

Next instruction was to install VPVR and drag those uncompressed files into the "regular" visual pinball folder. I'm using a single monitor on this new computer (I'm still running my cabinet with a separate old computer), and chose installation options accordingly. Everything was pretty straightforward.

Third step for me was to get Oculus Link up and running for the first time. I installed Steam and the Steam VR extension. I downloaded Oculus Rift (even though I'm using a Quest, the Rift software is the only variant available for PC from Oculus). I unboxed my new 10 foot "Party Link" cable. It's USB C on both ends, but came with a USB C to USB 3.0 adapter. I couldn't for the life of me get my PC to recognize my Quest. I tried every single USB port on the machine. Finally, I found a Reddit thread that advised making sure the silk-screened side of Party Link cable USB 3.0 adaptor lines up with the silkscreened side of the Party Link USB C cable end. I'd done that. What was the problem? Just to make sure, I popped the adapter off, flipped it around the other way and snapped it back on. Bingo! Computer recognized the Quest. Green light. My cable adapter was simply silkscreened on the opposite side. Had no idea "which direction" you plug in a USB cable matters. Hope this helps someone. Cost me over an hour of trial and error and some doubts that I'd chosen the right gear!

Once the Oculus Rift software recognized my Quest the next step was to launch Steam VR. That was easy. I bumped the supersampling up to 150% (as I'd read people are getting good results) within the Steam VR settings.

Next I downloaded Arconovum's FSS mod of Bord's Pinbot table. I'm pretty sure Arconovum's FSS tables still require the associated backglass file to be renamed to same name as table file and placed in the VP tables folder, just like with regular VP. I did that. With Oculus Rift software running on PC, Quest connected via Party Link cable, and Steam VR runnning, I launched the VPVR app. I got a black screen. I was thinking it wasn't working. Then I checked over my right shoulder. Pinbot was "half way across the room." Ha! I took my computer keyboard over to the cab (I'd mapped the buttons earlier using JoyToKey) and pressed the zero key to recenter (this feature is fantastic -- I can't see how you guys got by without it early in development!). Mind was instantly blown.

Zen pinball on Quest gave me VR pinball fever. I really want Zen to know that their platform and ours can co-exist peacefully -- indeed that VPX is more or less an "advertisement" for their proprietary stuff. I buy all things Zen. Pinball FX2 on the Quest got me excited enough to buy a new computer to try VPVR. Boy, am I glad I did! I couldn't believe my eyes. Pinbot looks incredible in VPVR. VPX physics (which I already loved on the cab) make "even more sense" in VR. Everything translates so well. I had high hopes, and in most ways VPVR has exceeded my expectations. Can't believe this is "alpha" software!

Way to go Devs!


We have almost the same setup. Except i have a gtx 1080. My headset comes next week i hope my results are as good as yours

"it will all be ok in the end, if it's not ok, it's not the end"
 
Monster Bash VP10 WIP https://dl.dropboxus... (vpx)WIP15.vpx

uw2.gif


#1527 Rawd

Rawd

    Pinball Wizard

  • VIP
  • 4,313 posts
  • Location:Edmonton, Canada

  • Flag: Canada

  • Favorite Pinball: Triple Strike



Posted 03 February 2020 - 09:37 PM


We have almost the same setup. Except i have a gtx 1080. My headset comes next week i hope my results are as good as yours

 

It's nice to see you back.   I hope all is well with you.



 


#1528 Rawd

Rawd

    Pinball Wizard

  • VIP
  • 4,313 posts
  • Location:Edmonton, Canada

  • Flag: Canada

  • Favorite Pinball: Triple Strike



Posted 03 February 2020 - 10:23 PM

Request/question for VPVR devs...

 

Would it be possible to allow the Table centering position to be changed on a per table basis?  (I have noticed that not all tables have been built in the same forward position.  Some lockdown bars are almost a foot back from others).



 


#1529 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 03 February 2020 - 10:35 PM

Uncle Willy, so glad you’re jumping on board. Your Bad Cats table remains a favorite around our place.

#1530 gear323

gear323

    VPXVR is awesome.

  • Members
  • PipPipPip
  • 324 posts
  • Location:New Jersey

  • Flag: United States of America

  • Favorite Pinball: All

Posted 03 February 2020 - 10:37 PM

Request/question for VPVR devs...
 
Would it be possible to allow the Table centering position to be changed on a per table basis?  (I have noticed that not all tables have been built in the same forward position.  Some lockdown bars are almost a foot back from others).

Just to add to this, I had given this some thought a few weeks ago and if there is ever an effort to address this, maybe VPX VR could just align tables by the lockdown bar for both distance and height. Even if we need to rename the primitive for the lockdown bar on every single table it would be nice if the height and distance could be set once to match our physical cabinets and VPX VR could then use the lockdown bar as point of reference to align the tables. Jurassic park VR Room is a good example of a table that is extra high and BK2000 is an example of one that is pushed forward for example.

These tables were built this way originally and unless anyone else knows a better way, I had to adjust the entire VR room in some cases like Jurassic park to be higher to match the table height and with BK2000 I just pushed the one table forward to match the tables position. The only alternative I could think of was to move every single object on the original table to match the VR cabinet and well that is not an easy adventure, especially with lights and flashers etc.

Edited by gear323, 03 February 2020 - 10:44 PM.


#1531 The Loafer

The Loafer

    Pinball Wizard

  • VIP
  • 3,471 posts
  • Location:Embrun, Ontario, Canada

  • Flag: ---------

  • Favorite Pinball: Superman, Firepower & Tron



Posted 04 February 2020 - 01:01 AM

I will admit that this is a bit ridiculous.... :)

 

wIcZoq7.jpg

 

 

I got an animated plunger button working, and I'm messing with undercab lighting...

 

 

UFO's attacking homes next...  lol.

 

 

A question for VPX or VPVR developers if they read this...  

Why can't we angle lights in VP?  Would it be difficult to be able to make it possible to put an angle on lighting?   It would make lighting really nice to use vertically against a wall or backglass for instance in VR. 

 

Wow I can't wait to play this!  I gotta give you full creds for taking the VR theme and just running with it!



#1532 blindpeser

blindpeser

    Enthusiast

  • Members
  • PipPipPip
  • 421 posts

  • Flag: ---------

  • Favorite Pinball: WCS94

Posted 04 February 2020 - 12:34 PM

Can't prove, but I think this helped me to get some more fps:

 



#1533 phlove

phlove

    Enthusiast

  • Members
  • PipPipPip
  • 100 posts

  • Flag: Costa Rica

  • Favorite Pinball: Walking dead

Posted 04 February 2020 - 03:13 PM

Finally guys with help of this "too long" post ^^ i got my headset running.

 

What i want to know is the following , when i dint want to creat a room and i just want to play the table in the dark, how do i activate the DMD that its working inside of my VR.

I noticed that some tables have one in the vr and some not but i cant figure out why.

 

 

regards



#1534 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 04 February 2020 - 04:21 PM

Finally guys with help of this "too long" post ^^ i got my headset running.
 
What i want to know is the following , when i dint want to creat a room and i just want to play the table in the dark, how do i activate the DMD that its working inside of my VR.
I noticed that some tables have one in the vr and some not but i cant figure out why.
 
 
regards


As far as I can tell, there are three methods involving either creating a textbox, using a flasher to embed the DMD or LCD, which then must be referred to in the script. Another way is by employing third party software to "capture" a second screen. I don't know how to do any of these. I only mention these methods to say, it's not so simple. Takes a little bit of "know-how.”

Have you tried Arconovum's FSS tables? They'll appear as "just the table" in a dark space, with LCD, EM scoring reels, or DMD all ready-made to work for you. I love his stuff in VR. Recommended!

#1535 phlove

phlove

    Enthusiast

  • Members
  • PipPipPip
  • 100 posts

  • Flag: Costa Rica

  • Favorite Pinball: Walking dead

Posted 04 February 2020 - 05:37 PM

ok so i should go on the VR room tutorial 1.2 ?



#1536 dark

dark

    3D model-man

  • VIP
  • 1,936 posts
  • Location:Toronto

  • Flag: Canada

  • Favorite Pinball: Star Wars, AbraCadaBra,MB, LAH,JPark...too many to choose!

Contributor

Posted 04 February 2020 - 05:37 PM

 

 

 

The environment (HDR) image can affect how 3d objects look for sure but I don't think that's the root cause.  These rendering artifacts or 'jaggies' have been around long before the introduction of environment maps, though it has seen improvement, it still has some ways to go.  I think it has more to do with the rendering, if we compare to Future pinball (which is really old now) it never really suffered from jaggies like VP has and I believe that's due to FP running off OpenGL.

VPVR is using OpenGL graphics pipeline that's the major difference from VPX.


@dark if you are interested you can read some valuable advice and input from John Carmack about VR and aliasing here: https://news.ycombin...tem?id=12183340

 

Basically his input served as a guideline for me when i did the enhancements on VPVR.

 

My two cents: in a nutshell, environment maps had introduced realistic HDR lighting to VP, thus rendering of tables now can feature much much more contrast in shading/lighting, which also comes at the price of jaggies if lighting changes dramatically on geometric edges (i.e. like on thin wireframe ramps).

VPX works around that issue (where possible) by pre-rendering all static geometry on table start and oversampling these a lot, similar to what offline renderers (must) do. VPVR obviously cannot do this, as the camera is able to change.
Thus, there one would need something like temporal anti-aliasing.

 

 

And here are my two cents: Rawnei is right changing the lighting/camera in that way would mean a major change in the render engine and how you create tables. Dynamic lighting and camera movement is on the to-do list of VP11 but because of backwards compatibility reasons it won't be part of VPX. We're also planning to add VPVR into VP11 so that we don't have to maintain two applications that share the same code base somehow. And before anyone asks when a VP11 is available: when it's done :D First we will release a VP10.7 and after that we think about starting VP11....

 

Thanks Fuzzel, hearing this gives me a measure of excitement...

 

I look forward to the day we reach VP11 as you describe it.  My reasoning for dynamic lighting being a top priority is that as nice as current VPX tables are, when the day comes when lighting is dynamic they will all have to be re-done to accommodate the new lighting.  However once tables are built in a dynamic environment I believe we will reach another vpinball renaissance where the top quality tables will have a long shelf life before 'technically' needing an update.  While I think current VP lighting is adequate to achieve nice effects and part of the upside to it is it does allow for some creative freedom, I think dynamic lighting will help standardize lighting across tables.  For example if we have a pre-built light (settings pre-dialed) for a standard/common incandescent bulb or LED bulb that is set to match it's real life counter part, other users can re-use this same light over and over again giving a realistic result even to a novice user.  The same could be said for other 'standard' lights like flashers, spotlights etc.



#1537 blindpeser

blindpeser

    Enthusiast

  • Members
  • PipPipPip
  • 421 posts

  • Flag: ---------

  • Favorite Pinball: WCS94

Posted 04 February 2020 - 06:34 PM

Same here, once the libraries are set, it is goint to be easier to develop, improve and customize tables. Currently there a lot of layers full of lights and flashers that look awesome on many tables but are just hacks. We do not need this kind of stuff anymore, once dynamic lighting is there. But I bet fuzzel recognized that already. ;)

#1538 Dez88

Dez88

    Hobbyist

  • Members
  • PipPip
  • 19 posts

  • Flag: England

  • Favorite Pinball: NBA Fastbreak

Posted 04 February 2020 - 06:39 PM

 


As far as I can tell, there are three methods involving either creating a textbox, using a flasher to embed the DMD or LCD, which then must be referred to in the script. Another way is by employing third party software to "capture" a second screen. I don't know how to do any of these. I only mention these methods to say, it's not so simple. Takes a little bit of "know-how.”

 

https://www.vpforums...=38417&p=426614



#1539 Ben Logan

Ben Logan

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,275 posts
  • Location:California

  • Flag: ---------

  • Favorite Pinball: System 11

Posted 04 February 2020 - 06:50 PM

Thanks, Dez88!

#1540 unclewilly

unclewilly

    sofa king.....

  • VIP
  • 5,185 posts
  • Location:Baltimore, Maryland

  • Flag: United States of America

  • Favorite Pinball: tz, tom, big hurt, who dunnit



Posted 04 February 2020 - 08:03 PM

So if i understand correctly all the fss tables work for vr out of the box.
Is there a way to drop in a room for these tables

"it will all be ok in the end, if it's not ok, it's not the end"
 
Monster Bash VP10 WIP https://dl.dropboxus... (vpx)WIP15.vpx

uw2.gif