osvr / distortionizer Goto Github PK
View Code? Open in Web Editor NEWTool for determining distortion parameters of arbitrary HMDs, and a corresponding set of shaders to correct that distortion.
License: Apache License 2.0
Tool for determining distortion parameters of arbitrary HMDs, and a corresponding set of shaders to correct that distortion.
License: Apache License 2.0
https://github.com/sensics/distortionizer/blob/master/shaders/undistort_shader.cpp#L94
I will refrain from passing judgement, recognizing that people are familiar with different things ๐ , just acknowledge that the code there can be made better or at least more idiomatic.
I can do it pretty quickly, if I get a chance (it's a handful of lines tops), though I'm not sure when that gets invoked so I'm not sure I'd be able to confidently say I didn't break it.
We need a .glsl file for the vertex and fragment shader for the Undistort_Shader class to read.
We need to finish the parameters for the shader.
We need to set the parameters and test all this.
We need to hook the shader into the calibration program, so that you can toggle to a view that renders using that shader with the current parameters.
We might want a simple sample application that renders a scene using the shader.
Currently in vizard/ShaderTest.*
in GLSL versions:
and the Unity ShaderLab/Cg/HLSL version:
which is more widely used but seems to be basically derived from the GLSL ones.
Questions:
sqrt
call (because the result is immediately squared) in the distort
function: see glsl version, unity version - no idea if the shader compilers are smart enough to optimize that out or if it can't be removed for some other reason. That just jumped out at me on a skim - not enough shader experience to tell if the rest of htem is sufficiently optimal.This Application work fine in my monitor(1366x768) which is in landscape mode.
But My HMD devices is 1440x2560 which is in portrait mode, I need to rotate the View .
I want to find some api to do this under Class QMainWindow & QWidget ,But I don't find ,give me a hand,thanks.
Says 117 commits since latest release binary. Time for an update smart folks!
Compile the project, generate the application "distortionizer-calibration.exe".
using Keyboard controls to adjust the screen display,But how to judge the best results?
The shaders
directory seems to be missing the quadratic_tri_color_vert.glsl
and quadratic_tri_color_frag.glsl
files.
in AngleToConfig.md file :
-verify_angles xx xy yx yy max_degrees tests each mesh point to ensure that the change between the vectors point to each of its neighbors in angle space, when transformed into screen space, does not differ by more than max_degrees. The transformation is specified: The vector (xx, xy) points in screen space in the direction of +longitude (left). The vector (yx, yy) points in screen space in the direction of +latitude (up).
"direction of +longitude (left)" may be is "direction of +longitude (right)" ?
Looks like fprintf
is being used now. Since we already depend on Qt, we should check in there, I bet they have a json facility. If not, jsoncpp will do the trick just as it does for the OSVR Core.
When I try with CMake, it can't find Qt5Widgets. I can fix this by adding:
list(APPEND CMAKE_PREFIX_PATH "C:\Qt\5.4\msvc2013_64_opengl")
to the CMakeLists.txt file. This seems a bit inelegant, since it presumably needs to change on every machine, but I guess somewhere there needs to be a list of potential places to look and maybe this is as good as any.
Once over that hurdle, I have to tell it where to look for glew.h and glew32; it doesn't look in C:/usr/local by default. Again, this depends on where the user happens to put it and is a bit unique so that may not be a huge issue.
Should I go ahead and add specific cases for my setup (which will work for me and provide an example for others?)
For one display, these values seem to be inverted around 0.5. The original had 0.6 for left eye and 0.4 for right, but the inverse worked. Not sure if this was a sign convention error, an eye-order error; not certain if it is only for that display or for all of them.
I think the only one using it was Russ - I've got a good CMake-based build system, tested with at least VS. (Haven't tried Qt creator) If this fits all our build system needs, we should get rid of https://github.com/sensics/distortionizer/blob/master/calibration/calibration.pro
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.