Last active
August 29, 2015 14:19
-
-
Save LeFreq/9c5f642be639ca99fdfa to your computer and use it in GitHub Desktop.
Proper 3-d stereo glasses implementation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Implementing proper 3-d with red-blue stereo glasses. | |
Putting equivalent but subtle textures on the separate surfaces will enhance the eye`s ability to lock onto the two fields as one. | |
1) The neutral point where the drawn image is at the depth of the screen should be your (x,y,0) coordinate (i.e. z=0). At this point, both colors are exactly on top of each other. | |
2) For infinite depth, the maximum distance the two colors should be (in parallel) is the distance between the user's eyes, about 5cm, representing the two eyes gazing in parallel (=> inf). | |
3) Item's in front of the screen, should reverse color, so the viewer is cross-eyed and can go to nearly any extremum towards the user, although like real life, trying to view them may be impossible. | |
4) The only other variable is the distance the viewer is from the screen. This is the primary thing to know if you want calibrated distance (like having an exact point in front of the screen you want the object to float--otherwise everything is skewed. Perhaps surprisingly, the relationship between distance and separation of colors is not linear because it's bounded at the infinite depth to ~5cm -- the maximum distance your eyes can look out. | |
5) If the screen is large, you may wish to compensate for the square surface such that drawn items to the left or right get moved closer in the z axis to account for what would normally create a curvature of equal distance/depth from the viewer. | |
6) If you really want to get *top* grade, implement a kinects motion-sensing system, and have item #5 adjust to your viewers body position. | |
7) Lastly, for Kinects, rotate each item as the viewer moves, so that a different part of the object is visible | |
Since you have red-blue filters, you're reducing the color field. In theory, your drawn object should be a shade of bright yellow, if gray is the desired color, such that when the viewer's eyes merge everything the result will be red+(yellow)+blue = white. Also note, effects of background (white vs. black) is an unknown, but could be significant as it creates a figure vs. ground phenomenon. | |
Have fun! | |
Marxos | |
<[email protected]> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment