ryzomcore icon indicating copy to clipboard operation
ryzomcore copied to clipboard

Support for Oculus Rift

Open ryzom-pipeline opened this issue 12 years ago • 56 comments

Original report by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Provide support for the Oculus Rift and other stereo rendering devices.

ryzom-pipeline avatar Jun 16 '13 18:06 ryzom-pipeline

Original comment by Matt Raykowski (Bitbucket: [Matt Raykowski](https://bitbucket.org/Matt Raykowski), ).


You should be able to utilize your GSoC student then. (=

ryzom-pipeline avatar Jun 17 '13 12:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Could probably pull this off using some of the old nevrax code for pixel programs.

ryzom-pipeline avatar Jun 19 '13 00:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Pixel programs work.

ryzom-pipeline avatar Jun 19 '13 19:06 ryzom-pipeline

Original comment by Michael Witrant (Bitbucket: [Michael Witrant](https://bitbucket.org/Michael Witrant), ).


I added support for OpenHMD here: https://bitbucket.org/piglop/ryzomcore/commits/2d1c89a19629cc5770157c6218dd89b1babce3c1

When enabled, the player view is forced to "first person" and the rotation is controlled by the Oculus Rift.

I only tried it on Linux but OpenHMD should work on Windows and OS X.

This is very basic. The player model should have a specific rendering (ie. without the head) and there's absolutely nothing about adapting the view to the Oculus display. I tried to implement stereo rendering but I couldn't find a way.

ryzom-pipeline avatar Jun 23 '13 13:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Thanks, piglop! We'll probably need to fix some first person bugs though!

Can you also provide a simple class that (1) returns a CQuat with the orientation, (2) can shift the UCamera to the two neccesary eye rendering points, and (3) provides the necessary data for the shader?

Have asked ThibG as well for a binding with his libvr library, so we can compare the different possibilities.

ryzom-pipeline avatar Jun 23 '13 14:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


List stereo devices, see #43

ryzom-pipeline avatar Jun 26 '13 00:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Add library name to device name, re #43

ryzom-pipeline avatar Jun 26 '13 02:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Read sensor data and set camera in snowballs, ref #43

ryzom-pipeline avatar Jun 26 '13 02:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Render from multiple cameras, see #43

ryzom-pipeline avatar Jun 26 '13 06:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Cleanup and make bloom work with stereo rendering, re #43

ryzom-pipeline avatar Jun 26 '13 13:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Add some comments, see #43

ryzom-pipeline avatar Jun 26 '13 14:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Correctly adjust text to viewport, re #43

ryzom-pipeline avatar Jun 26 '13 14:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Add 2D interface shifting calculations, see #43

ryzom-pipeline avatar Jun 26 '13 18:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Add eye distance in 2D interface shift, re #43

ryzom-pipeline avatar Jun 26 '13 18:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Move snowballs compass, see #43

ryzom-pipeline avatar Jun 26 '13 18:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Adjust 2D interface shift, re #43

ryzom-pipeline avatar Jun 26 '13 18:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Allow multiple user cameras to be calculated separately, useful for sky etc, re #43

ryzom-pipeline avatar Jun 26 '13 19:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Create a clipping frustum, ref #43

ryzom-pipeline avatar Jun 26 '13 19:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Return view as CQuat, see #43

ryzom-pipeline avatar Jun 26 '13 19:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Pull CPing out of main_loop.cpp, refs #43

ryzom-pipeline avatar Jun 27 '13 00:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Separate some profiling code from main_loop.cpp, see #43

ryzom-pipeline avatar Jun 27 '13 00:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Take some debug render code out of main_loop.cpp, see #43

ryzom-pipeline avatar Jun 27 '13 00:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Moved some temp code out of main_loop.cpp, ref #43

ryzom-pipeline avatar Jun 27 '13 00:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Some more debug functions moved, see #43

ryzom-pipeline avatar Jun 27 '13 01:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Remove some unused includes, re #43

ryzom-pipeline avatar Jun 27 '13 01:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Move some config stuff out of main_loop.cpp, see #43

ryzom-pipeline avatar Jun 27 '13 01:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Separate some camera related functions, ref #43

ryzom-pipeline avatar Jun 27 '13 03:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Create interface classes for stereo displays and head mounted displays, see #43

ryzom-pipeline avatar Jun 28 '13 21:06 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Add interface for stereo display render targets, ref #43

ryzom-pipeline avatar Jul 01 '13 20:07 ryzom-pipeline

Original comment by Jan Boon (Bitbucket: [Jan Boon](https://bitbucket.org/Jan Boon), ).


Create stereo render target, see #43

ryzom-pipeline avatar Jul 02 '13 01:07 ryzom-pipeline