Coder Social home page Coder Social logo

raylib-openvr's People

Contributors

dhsavell avatar

Stargazers

 avatar  avatar  avatar

Forkers

redthing1

raylib-openvr's Issues

Input actions

It seems the best way to handle OpenVR input is using predefined actions. We will need a way to load action manifest files and read various input types. It looks like OpenVR does this without too much pain, so this might only be a matter of wrapping the corresponding IVRInput functions.

Bad controller tracking

Open VR runtime software like Oculus Dash and compare its hand/controller positioning to the cubes in the hello_vr demo. The cubes are noticeably offset.

Provide access to tracked data

Almost every VR experience needs access to tracked device data, like the HMD and controller positions. It would be best if we not only expose OpenVR's transformation matrix but also individual vectors for position and orientation.

Improve stereo rendering efficiency

Right now, every GL call to draw the scene is made 3 times (left eye, right eye, simulated camera). Compare this to raylib's stereo rendering implementation that batches all the actual draw calls and only changes the view/projection matrices for each viewpoint. This will benefit both the user (better performance) and developer (only need one begin/end call in the style of InitVrSimulator/CloseVrSimulator).

It may not be possible to do this without modifying raylib unless RenderBatch and friends are made public. I'm willing to explore making some upstream contributions, though, so that might not be too much of a problem.

The ultimate goal is to render both views in less than 2x the calls to render one view.

OpenXR and other VR platforms

I wanted to make this issue as a note that I'm not against exploring OpenXR over OpenVR for this project, since OpenXR seems like the future. I tried to get raylib and OpenXR working in the same project, but unfortunately ran into problem after problem including Windows.h (and pre-existing #define tricks didn't seem to work). Maybe I'll explore it again when I have more time.

What this means today is that the API has to be flexible enough to support either backend. On the developer end, this will look like a #define before importing raylib.

For now, I'm going to focus on developing good, working OpenVR support first. After achieving that basis, it should be easier to design the API.

Update: Totally forgot about WebXR as well. That would be fun to support. See https://www.w3.org/TR/webxr/, https://github.com/VhiteRabbit/emscripten-webxr.

Overlay support

A lightweight framework like raylib could be very useful for creating VR overlay applications.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.