openvr | More information OpenVR and SteamVR can be | Augmented Reality library

 by   ValveSoftware C++ Version: v1.23.7 License: BSD-3-Clause

kandi X-RAY | openvr Summary

kandi X-RAY | openvr Summary

openvr is a C++ library typically used in Virtual Reality, Augmented Reality applications. openvr has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

OpenVR is an API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting. This repository is an SDK that contains the API and samples. The runtime is under SteamVR in Tools on Steam.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              openvr has a medium active ecosystem.
              It has 5682 star(s) with 1277 fork(s). There are 422 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 924 open issues and 693 have been closed. On average issues are closed in 225 days. There are 48 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of openvr is v1.23.7

            kandi-Quality Quality

              openvr has no bugs reported.

            kandi-Security Security

              openvr has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.

            kandi-License License

              openvr is licensed under the BSD-3-Clause License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              openvr releases are available to install and integrate.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of openvr
            Get all kandi verified functions for this library.

            openvr Key Features

            No Key Features are available at this moment for openvr.

            openvr Examples and Code Snippets

            No Code Snippets are available at this moment for openvr.

            Community Discussions

            QUESTION

            OpenVR: Implementation of virtual API functions (GetProjectionMatrix)
            Asked 2022-Mar-16 at 14:45

            I couldn't find the implementation (aka. source) of the pure virtual functions from the openvr header.

            I am mainly interested in the GetProjectionMatrix() function.

            Where I searched (with no results):

            • Simple goole search
            • Searched the repo for the function name
            • In the extracted symbols, import and export tables of most of the included libraries (.dll and .lib)

            What I found so far: https://github.com/ValveSoftware/openvr/issues/103 , but this seems to deal with problems generated by different compilers. The error of this issue is generated in vrclient.dll provided by SteamVR. There seems to be no public source for both of them.

            Any idea, how (/where) these virtual functions are implemented?

            ...

            ANSWER

            Answered 2022-Mar-16 at 14:45

            You won't like the answer, because the sad reality is that it has no open sources available to us.

            OpenVR is a purely virtual interface library, yes interfaces are open source, but the actual implementations of those interface are not. In case of libopenvr_api (it looks like) those are appended as a binary blob to the interface build.

            The way that works is through factory functions that are declared in the interface library, but defined somewhere else, those externally defined parts are like a black box to us, and unless Valve suddenly change their minds it'll remain that way.

            Those factory functions are declared and used in the OPENVR_INTERFACE_INTERNAL sections of openvr.h and openvr_driver.h (also in case of openvr.h those factory functions are defined in openvr_capi.h, but they use factory functions that are defined in a shared library which is just loaded at runtime and the entire pattern is very similar to the one in openvr.h).

            EDIT:

            (also in case of openvr.h those factory functions are defined in openvr_capi.h, but they use factory functions that are defined in a shared library which is just loaded at runtime and the entire pattern is very similar to the one in openvr.h)

            My memory is clearly failing me, the internal factory functions are defined in openvr_api_public.cpp which is one of the source files libopenvr_api is build from, not in openvr_capi.h (in my defense i didn't look at libopenvr_api sources in a while).

            Source https://stackoverflow.com/questions/71363164

            QUESTION

            Why GetDeviceToAbsoluteTrackingPose(...) doesn't return the HMD position in OpenVR?
            Asked 2022-Mar-11 at 16:41

            I'm trying to implement a basic OpenVR C++ app. This is my code:

            ...

            ANSWER

            Answered 2022-Mar-11 at 16:41

            Okay, I've found the solution.

            Source https://stackoverflow.com/questions/71437288

            QUESTION

            Linking OpenVR through VCPKG via CMAKE
            Asked 2022-Feb-09 at 20:22

            I have Installed OpenVR through vcpkg and am trying to link it via CMAKE, the issue is that I don't know how to do it, nor can I find any info on how to.

            Unlike other packages where once installed it tells you how to link via CMAKE by using find_package and target_link_libraries, OpenVR doesn't. I initially assumed that

            ...

            ANSWER

            Answered 2022-Feb-09 at 20:22

            Here is a find module that seems to work. OpenVR does some very non-standard things with its debug library naming. I tested this on Linux, and it works, but I do not have easy access to a Windows machine right now. Let me see the error message if it fails and I can try to fix it.

            You'll use it like this, from the top-level CMakeLists.txt

            Source https://stackoverflow.com/questions/71053533

            QUESTION

            Problem with some LWJGL classes on import (Eclipse)
            Asked 2021-Mar-27 at 09:20

            I downloaded the release build without modifying (https://www.lwjgl.org/customize) I put all the classes in Eclipse. Some classes are not recognized

            The codes that do not need these classes in error, work normally. As in https://www.lwjgl.org/guide

            All the classes I put:

            ...

            ANSWER

            Answered 2021-Mar-27 at 09:20

            You are trying to compile LWJGL 2 code here. All the imports that it cannot find pertain to the verison 2 of LWJGL. The current version that you can get from the mentioned lwjgl site is 3 and version 3 is incompatible with version 2.

            Either explicitly download LWJGL 2 from e.g. http://legacy.lwjgl.org/ or rewrite your code to work with LWJGL 3.

            If you go the LWJGL 2 route, though, please note that it hasn't been actively maintained anymore for more than 6 years now.

            Source https://stackoverflow.com/questions/66827323

            QUESTION

            OpenVR: failed to find interface ''IVRCompositor_027"
            Asked 2021-Mar-22 at 15:46

            I cloned the openVR repo and went directly to compile the driver_sample and hellovr_dx12 and hellovr_opengl projects. The builds were successful. But both the helloVR applications failed to launch with an error:

            ...

            ANSWER

            Answered 2021-Mar-22 at 15:46

            I updated SteamVR to the lastest version and the issue is solved.

            Source https://stackoverflow.com/questions/66749202

            QUESTION

            How to build libobs as dependency of obs-studio-node module?
            Asked 2021-Feb-25 at 08:04

            I am trying obs-studio-node.
            This module require libobs as dependency. While building this module it download a pre-built version of libobs if none is specified. We can specify out custom libobs as mentioned in README.md

            I followed these steps to build libobs. These steps are listed in README.md

            1. git clone https://github.com/stream-labs/obs-studio
            2. cd obs-studio
            3. git submodule update --init --recursive
            4. mkdir build
            5. cd build
            6. cmake .. -DENABLE_UI=false -DDepsPath="C:\Users\alokm\Downloads\dependencies2019\win64" -DENABLE_SCRIPTING=false -G"Visual Studio 16 2019" -A x64
            7. cmake --build .
            8. cpack -G ZIP

            Last step (cpack -G ZIP) is failing with errors

            ...

            ANSWER

            Answered 2021-Feb-25 at 08:04

            Check what exact configuration you have built. The output of CPack tries to install the Release configuration. However, you didn't mention any when did project configuration (and it may project-dependent to set some defaults).

            Try add explicitly what you want:

            Source https://stackoverflow.com/questions/66289631

            QUESTION

            Hooking virtual method on Win32 (return object larger than ptr crashes)?
            Asked 2020-Oct-04 at 12:55

            So trying to hook a OpenVR method "ITrackedDeviceServerDriver::GetPose" but i'm getting access violations when my custom hooked method returns out (I think something is wrong with calling convention but idk enough about what x64 asm expects).

            All other methods I hook in "ITrackedDeviceServerDriver" work fine. Only "GetPose" fails.

            Class thats being hooked looks like:

            ...

            ANSWER

            Answered 2020-Oct-04 at 12:55

            as already noted in comments

            __thiscall and __fastcall are not the same calling convention

            even for x64. for x86 this is obvious - __thiscall - pass first parameter (this) via Ecx register, and next parameters via stack (i skip now float/double parameters case). __fastcall - 1-first via Ecx, 2-second via Edx, and next via stack

            in case x64 (again let assume that no float/double parameters) - first 4 parameters via Rcx, Rdx, R8, R9 and next in stack. so look like x64 have single and common calling convention (no difference between __stdcall, __fastcall, __cdecl, __thiscall)

            but exist question about implicit parameters. say in case __thiscall - the first parameter - this is implicit parameter, always passed as first parameter via Ecx/Rcx

            and now case when function try "return" object. really on any platform function can return something only via cpu registers. it finite count, and only several of it can be used for return value store.

            say on x86(x64) - for return value can be used: AL, AX, EAX, RAX, DAX:EAX, RDX:RAX so function can return only something that have size - 1, 2, 4, 8 (and 16 for x64)

            if function try "return" object with another size - this is impossible do direct, compiler need transform your code. for example if you write function:

            Source https://stackoverflow.com/questions/64190448

            QUESTION

            How to configure Mabinogi to run in Lutris?
            Asked 2020-Sep-22 at 19:20

            I'm attempting to play Mabinogi by Nexon on Linux Mint 20 (Ulyana) using Lutris. I've previously used Lutris to play Heroes of the Storm but otherwise don't have much experience with it (or with gaming on Linux, in general). There's no installer on the Lutris website for Mabinogi like there was for Heroes of the Storm, so I was on my own to try and figure everything out.

            What I've tried

            I started by downloading the Nexon Launcher Installer from their website. I configured Lutris to launch this executable using Wine within a simulated Windows environment. When it first launched I noticed several files were created ("drive_c", "Program Files", "Users", etc -- mimicking a Windows file system). The launcher installer ran without issue and I installed the launcher to "C:\Program Files (x86)\Nexon"

            I then re-configured Lutris to try and launch the Nexon Launcher instead of the Nexon Launcher Installer. When I hit "Play" in Lutris, nothing happened. Running ps -ax | grep "Nexon" showed that it was theoretically running, but there was no window or visible UI even after several minutes of waiting. I checked the Lutris logs and noticed a message about a file missing (something like "10000.manifest.hash"). I Google'd this error and found plenty of people in Windows who had trouble running the Nexon Launcher with the same error, and the solution was to just install Mabinogi through Steam.

            So next I downloaded the "Wine Steam" runner in Lutris and set this as the runner for Mabinogi, plugging in the app ID (212200). After Steam installed, launched, logged in, and downloaded Mabinogi I tried to launch the game. This time I saw a window pop up saying "Mabinogi is launching" and in the bottom-right the Nexon Game Security icon popped up, but then everything closed and the game never started.

            Finally out of desperation I tried setting up a virtual computer using VirtualBox to play the game in its native Windows environment. I installed Windows 7 (the minimum required version according to the Nexon website). I downloaded Mabinogi through Steam on the virtual box. Upon trying to launch Mabinogi, I received the error error: "api-ms-win-crt-runtime-l1-1-0.dll is missing". I'm curious if this error is related to why I couldn't get Mabinogi working in Lutris.

            Looking at a game that I had previously played in Lutris (Heroes of the Storm), I noticed a very similar DLL was listed in the "DLL overrides" section: "api-ms-win-crt-private-l1-1-0.dll". So I tried adding the runtime DLL to the overrides in Mabinogi with the same value ("n,b") - but this didn't work.

            Looking at the Lutris logs when I try to launch Mabinogi through Wine Steam, there are several errors from \main\game-launch.js:109. I'm not sure if this JS script is part of Lutris of part of the Nexon Launcher, but it could provide some hints. Among the logs the following lines stand out as potentially meaningful:

            ...

            ANSWER

            Answered 2020-Sep-22 at 19:20

            After a lot of work and research, I've gotten as far as I can and figured out where the major road block lies. The simple answer is: You cannot run Mabinogi in Lutris

            Mabinogi uses an anti-cheat system that runs in kernel mode (ring 0). Wine runs in user mode (ring 3) and therefore cannot run this anti-cheat program.

            The only solution is to play Mabinogi within a virtual machine (e.g. VirtualBox), since VMs run on a hypervisor (which from my understanding is kind of like a "negative" ring number, but effectively ring 0)

            If you want to try some other Nexon games, I got the Nexon Launcher working in Lutris / Wine fairly easily. The trick was to download the latest Nexon Launcher since the older one (linked on the Mabinogi website) isn't sending a valid request to download the manifest file so it gets a 403. The latest launcher can be downloaded here: https://games.nexon.net/nexonlauncher

            Source https://stackoverflow.com/questions/63985010

            QUESTION

            How can I calculate a measure of 'rotational mobility' from Euler angles?
            Asked 2020-Jul-27 at 18:32

            Odd question, but I'm having trouble boiling it down to a coherent question.

            I have sampled data (60Hz) from Brekel OpenVR recorder, which includes the following parameters for the HMD itself:

            • X, Y, Z positional coordinates
            • Euler angles rotX, rotY, rot.

            I'm processing the data in python. Overall, what I'm trying to do is to calculate measures of mobility: did someone look around more or less during a segment, and did they move around more or less?

            For the positional coordinates that wasn't too difficult, I was able to calculate displacement, velocity, etc., by using the distances between subsequent positions. Now for the Euler angles, I'm having more trouble.

            I've searched for the answer to my question, but none of the answer seemed to 'click'. What I think I need, is to convert the Euler angles to a directional vector, and then calculate the angle between the directional vectors of subsequent samples to see how much the gaze direction shifted. Once I have those, I can calculate means and SDs per subject, to see which of them looked around more (that's the idea anyway). I am unclear on the mathematics though. It would have been easier if my coordinates were roll, pitch, yaw, but I'm struggling with the Euler angles.

            Suppose the Euler angles for two subsequent samples are:

            • (rotX, rotY, rot) = (20°, 25°, 50°)
            • (rotX2, rotY2, rot2) = (30°, 35°, 60°)

            How can I quantify with what angle the direction of the HMD changed between those two samples?

            ...

            ANSWER

            Answered 2020-Jul-27 at 18:32

            You can write a function to convert Euler angles to unit vectors, and another to take the angle between two unit vectors

            Source https://stackoverflow.com/questions/63120939

            QUESTION

            How should I get the absolute path of a configuration file to be published alongside a windows .exe?
            Asked 2020-Jun-03 at 18:37

            I'm making a windows application in C++. There's an API which requires a configuration file, and also the absolute path of that configuration file. ( https://github.com/ValveSoftware/openvr/wiki/Action-manifest ). I would have an easier time reasoning about this if I understood expected practices for publishing an executable.

            Should I package MyApp.exe in a folder named MyApp, with MyApp.exe at the root, and all resources/config alongside it? Does that mean that, when run, all relative paths referenced from within the executable should be relative to the MyApp folder? How can I get the absolute path of the folder to which all relative paths are relative? (Whereby I could get the full absolute path of the config file by simply concatenating that absolute path with the relative path of the config file, which I should have control over...)

            edit: to clarify, the API requires the filepath to be absolute. See the link: "The full path to the file must be provided; relative paths are not accepted." I'm not looking for c++ workarounds that would let me not need absolute filepaths: I need to find a way to get the absolute file path, because it is a constraint of the API.

            ...

            ANSWER

            Answered 2020-Jun-03 at 18:37

            Here's how you can do it on Windows.

            Source https://stackoverflow.com/questions/62179459

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install openvr

            You can download it from GitHub.

            Support

            Documentation for the API is available on the GitHub Wiki. More information on OpenVR and SteamVR can be found on http://steamvr.com.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/ValveSoftware/openvr.git

          • CLI

            gh repo clone ValveSoftware/openvr

          • sshUrl

            git@github.com:ValveSoftware/openvr.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Augmented Reality Libraries

            AR.js

            by jeromeetienne

            ar-cutpaste

            by cyrildiagne

            aframe

            by aframevr

            engine

            by playcanvas

            Awesome-ARKit

            by olucurious

            Try Top Libraries by ValveSoftware

            Proton

            by ValveSoftwareC++

            GameNetworkingSockets

            by ValveSoftwareC++

            source-sdk-2013

            by ValveSoftwareC++

            halflife

            by ValveSoftwareC++

            ToGL

            by ValveSoftwareC++