libs/vr.git
23 months agoFix memory leaks master
Mikko Rasa [Fri, 7 Oct 2016 22:27:34 +0000 (01:27 +0300)]
Fix memory leaks

23 months agoProvide objects for visualizing controllers
Mikko Rasa [Thu, 6 Oct 2016 17:15:19 +0000 (20:15 +0300)]
Provide objects for visualizing controllers

23 months agoInitialize last_packet_number
Mikko Rasa [Thu, 6 Oct 2016 17:09:47 +0000 (20:09 +0300)]
Initialize last_packet_number

23 months agoAdd a getter and signal to indicate if a controller is tracked
Mikko Rasa [Thu, 6 Oct 2016 17:08:51 +0000 (20:08 +0300)]
Add a getter and signal to indicate if a controller is tracked

23 months agoRemove extra blank line
Mikko Rasa [Thu, 6 Oct 2016 08:56:38 +0000 (11:56 +0300)]
Remove extra blank line

23 months agoAdd support for motion controllers
Mikko Rasa [Wed, 5 Oct 2016 23:45:08 +0000 (02:45 +0300)]
Add support for motion controllers

23 months agoReceive events from OpenVR
Mikko Rasa [Wed, 5 Oct 2016 23:43:47 +0000 (02:43 +0300)]
Receive events from OpenVR

23 months agoStore matrices for all tracked OpenVR devices, not just the HMD
Mikko Rasa [Wed, 5 Oct 2016 23:41:47 +0000 (02:41 +0300)]
Store matrices for all tracked OpenVR devices, not just the HMD

23 months agoAdd getters for the camera in StereoView
Mikko Rasa [Wed, 5 Oct 2016 23:37:31 +0000 (02:37 +0300)]
Add getters for the camera in StereoView

23 months agoStore the base matrix of HeadTrackingCamera and provice access to it
Mikko Rasa [Wed, 5 Oct 2016 23:32:53 +0000 (02:32 +0300)]
Store the base matrix of HeadTrackingCamera and provice access to it

It will be useful for positioning other tracked devices.

23 months agoApply s/device/system/ to member variables as well
Mikko Rasa [Wed, 5 Oct 2016 23:31:00 +0000 (02:31 +0300)]
Apply s/device/system/ to member variables as well

23 months agoFix a warning about a shadowed member variable
Mikko Rasa [Tue, 4 Oct 2016 08:39:46 +0000 (11:39 +0300)]
Fix a warning about a shadowed member variable

23 months agoAdd query functions for whether certain features are supported
Mikko Rasa [Mon, 3 Oct 2016 14:43:43 +0000 (17:43 +0300)]
Add query functions for whether certain features are supported

System::set_absolute_tracking now has a default implementation which
throws an exception.

23 months agoAdd a system creation function with automatic backend detection
Mikko Rasa [Mon, 3 Oct 2016 14:00:11 +0000 (17:00 +0300)]
Add a system creation function with automatic backend detection

23 months agoSet zero swap interval in the OpenVR combiner
Mikko Rasa [Mon, 3 Oct 2016 13:57:35 +0000 (16:57 +0300)]
Set zero swap interval in the OpenVR combiner

Otherwise the swap_buffers from rendering the mirror view will interfere
with submitting VR frames.  The OpenVR library internally syncs to the
HMD's vertical refresh.

23 months agoReconstruct base camera object matrix with priority on up vector
Mikko Rasa [Mon, 3 Oct 2016 13:54:30 +0000 (16:54 +0300)]
Reconstruct base camera object matrix with priority on up vector

In VR it's imperative that the camera object matches reality and some
applications may have a non-horizontal look vector.  The up vector on
the other hand should always point up in the user's immediate frame of
reference.

23 months agoAdd functions to use absolute tracking
Mikko Rasa [Mon, 3 Oct 2016 13:05:34 +0000 (16:05 +0300)]
Add functions to use absolute tracking

A.k.a. room scale

23 months agoName LibOVR classes after the API, not the device
Mikko Rasa [Mon, 3 Oct 2016 12:47:59 +0000 (15:47 +0300)]
Name LibOVR classes after the API, not the device

23 months agoRename DisplayDevice to System
Mikko Rasa [Mon, 3 Oct 2016 12:35:38 +0000 (15:35 +0300)]
Rename DisplayDevice to System

Motion controllers are going to be supported too so the top-level class
shouldn't be tied to display.

23 months agoImplement display mirroring in StereoCombiner
Mikko Rasa [Mon, 26 Sep 2016 11:41:26 +0000 (14:41 +0300)]
Implement display mirroring in StereoCombiner

It's up to individual combiners to use it.  Currently OpenVRCombiner
is the only one to support it, since the others render directly to the
application window.

23 months agoRequire mspcore since symbols from it are used
Mikko Rasa [Mon, 26 Sep 2016 11:40:30 +0000 (14:40 +0300)]
Require mspcore since symbols from it are used

23 months agoAdd a factory method in DisplayDevice
Mikko Rasa [Fri, 23 Sep 2016 16:29:20 +0000 (19:29 +0300)]
Add a factory method in DisplayDevice

This avoids applications from needing a compile-time dependency to the
concrete display device classes, which may not be available due to
library configuration.

23 months agoWork around a calling convention mismatch between MinGW and VC++
Mikko Rasa [Tue, 20 Sep 2016 23:37:53 +0000 (02:37 +0300)]
Work around a calling convention mismatch between MinGW and VC++

2 years agoImplement configure_view in OpenVRDevice
Mikko Rasa [Sun, 18 Sep 2016 13:57:21 +0000 (16:57 +0300)]
Implement configure_view in OpenVRDevice

2 years agoUse matrices for eye offsets instead of a simple spacing
Mikko Rasa [Sun, 18 Sep 2016 13:56:53 +0000 (16:56 +0300)]
Use matrices for eye offsets instead of a simple spacing

2 years agoImplement a basic OpenVR driver
Mikko Rasa [Sat, 17 Sep 2016 23:34:32 +0000 (02:34 +0300)]
Implement a basic OpenVR driver

There's still work to be done but it can render to the HMD and provide
tracking.

2 years agoAdd dependency to mspgui since symbols from it are used
Mikko Rasa [Sat, 17 Sep 2016 23:33:01 +0000 (02:33 +0300)]
Add dependency to mspgui since symbols from it are used

2 years agoMove some common calculations to base classes
Mikko Rasa [Sat, 17 Sep 2016 23:20:01 +0000 (02:20 +0300)]
Move some common calculations to base classes

2 years agoUpdate camera pose as part of the render call
Mikko Rasa [Fri, 16 Sep 2016 23:49:06 +0000 (02:49 +0300)]
Update camera pose as part of the render call

2 years agoAutomatically configure the window to cover the Rift's monitor
Mikko Rasa [Fri, 16 Sep 2016 23:48:35 +0000 (02:48 +0300)]
Automatically configure the window to cover the Rift's monitor

2 years agoGive combiners more control over rendering
Mikko Rasa [Fri, 16 Sep 2016 23:36:29 +0000 (02:36 +0300)]
Give combiners more control over rendering

In particular, allow the combiner to decide whether to present the result
through the application window or in a device-specific way.  It's also
easier to take care of proper timing within the library.

2 years agoChange the mutability of StereoView members
Mikko Rasa [Fri, 16 Sep 2016 09:42:03 +0000 (12:42 +0300)]
Change the mutability of StereoView members

2 years agoProvide absolute render target dimensions from StereoCombiner
Mikko Rasa [Fri, 16 Sep 2016 08:39:42 +0000 (11:39 +0300)]
Provide absolute render target dimensions from StereoCombiner

2 years agoMake offset_axis a local variable of StereoView::setup_frame
Mikko Rasa [Fri, 16 Sep 2016 08:23:37 +0000 (11:23 +0300)]
Make offset_axis a local variable of StereoView::setup_frame

It's not used anywhere else

2 years agoNo longer inherit StereoView from GL::Renderable
Mikko Rasa [Fri, 16 Sep 2016 08:21:35 +0000 (11:21 +0300)]
No longer inherit StereoView from GL::Renderable

There really is no point in using it inside GL::Pipelines or other
containers.

2 years agoMake LibOVR support optional at compile-time
Mikko Rasa [Thu, 15 Sep 2016 16:39:23 +0000 (19:39 +0300)]
Make LibOVR support optional at compile-time

2 years agoChromatic aberration correction is always included in distortion
Mikko Rasa [Sun, 21 Feb 2016 15:44:56 +0000 (17:44 +0200)]
Chromatic aberration correction is always included in distortion

The separate flag no longer exists as of SDK 0.5.0.

3 years agoAdd support for time warp on Oculus Rift
Mikko Rasa [Tue, 23 Dec 2014 21:41:02 +0000 (23:41 +0200)]
Add support for time warp on Oculus Rift

To make use of it, the program must call device->begin_frame() before it
starts rendering and device->end_frame just after swap_buffers.

3 years agoSimplify hmd handle access in a couple of places
Mikko Rasa [Tue, 23 Dec 2014 20:44:49 +0000 (22:44 +0200)]
Simplify hmd handle access in a couple of places

3 years agoFix frustum skew calculation
Mikko Rasa [Tue, 23 Dec 2014 16:31:10 +0000 (18:31 +0200)]
Fix frustum skew calculation

This error wasn't apparent on the Rift DK2 and its almost-symmetric field
of view.

3 years agoUse vignetting to smoothly fade out the edges
Mikko Rasa [Mon, 22 Dec 2014 23:56:45 +0000 (01:56 +0200)]
Use vignetting to smoothly fade out the edges

This somewhat reduces artifacts seen at the borders.

3 years agoAdd positional tracking support on the Oculus Rift DK2
Mikko Rasa [Mon, 22 Dec 2014 23:56:13 +0000 (01:56 +0200)]
Add positional tracking support on the Oculus Rift DK2

3 years agoRemove some outdated stuff
Mikko Rasa [Mon, 22 Dec 2014 23:26:25 +0000 (01:26 +0200)]
Remove some outdated stuff

3 years agoAdd strabismus correction
Mikko Rasa [Mon, 22 Dec 2014 23:18:53 +0000 (01:18 +0200)]
Add strabismus correction

This used to be sort of possible in the previous implementation of
OculusRiftCombiner, but this way works for all combiners.

3 years agoHave the device optionally initialize certain parameters of StereoView
Mikko Rasa [Mon, 22 Dec 2014 23:18:03 +0000 (01:18 +0200)]
Have the device optionally initialize certain parameters of StereoView

3 years agoMake the StereoCombiner information interface more flexible
Mikko Rasa [Mon, 22 Dec 2014 22:44:28 +0000 (00:44 +0200)]
Make the StereoCombiner information interface more flexible

Different non-integer sizing factors may be required for width and height,
and visual aspect ratio does not necessarily match that of the render
target.

3 years agoConvert Oculus code to use SDK 0.4.4
Mikko Rasa [Mon, 22 Dec 2014 22:13:47 +0000 (00:13 +0200)]
Convert Oculus code to use SDK 0.4.4

The resulting aspect ratio might be subtly wrong at this point.  Some
changes are required for proper support.

4 years agoLibOVR requires libudev
Mikko Rasa [Sun, 9 Mar 2014 13:07:56 +0000 (15:07 +0200)]
LibOVR requires libudev

4 years agoCorrect field of view calculation for Oculus Rift
Mikko Rasa [Sun, 9 Mar 2014 13:07:16 +0000 (15:07 +0200)]
Correct field of view calculation for Oculus Rift

4 years agoRender eye view with off-center projection to better match visible area
Mikko Rasa [Sat, 21 Sep 2013 17:10:19 +0000 (20:10 +0300)]
Render eye view with off-center projection to better match visible area

4 years agoFix a math error in oversize calculation
Mikko Rasa [Sat, 21 Sep 2013 17:09:45 +0000 (20:09 +0300)]
Fix a math error in oversize calculation

4 years agoRemove a stray negation
Mikko Rasa [Sat, 21 Sep 2013 17:09:09 +0000 (20:09 +0300)]
Remove a stray negation

4 years agoCopy fov and aspect from base camera
Mikko Rasa [Sat, 21 Sep 2013 17:08:45 +0000 (20:08 +0300)]
Copy fov and aspect from base camera

5 years agoIntegrate with LibOVR
Mikko Rasa [Sun, 15 Sep 2013 12:42:33 +0000 (15:42 +0300)]
Integrate with LibOVR

5 years agoAdd interfaces for dealing with VR headsets
Mikko Rasa [Sun, 15 Sep 2013 12:40:41 +0000 (15:40 +0300)]
Add interfaces for dealing with VR headsets

5 years agoMark the library as installable
Mikko Rasa [Sun, 15 Sep 2013 12:40:18 +0000 (15:40 +0300)]
Mark the library as installable

5 years agoCompensate for chromatic aberration in the Oculus Rift combiner
Mikko Rasa [Fri, 13 Sep 2013 13:26:44 +0000 (16:26 +0300)]
Compensate for chromatic aberration in the Oculus Rift combiner

5 years agoClear the FBO before rendering
Mikko Rasa [Fri, 13 Sep 2013 13:26:00 +0000 (16:26 +0300)]
Clear the FBO before rendering

5 years agoAdd metadata files for the new repository
Mikko Rasa [Fri, 13 Sep 2013 13:23:13 +0000 (16:23 +0300)]
Add metadata files for the new repository

5 years agoRename to mspvr
Mikko Rasa [Fri, 13 Sep 2013 13:22:55 +0000 (16:22 +0300)]
Rename to mspvr

5 years agoAdd a StereoCombiner subclass for the Oculus Rift
Mikko Rasa [Tue, 18 Jun 2013 22:11:31 +0000 (01:11 +0300)]
Add a StereoCombiner subclass for the Oculus Rift

5 years agoField of view is an angle too
Mikko Rasa [Tue, 18 Jun 2013 21:30:18 +0000 (00:30 +0300)]
Field of view is an angle too

5 years agoAdd classes for stereographic rendering
Mikko Rasa [Tue, 18 Jun 2013 15:11:20 +0000 (18:11 +0300)]
Add classes for stereographic rendering