W3C HTML5
This website relies solely on user submissions.
Reviews, speculations, how-tos; anything to share?
Follow us:
#vronlinux @Freenode
Steam Group

To comment or submit articles, register and login.

Opinion: Quake III Arena Maps in VR, under Linux, with Vive+Vrui

(vronlinux.com)
Posted by Norbert, 5 months and 2 days agoThu, 24 Nov 2016, 13:42 (13 comments)
See, now that we can use Vrui on Linux, we're getting somewhere. Face-grin If you always wanted to walk around in Quake III Arena maps, with animated clouds, flames, portals and pick-ups, continue reading.

(continues after the image)

image

Time to get things up and running. First off, I'm going to assume you've successfully gotten Vrui to work using this guide. Start and keep running:

$ RunViveTracker.sh


Then get and compile the Vrui compatible version of Cave Quake III Arena (CQ3A):

$ wget http://stout.idav.ucdavis.edu/Software/CaveQuake/CaveQuake-2.2.tar.gz
$ tar -zxvf CaveQuake-2.2.tar.gz
$ cd CaveQuake-2.2/
$ make


Next up, you'll need to obtain pak0.pk3 of Quake III Arena, and add it to CQ3A:
(The file name is case-sensitive; PAK0.PK3 won't work.)

cp pak0.pk3 ~/CaveQuake-2.2/share/CaveQuake-2.2/


Finally, launch CQ3A:

$ cd ~/CaveQuake-2.2/bin/
$ ./cq3a maps/q3dm4.bsp -rootSection Vive


Like with ClusterJello, the "-rootSection Vive" bit picks the Vive for output.

Note that this Vrui environment provides two menus, depending on which controller buttons you use:
  • One has a checkbox with "Toggle Sky".
  • The other allows you to pick "Walk" from the "Navigation" sub-menu. Note the circle on the floor that you can use to confirm your starting position. To walk around after selecting this tool, simply step/lean towards the direction you want to go.


You can walk up the stairs and everything. Now all we need is a way to shoot stuff. Face-wink
avatar
Debian Website Steam Twitter Youtube
anchor Comment by Seegras, 5 months and 1 day agoFri, 25 Nov 2016, 15:04
Same troubles here with compilers. I found the probably correct way to set the compiler flags is to edit
share/Vrui-4.2/make/BasicMakefile

and to set
EXTRACSYSFLAGS += -D_GLIBCXX_USE_CXX11_ABI=0

in there.

Also, I needed to set
EXTRACSYSFLAGS += -fPIC 
temporarily, to compile CaveQuake-2.2.


It runs, but I really don't comprehend how the controls are supposed to work.
avatar
Mint Steam
anchor Comment by Norbert, 5 months and 1 day agoFri, 25 Nov 2016, 18:22
SeegrasIt runs, but I really don't comprehend how the controls are supposed to work.


In VR, it's basically like you're on a Segway vehicle:

README.VruiIn VR environments like a CAVE or a head-mounted display, the "Walk" navigation tool found in the root "Navigation" tool sub-menu is an appropriate choice. To bind it to a button, press and hold that button, select "Navigation"->"Walk" from the tool selection menu, and then press the same button again to confirm. This will draw a green bulls-eye on the floor. Step inside the bulls-eye's center circle. To activate the tool, press the bound button once. Now, to walk in any direction, step or lean outside the inner circle in the direction you want to go. The more you lean or step out -- up to the outer circle -- the faster you go. To stop, step back into the inner circle. To disable the walk navigation tool, press the bound button again.
avatar
Debian Website Steam Twitter Youtube
anchor Comment by Seegras, 5 months agoSun, 27 Nov 2016, 12:57
Hmm, I can see that I can map functions to devices/tools while the program is running. However, I don't quite understand how I can map these beforehand, for instance within a config file. Because I know what devices I want to use for which function in which application.

And of course, how can I either save to, or change settings in, a config file?

Right now, I've got VruiXine starting up with the sound muted. Also, with the plane of the movie diagonally skewed to the left of me, and with the control menus appearing meters in front of me (and unreadable, of course). Apart from the sound, which I can't unmute within VruiXine, I can change the screwed-up movie plane and get it to display centered in front of me (actually, I only need to click on "Theatre", and it gets centered) -- but how can I make it remember these settings?

VruiXine also sets the master volume to 100%. Not muted; the muting apparently only applies to VruiXine itself; it's not mute for everything else.

There's an undocumented configfile, by the way, strace tells me:
open("/home/user/.config/Vrui-4.2/Applications/VruiXine.cfg", O_RDONLY)
avatar
Mint Steam
anchor Comment by Norbert, 5 months agoSun, 27 Nov 2016, 13:05
For VruiXine, you may want to run - if you haven't already:
$ RoomSetup Vive
avatar
Debian Website Steam Twitter Youtube
anchor Comment by Seegras, 5 months agoSun, 27 Nov 2016, 13:18
Yes, I did that already.

And I just managed to save half the settings in VruiXine by saving the settings within the DVD menu. Now it starts in theatre-mode, but croppings, screen size/position/curvature are still default. And the menus (except for the standard Vrui-menus) still appear metres away.

And speaking of RoomSetup, VruiXine also displays me the green wireframe of my room. Which is totally irritating in VruiXine and CaveQuake.

The "Walk" navigation tool also centers itself apparently in the center of my base stations, and doesn't respect the size of the room as configured with RoomSetup,
avatar
Debian Website Steam Twitter Youtube
anchor Comment by Seegras, 5 months agoSun, 27 Nov 2016, 13:32
Ok, read VruiXine.cpp for a bit, turns out there are commandline parameters. "-ao alsa" fixes the sound for me.

Also available are "-vo" and then some params to set the display mode, like "window", "theater", "halfsphere", "sphere", croppings and such.
avatar
Debian Website Steam Twitter Youtube
anchor Comment by Seegras, 5 months agoSun, 27 Nov 2016, 13:58
The green wireframe is the ScreenProtector, as it protects screens from being hurled about by the user ;). Anyway, unless you sit in the middle of the room for watching movies, you might want to turn it off for VruiXine, with something like "screenProtectorDevices ( )" in the config.
avatar
Mint Steam
anchor Comment by Norbert, 5 months agoSun, 27 Nov 2016, 14:30
Seegras, if you feel like it, I'd be happy to see you write a guest article about getting VruiXine up and running with the Vive. I'm aware of the "Watching Movies" section on this page, but you appear to have several useful details down already.
avatar
Debian Website Steam Twitter Youtube
anchor Comment by Seegras, 5 months agoSun, 27 Nov 2016, 16:52
Actually, I was already thinking about writing an article ;). probably yes.

Also, I had to read several blogposts on http://doc-ok.org to even get there, as the whole procedure is spread over different posts, sometimes important clues are only mentioned on posts about the Rift or somesuch. So I'm thinking of writing a complete howto, from the beginning. Including kernel-configs.
avatar
Debian Website Steam Twitter Youtube
anchor Comment by Seegras, 5 months agoSun, 27 Nov 2016, 21:48
It's getting even better, I just managed to get this here running:
https://github.com/jrbudda/minecrift/files/521066/vivecraft-1.10.2-Vivecraft-jrbudda-6r4-installer.jar.zip
avatar
Mint Steam
anchor Comment by Norbert, 5 months agoSun, 27 Nov 2016, 21:51
I'm definitely looking forward to reading about it. Face-smile
No hurries though, take your time.
avatar
Linux
anchor Comment by Doc_Ok, 5 months agoMon, 28 Nov 2016, 01:37
* To add compiler flags from a makefile, insert CFLAGS += <whatever> after include $(VRUI_MAKEDIR)/SystemDefinitions, or add CFLAGS=<whatever> to make's command line.

* Once your tool bindings are set up, you can save them via "Save Input Graph" in the "Vrui System"->"Devices" submenu. You can load them back from there as well, or by adding -loadInputGraph <input graph name> to any application's command line.

* To have tool bindings loaded automatically, you can add their definition sections, which you can copy&paste from a saved input graph file, into a configuration file's DefaultTools section. You can use system-wide or per-user global or per-application configuration files. Add -vruiVerbose to any application's command line to see which configuration files are loaded at startup.

* VruiXine routes sound through PulseAudio by default. You can select output devices through PulseAudio's dialogs, and set playback volume inside VruiXine through the DVD navigation menu.

* If a dialog is in an inconvenient location, bring it close by selecting its name from the "Vrui System"->"Dialogs" submenu.

* Temporarily disable the screen protector, at your own risk, from the "Vrui System"->"Devices" submenu.
avatar
Mint Steam
anchor Comment by Norbert, 4 months and 7 days agoTue, 20 Dec 2016, 18:57
Vrui-CaveQuake version 2.3 was released a while back.
It now uses the Vive's default y-up coordinate system.
Also, a GL state bug was fixed that caused lighting not to work on start-up.
The weapon system was changed to use individual tools for easier binding.
To comment, register and login.