Search the Community
Showing results for tags 'development'.
Found 4 results
Hello folks, I am running into a problem interfacing with the OpenVR SDK when using two trackers with one controller. Specifically, the IVRCompositor::WaitGetPoses( ) function will sometimes return incorrectly transformed matrices to my C++ application. I was wondering if anyone has experienced a problem like this before, or if there is a known solution. The scenario: I place two VIVE trackers about 1 foot apart from one another, facing the same direction. I would expected that the matrices of each tracker (stored in TrackedDevicePose_t -> mDeviceToAbsoluteTracking) will be very similar. If I power up in this order - Tracker 1 On, Tracker 2 On, Controller On - the matrices of both trackers are indeed almost identical. However, if I power on in a different order - Controller On, Tracker 1 On, Tracker 2 On - The matrices of one of the trackers will be rotated exactly 90 degrees from what I would expect. The other tracker still retains the correct values/orientation as before. So now, even though both physical trackers are sitting in similar positions and orientations in the real world, their matrices returned by the VIVE SDK's WaitGetPoses( ) are different. In the same session, I can power on/off the controllers in different orders to change whether I get the correct or incorrect matrix values from the tracker. I am certain this is not a problem with my tracked device indices, nor a problem with overflowing array bounds, because the XYZ Position of the "Bad" Tracker is always correct - it is only the rotation of the tracker about that position in space that changes. So at least one value in every row in the matrix is what I expect. The correct Tracker[index == 3] 4x4 matrix (left) vs. the incorrect Tracker[index == 3] matrix (right) [ -0.99, 0.00, -0.17, -0.20 ] [ 0.99, -0.05, -0.12, -0.20 ] [ 0.00, 1.00, 0.00, 0.72 ] [ -0.01, 0.00, -0.99, 0.72 ] [ 0.01, 0.00, -0.99, 1.38 ] [ 0.05, 0.99, 0.00, 1.38 ] [ 0.00, 0.00, 0.00, 0.00 ] [ 0.00, 0.00, 0.00, 0.00 ] To specify the configuration I am using, my OpenVR SDK is version 1.0.10, my VIVE trackers are the newer model with the blue triangle, and my base stations are the older model. If anyone knows of a fix, workaround, or simply something to try, I would be very grateful for the help! Right now I am thoroughly stumped! Thanks! @chengnay
Hello, I was wondering if anyone could share what is the algorithm or worflow used by SR Works for example to make a see-through mode ? So first, is there any possibilities to get each camera intrinsics from OpenVR ? Do I need to call another API for that ? In OpenVR I am able to acquire a current front facing camera framebuffer, which is upside down and displayed as top/bottom for the left and right camera in the same image ( i actually use the distorted framebuffer). The problem comes after that... what can I do with this image ? In Unity, i apply the image on a mesh material as a texture. This is a particular mesh : it's an anamorphic plane (96° horizontally, 80° vertically). this mesh is transformed by the HMD matrices, and it's offseted a little on forward axis by few centimeters. Then i scaled up the mesh to become really far without changing anything in the field of view. If test it this way, everything seems promising, but if i add 3d objects in the scene, we can clearly see this is not working... The rate of rotation/translation is inequal. Any idea ? Thank you. @Daniel_Y @reneeclchen @Andy.YC_Wang @Jad
With Steam you can save data bytes with SteamRemoteStorage.FileWrite(filename, data, size); Is there something similar in Viveport? Or am I forced to use the Stats API? Math
In order to build for the Focus Plus you will need to integrate your apps with the Wave SDK. For more information about Focus and Wave development check out our Vive Developer Resources Site. You can find both the Wave SDK and Documentation linked from this Resource page. If you’re a Unity Developer, then Getting Started with Unity and Wave SDK will be very helpful. If you’re looking for community help, be sure to visit the Wave SDK Forum to find answers to your questions or to ask new ones you may have. You can find best practices for HMD and controller tracking - Room Setup and Controller Tracking Tips. Read the Vive Focus Plus User Guide to get acquainted with it. Make sure to update your HMD to the latest ROM (currently version 3.07.623.x). You can update the device by tapping on the controller’s Vive button and then > Settings > System Update (Note: You must be connected via Wi-Fi in order to receive system updates). Once you’re ready to publish your app on Viveport, visit the Viveport Developer Console. If you need inspiration, feel free to find some fun right away and get to know some of the Wave experiences. Visit the Viveport M store in the HMD and peruse the titles with the 6+6dof label. This label indicates that the experience is compatible with the 6dof headset and the 6dof controllers. Here are some great suggestions: Browse the Virtual Web with Firefox Reality. Download Sureshot: RPO Edition. In this Ready Player One app you can freely move and shoot in full room scale glory! Check out Skyworld Kingdom Brawl, which is Vive Studios’ tactical card-battler, Clash Royale-inspired collaboration with Vertigo Games. Or try Kingdom of Blades for some sword swinging, shield bashing action! If you’re looking to purchase a Focus Plus, they are available at this link https://enterprise.vive.com/us/focus-plus/. For bulk orders, please reach out to your Vive contact for more information. If you have any questions, please don’t hesitate to reach out to us. We look forward to experiencing what you create. See you in VR, Justin and the Vive Team