All Projects → sencercoltu → Steamvr Undistort

sencercoltu / Steamvr Undistort

SteamVR lens distortion adjustment utility for spherical lenses

Projects that are alternatives of or similar to Steamvr Undistort

ad-lens
Automatic Differentiation using Pseudo Lenses. Neat.
Stars: ✭ 16 (-51.52%)
Mutual labels:  lens
MoonMotion
Moon Motion Toolkit - Free and open source toolkit for VR locomotion
Stars: ✭ 38 (+15.15%)
Mutual labels:  steamvr
Virtualmotioncapture
VRゲーム中にモデルをコントロール
Stars: ✭ 423 (+1181.82%)
Mutual labels:  steamvr
PhoneVR
Use Steam VR-enabled applications with your phone as HMD (Head-mounted display). The only Open-Source solution to similar commercial packages like VRidge, iVRy, Trinus etc etc.
Stars: ✭ 178 (+439.39%)
Mutual labels:  steamvr
lens
Mirror of Apache Lens
Stars: ✭ 57 (+72.73%)
Mutual labels:  lens
TJUCam
SteamVR Compatible Motion Controller with ESP8266 and Raspberry Pi
Stars: ✭ 29 (-12.12%)
Mutual labels:  steamvr
Simple-OpenVR-Driver-Tutorial
A sample OpenVR Driver for you to learn from
Stars: ✭ 157 (+375.76%)
Mutual labels:  steamvr
Openvr Northstar
This is a community driver to support the North Star headset on OpenVR.
Stars: ✭ 17 (-48.48%)
Mutual labels:  steamvr
GameTracking-SteamVR
📥 Game Tracker: SteamVR Home
Stars: ✭ 14 (-57.58%)
Mutual labels:  steamvr
React Image Magnify
A responsive image zoom component designed for shopping sites.
Stars: ✭ 391 (+1084.85%)
Mutual labels:  lens
coredux
Dualism to Redux. Two-way combining of redux modules
Stars: ✭ 14 (-57.58%)
Mutual labels:  lens
reshade-vrtoolkit
Modular shader to enhance you HMD clarity & sharpness with minimal performance impact.
Stars: ✭ 40 (+21.21%)
Mutual labels:  steamvr
Viveinpututility Unity
A toolkit that helps developing/prototyping VR apps.
Stars: ✭ 256 (+675.76%)
Mutual labels:  steamvr
thedarkmodvr
VR support for The Dark Mod
Stars: ✭ 49 (+48.48%)
Mutual labels:  steamvr
Openvr
OpenVR SDK
Stars: ✭ 4,997 (+15042.42%)
Mutual labels:  steamvr
openvr widgets
SteamVR overlay widgets
Stars: ✭ 20 (-39.39%)
Mutual labels:  steamvr
plenopticam
Light-field imaging application for plenoptic cameras
Stars: ✭ 111 (+236.36%)
Mutual labels:  lens
Partial.lenses
Partial lenses is a comprehensive, high-performance optics library for JavaScript
Stars: ✭ 846 (+2463.64%)
Mutual labels:  lens
Steamvr For Linux
Issue tracker for the Linux port of SteamVR
Stars: ✭ 631 (+1812.12%)
Mutual labels:  steamvr
Vrtk
*Beta* - An example of how to use the Tilia packages to create great content with VRTK v4.
Stars: ✭ 3,422 (+10269.7%)
Mutual labels:  steamvr

steamvr-undistort

SteamVR lens distortion adjustment utility for custom spherical lenses. (I'm working on another utility for nonspherical lenses like GearVR.)

With Compositor Distortion WireFrame Rendering Without Compositor Correction

Download link (Requires .Net4.5 or higher)

Purpose is to find optimal values for the lens coefficients and intrinsics in the JSON file, after replacing the original frensel lenses with GearVR or other lenses other spherical lenses.

The JSON file is read to file LH_Config_In.json via the lighthouse console at startup automatically. Adjusted values are saved to LH_Config_Out.json file on exit. (No auto update to device because it's unsafe, you can lose your original configuration. Manually update after backing up original config!) You can write your adjusted config by selecting the appropriate menu item.

Environment model is rendered three times for each RGB color. (except center crosshair, hidden mesh, controllers and adjustment panel). The environment model path is hardcoded and points to the "environment" folder. Download any single .obj environment and put it in the "environment" folder and rename the .obj and .mtl files to "environment".

Rendering is switchable between solid (textured) and wireframe (white). Lens distortion correction can be toggled, and you can see the result of the new values immediately.

Distortion correction is done inside the pixelshader. Therefore the rendering, especially the adjustment panel rendering may be slow in some cases.

Adjustment is done with two motion controllers. Here are the mappings for the Vive:

Left Controller

Application Button: Toggle between compositor lens correction and pixelshader lens correction.

TouchPad UP/DOWN Buttons: Move among menu items.

TouchPad MIDDLE: Hide/Show adjustment panel.

Grip: Toggle left eye adjustment flag.

Trigger: Link/Unlink adjustment of values, or select action.

Right Controller

Application Button: Toggle between wireframe and texturd rendering.

TouchPad LEFT/RIGHT Buttons: Decrease/Increase adjustment step.

TouchPad UP/DOWN Buttons: Adjust selected/linked values. Keep pressed for auto-repeat.

TouchPad MIDDLE: Hide/Show hidden mesh.

Grip: Toggle right eye adjustment flag.

Trigger: Hold to show original unadjusted values. Also enables/disables rendering of selected color channels.

I had very limited knowledge about D3D11, matrices and transformations when starting this project. So code is unoptimized, with minimum comments.

Parts of code or ideas taken from:

https://interplayoflight.wordpress.com/2013/03/03/sharpdx-and-3d-model-loading/

https://github.com/SpyderTL/TestOpenVR

https://github.com/wescotte/distortionizer-SteamVR

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].