Unformatted text preview:

StereographicsMike [email protected] State Universitymjb – January 27, 2011Oregon State UniversityComputer GraphicsStereovision is not new –It’s been in common use since the 1950s,andsporadically evenbefore thatand sporadically even before thatmjb – January 27, 2011Oregon State UniversityComputer GraphicsLife MagazineBinocular VisionIn everyday living, part of our perception of depth comes from the slight difference in how our two eyes see the world around us. This is known as binocular vision. We care about this, and are discussing it, because stereo computer graphics can be a great help in de-cluttering a complex 3D visualization scene.mjb – January 27, 2011Oregon State UniversityComputer GraphicsThe Cyclops ModelIn the world of computer graphics, the two eye views can be reconstructed using standard projection mathematics. The simplest approach is the Cyclops Model. In this model, the left and right eye views are obtained by rotating the scene plus and minus what a Cyclops at the origin would see. Looking at everything from the top:mjb – January 27, 2011Oregon State UniversityComputer GraphicsThe left eye view is obtained by rotating the scene an angle +Ø about the Y axis. The right eye view is obtained by rotating the scene an angle -Ø about the Y axis. In practice, a good value of Ø is 1-4˚.The Vertical Parallax ProblemThis seems too simple, and in fact, it is. This works OK if you are doing orthographic projections but if you use perspective you will achieve a nastyorthographic projections, but if you use perspective, you will achieve a nasty phenomenon called vertical parallax, as illustrated below:ABSame face seen from different eye positionsBThe fact that the perspective shortening causes points A and B to have different vertical positions in the left and right eye views makes it very difficult for the eyes mjb – January 27, 2011Oregon State UniversityComputer Graphicsto converge the two images. For perspective projections, we need a better way.The Vertical Parallax ProblemWhy not just keep using orthographic projections? Mathematically this is fine, but in practice, the two depth cues, stereo and no-perspective, fight each other. This will bring on an optical illusion. A good example of this is a simple cube, drawnwill bring on an optical illusion. A good example of this is a simple cube, drawn below using an orthographic projection:Because of the use of stereographics, the binocular cues will say that the Near face is closer to the viewer than iswill say that the Near face is closer to the viewer than is the Far face. However, our visual experience says that the only way a far object can appear the same size as a near object is if it is, in fact, larger. Thus, your visual system will perceive the Far face as being larger than the Near face,mjb – January 27, 2011Oregon State UniversityComputer Graphicsperceive the Far face as being larger than the Near face, when in fact they are the same size.Diversion #1 – Specifying the Viewing FrustumThe OpenGLglFrustumcall can be used in place ofgluPerspective:glFrustum( left, right, bottom, top, near, far );The OpenGL glFrustumcall can be used in place of gluPerspective:Rather than having to specify the left, right, bottom, and top limits at the near clipping l(hihihtlF tt)lt’ t t if th li it tvoidFrustumZ(float left float right float bottom floattop floatznearfloatzfarfloatzproj)plane (which is what glFrustum expects), let’s setup a way to specify those limits at a particular distance in front of us. (This is derived using similar triangles.)FrustumZ(float left, float right, float bottom, float top, float znear, float zfar, float zproj){if( zproj != 0.0 ){left *= ( znear/zproj );right *= ( znear/zproj );bottom *= ( znear/zproj );top *= ( znear/zproj );}glFrustum( left, right, bottom, top, znear, zfar );}So if you wanted to view a car from 30 feet away you could say:mjb – January 27, 2011Oregon State UniversityComputer GraphicsFrustumZ( -10., 10., -10., 10., .1, 100., 30. );So, if you wanted to view a car from 30 feet away, you could say:Diversion #2 – Where does a 3D Point Map in a 2D Window? Take an arbitrary 3D point in the viewing volume. Place a plane parallel to the near and far clipping planes at its Z value (i.e., depth in the frustum). The location of the point on that plane shows proportionally where the 3D point will be perspective-mapped from left to right in the 2D window.mjb – January 27, 2011Oregon State UniversityComputer GraphicsTwo Side-by-side Perspective Viewing VolumesThe best stereographics work is done with perspective projections. To avoid the vertical parallax problem, we keep both the left and right eyes looking straight ahead so that, in the vertical parallax example shown before, points A and B will project with exactly the same amount of shorteningwith exactly the same amount of shortening.The left eye sees the box towards the far right side of its displayThe right eye sees the box towards the far left side of its displayTh l ft i i bt i d b t l ti th bEi th Xdi ti hi hi t llof its displayits displayThe left eye view is obtained by translating the eye by -E in the X direction, which is actually accomplished by translating the scene by +E instead. Similarly, the right eye view is obtained by translating the scene by -E in the X direction. We now have a horizontal parallax situation, where the same point projects to a different horizontal position in the left and right eye views.mjb – January 27, 2011Oregon State UniversityComputer GraphicsNote that this is a situation, not a problem. The difference in the left and right eye views requires a at least some horizontal parallax to work. You can convince yourself of this by alternately opening and closing your left and right eyes. We just need a good way to control the horizontal parallax.Two Side-by-side Perspective Viewing VolumesWe do this by defining a distance in front of the eye, z0p, to the plane of zero parallax, where a 3D point projects to the same window location for each eye. To the viewer, the plane of zero parallax will be the glass screen and objects in front of it will appear to live in the air in front of the glass screen and objects behind this plane will appear to live inside the monitor. The plane of zero parallax is handled by:1. Set the distance from the eyes to the plane of zero parallax based on the location of the geometry and the look


View Full Document

OSU CS 553 - Stereographics

Download Stereographics
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Stereographics and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Stereographics 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?