DOC PREVIEW
OSU CS 553 - Stereographics

This preview shows page 1-2-3-4-5-6 out of 18 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1StereographicsMike [email protected] State Universitymjb – January 27, 2011Oregon State UniversityComputer GraphicsStereovision is not new –It’s been in common use since the 1950s,and sporadically even before thatmjb – January 27, 2011Oregon State UniversityComputer GraphicsLife Magazine2Binocular 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˚.3The 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 nasty phenomenon called vertical parallax, as illustrated below:ppSame face seen from diff i iABmjb – January 27, 2011Oregon State UniversityComputer GraphicsThe 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 to converge the two images. For perspective projections, we need a better way.different eye positionsThe 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, drawn below using an orthographic projection:Because of the use of stereographics the binocular cuesmjb – January 27, 2011Oregon State UniversityComputer GraphicsBecause of the use of stereographics, the binocular cues will 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, when in fact they are the same size.4Diversion #1 – Specifying the Viewing FrustumglFrustum( left, right, bottom, top, near, far );The OpenGL glFrustum call can be used in place of gluPerspective:Rather than having to specify the left, right, bottom, and top limits at the near clipping 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 )voidFrustumZ( 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 );particular distance in front of us. (This is derived using similar triangles.)mjb – January 27, 2011Oregon State UniversityComputer Graphics}glFrustum( left, right, bottom, top, znear, zfar );}FrustumZ( -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 Graphics5Two 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 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 displaymjb – January 27, 2011Oregon State UniversityComputer GraphicsThe 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.Note 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 you are trying to achieve.2. Looking from the Cyclops eye at the origin, determine the left, right, bottom, and top boundaries of the viewing window on the plane of zero parallax as would be used in a call to glFrustum( ). These can be determined by knowing Z0p and the field-of-view angle Φ:mjb – January 27, 2011Oregon State UniversityComputer Graphics6Two Side-by-side Perspective Viewing Volumesmjb – January 27, 2011Oregon State UniversityComputer GraphicsL0p = -Z0p * tan( ø/2 )R0p = Z0p * tan( ø/2 )B0p


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?