Coder Social home page Coder Social logo

marlam / qvr Goto Github PK

View Code? Open in Web Editor NEW
10.0 3.0 2.0 11.1 MB

Virtual Reality abstraction library with sample applications, based on Qt

Home Page: https://marlam.de/qvr

License: MIT License

CMake 1.65% C++ 94.35% QMake 0.28% GLSL 3.21% Java 0.51%
opengl qt stereoscopic-3d vritual-reality

qvr's Introduction

QVR: a library for Virtual Reality applications

Introduction

QVR is a library that makes writing Virtual Reality (VR) applications very easy. It is based on Qt and requires no other libraries.

QVR manages all graphics views required for a VR application, based on a configuration for the target VR environment, from multi-node multi-GPU render clusters to head-mounted displays such as the HTC Vive. A simple change of the configuration file makes the same application run on a completely different setup.

The application only needs to implement a single interface with just a few easily understandable functions. All rendering happens in a single OpenGL context so that there are no context switching and sharing issues. Furthermore the application does not need to care about threads, but is still free to implement any threading model.

QVR allows writing VR applications in pure OpenGL as well as using arbitrary external rendering engines. Examples are provided.

Supported platforms and hardware

The library should work on every platform that has Qt (i.e. all the platforms). Currently tested are Linux, Windows, and Android.

Supported VR hardware includes:

  • Custom large-scale VR labs with multiple GPUs and/or render clusters

  • HTC Vive and SteamVR with OpenVR on both Linux and Windows

  • Oculus Rift with Oculus SDK

  • Google Cardboard and Daydream with Google VR NDK

  • Almost all tracking and interaction hardware with VRPN

The library

Build and install the QVR library libqvr first. After that, you can build and try the example applications.

See the library documentation.

There is also an introductory presentation explaining the concepts of libqvr and how to use it, and a short paper from the Eurographics 2016 Education track explaining the motivation behind it.

Example applications

  • qvr-example-opengl-minimal: a minimal OpenGL-based example application that displays a rotating box.

  • qvr-example-opengl: a simple demo scene based on OpenGL.

  • qvr-example-openscenegraph: a full-featured OpenSceneGraph viewer.

  • qvr-example-vtk: a simple example of a VTK visualization pipeline within a QVR application.

  • qvr-sceneviewer: a viewer for 3D models and scenes in many file formats.

  • qvr-videoplayer: a video screen in the virtual world, for 2D and 3D videos.

  • qvr-vncviewer: a VNC viewer. Put a remote desktop in your virtual world!

  • qvr-identify-displays: a small utility to check the configuration and left/right channel separation.

qvr's People

Contributors

63n avatar marlam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

63n zhangxuelei86

qvr's Issues

QT:SkipEmptyParts compiling issues on 18.04 ubuntu

Hello Marlam,
Not sure if qvr is still being worked on; if so I'm having difficulty compiling it against qt5.12.0
<also tried against 5.12.10>

Seeing errors similar to:

~/qvr/libqvr/config.cpp:272:38: error: ‘SkipEmptyParts’ is not a member of ‘Qt’
arglist = arg.split(' ', Qt::SkipEmptyParts);

According to some documentation on qt5-forums, the SkipEmptyParts seems to be deprecated. <If I'm reading this correctly>
https://doc.qt.io/qt-5/qstring-obsolete.html#SplitBehavior-enum

TEMP.txt

OpenXR support

I wonder if there is any OpenXR support? The README mentions some support for hardware directly but I see no mention of OpenXR anywhere. I'd love to use this (For Bino) in combination with Monado (which provides the hardware support, in my case a Valve Index).

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.