Presentation is loading. Please wait.

Presentation is loading. Please wait.

Electronic visualization laboratory, university of illinois at chicago Stereoscopic Computer Graphics CS426 Jason Leigh © 2004-2012 Electronic Visualization.

Similar presentations


Presentation on theme: "Electronic visualization laboratory, university of illinois at chicago Stereoscopic Computer Graphics CS426 Jason Leigh © 2004-2012 Electronic Visualization."— Presentation transcript:

1 electronic visualization laboratory, university of illinois at chicago Stereoscopic Computer Graphics CS426 Jason Leigh © 2004-2012 Electronic Visualization Laboratory

2 electronic visualization laboratory, university of illinois at chicago 4-10% of population cannot see stereopsis. Other cues come into play to provide sense of depth. Try to take advantage of those in addition to stereopsis for best results.

3 electronic visualization laboratory, university of illinois at chicago Depth Cues Perceiving “depth” with one eye closed Perspective. Objects get smaller the further away they are and parallel line converge in distance. Sizes of known objects. We expect certain object to be smaller than others. If an elephant and a tea cup appear the same size then we expect the elephant to be further away. Detail. Close objects appear in more detail, distant objects less. Occlusion. An object that blocks another is assumed to be in the foreground. Lighting, shadows. Closer objects are brighter, distant ones dimmer. There a number of other more subtle cues implied by lighting, the way a curved surface reflects light suggests the rate of curvature, shadows are a form of occlusion. Relative motion. Objects further away seem to move more slowly than objects in the foreground.

4 electronic visualization laboratory, university of illinois at chicago Using both eyes Binocular disparity. This is the difference in the images projected onto the back of the eye (and then onto the visual cortex) because the eyes are separated horizontally by the interocular distance. Only good to about 15-20 feet. Accommodation. This is the muscle tension needed to change the focal length of the eye lens in order to focus at a particular depth. Convergence. This is the muscle tension required to rotate each eye so that it is facing the focal point. For STEREOSCOPIC Computer Graphics the “3D” effect is achieved through Binocular Disparity.

5 electronic visualization laboratory, university of illinois at chicago Ways of Seeing Stereoscopic Content

6 electronic visualization laboratory, university of illinois at chicago Free Viewing In general you are creating 2 views (one for each eye). This means your graphics card needs to render the scene twice.

7 electronic visualization laboratory, university of illinois at chicago Anaglyphic Stereo

8 electronic visualization laboratory, university of illinois at chicago Stereoscopes

9 electronic visualization laboratory, university of illinois at chicago CAVE - 1992 Active Stereo LCD Shutter glasses University of Illinois at Chicago

10 electronic visualization laboratory, university of illinois at chicago GeoWall - 2001

11 electronic visualization laboratory, university of illinois at chicago Varrier - 2005

12 electronic visualization laboratory, university of illinois at chicago Cyber-Commons 3D - 2011 University of Illinois at Chicago

13 electronic visualization laboratory, university of illinois at chicago CAVE 2 – Oct 2012 University of Illinois at Chicago

14 electronic visualization laboratory, university of illinois at chicago Positive Parallax The left and right eye images projected on the screen

15 electronic visualization laboratory, university of illinois at chicago Negative Parallax If Objects are too close in front of the projection plane, negative parallax will increase. If negative parallax is wider than eye separation, then result is pain.

16 electronic visualization laboratory, university of illinois at chicago Zero Parallax (when the object is actually on the screen)

17 electronic visualization laboratory, university of illinois at chicago Correct Stereo Computer Graphics Asymmetric View Frustum

18 electronic visualization laboratory, university of illinois at chicago Stereo Approximation Left Eye Right Eye Projection Planes are not the same There is potential for eye discomfort for objects that are too close because an object may appear to be cut off at the edges for one of the eyes. Enlarging eye separation makes the problem worse.

19 electronic visualization laboratory, university of illinois at chicago Making the graphics look true to size regardless of screen size Set camera properties to be the same as real world properties: –Set user’s distance to screen (ie focal length d) –Measure the screen’s height (h) –Compute the field of view (f = 2*atan(h/2d)) –Use real world eye separation distance (2.5 inches) Left Eye Right Eye d h f E.g. A 1 foot object should appear to be the right size regardless of screen size.

20 electronic visualization laboratory, university of illinois at chicago Small screen Big screen

21 electronic visualization laboratory, university of illinois at chicago In Movies and Video Games True Size is Generally Never Used Yoda is not 30 feet tall…

22 electronic visualization laboratory, university of illinois at chicago Note the separation of 2 points on an image here Eyes Lets say you created a stereo image for a small desktop display… In 3D Things Can Get Painful

23 electronic visualization laboratory, university of illinois at chicago Eyes … then you decide to run your application on a BIG display! Same can happen if you sit too close in a 3D movie

24 electronic visualization laboratory, university of illinois at chicago General Recommendation General guideline is make eye separation no more than 1/20 of d This gives us an angle of about 1.5 degrees i.e. atan(1/20/2 / d) 1/20 of d d

25 electronic visualization laboratory, university of illinois at chicago General Recommendation Same therefore goes for any object in the scene. It should not project an image on the screen of size DX that is larger than your eye separation. t = 2 atan(DX / 2d) t

26 electronic visualization laboratory, university of illinois at chicago Say an object is too close… Now t >> 1.5 And DX >> Eye Separation DX Eye Separation But remember for large screens DX will be big. So you really have to be conservative about how close you can put your object. Often you will hear recommendations of setting eye separation to 1/30 or 1/100

27 electronic visualization laboratory, university of illinois at chicago Tips Use 2D depth cues. When using 3D it’s safest to put objects behind the screen – but not too far or the depth effect is lost. Bring objects in front of projection screen sparingly and be careful how close they come. Be careful with wild camera swings. Your game may slow down as much as by half to render the second eye. Keep eye separation at no more than 1/20 the distance to projection screen or object. Test your game on the target display platform don’t assume it will just look fine..

28 electronic visualization laboratory, university of illinois at chicago OLD SLIDES

29 electronic visualization laboratory, university of illinois at chicago Stereo in Unity3D

30 electronic visualization laboratory, university of illinois at chicago Ways of Seeing Stereo Passive Stereo GeoWall Active Stereo LCD Shutter glasses Passive Stereo LCD Autostereo LCD (Varrier)

31 electronic visualization laboratory, university of illinois at chicago Stereo in Electro electro.exe -f config/geowall-side-by-side-config.lua ….. set_camera_stereo(camera, mode, Lx, Ly, Lz, Rx, Ry, Rz) Set stereo options on the given camera. The mode argument gives the stereo method, as described below. The (Lx, Ly, Lz) and (Rx, Ry, Rz) arguments give the offsets from the camera to the user's left and right eyes. Available stereo modes : –stereo_mode_none –stereo_mode_tile - GeoWall side-by-side stereo –stereo_mode_quad - LCD shutter glasses stereo –stereo_mode_red_blue - red/blue stereo –stereo_mode_varrier_11, * stereo_mode_varrier_33 - autostereo

32 electronic visualization laboratory, university of illinois at chicago GeoWall Stereo Config for Electro W = 5.1666 -- The Geowall in the AG Room is 5'2" H = 4.1666 -- by 4'2". D = 10.0000 -- The ideal viewing position is 10' from the center. O = 0.15 -- The interocular distance S = 8 -- orthagonal camera pixel seperation (hack) w = 2048 h = 768 ------------------------------------------------------------------------------ tile = { } host = E.add_host("default", 0, 0, w, h) tile[1] = E.add_tile(host, 0, 0, w / 2, h) tile[2] = E.add_tile(host, w / 2, 0, w / 2, h) E.set_tile_position(tile[1], -W / 2, -H / 2, -D, W, 0.0, 0.0, 0.0, H, 0.0) E.set_tile_position(tile[2], -W / 2, -H / 2, -D, W, 0.0, 0.0, 0.0, H, 0.0) E.set_tile_viewport(tile[1], S, 0, w / 2, h) E.set_tile_viewport(tile[2], -S, 0, w / 2, h) E.set_tile_view_offset(tile[1], -O / 2, 0, 0) E.set_tile_view_offset(tile[2], O / 2, 0, 0) E.set_host_flags(host, E.host_flag_full, true)

33 electronic visualization laboratory, university of illinois at chicago Stereo API in BlitzGeoWallStereoLib.bb 3 Main Calls: 1. Create 2 cameras and return the main camera (left camera) –mainCamera = SL_CreateStereoCameras() 2. Set up the stereo camera viewports –SL_SetUpCameras() –SL_SetEyeSeparation(separationValue#) 3. Update stereo cameras just before each Render call (basically to update the right camera) –SL_Update()

34 electronic visualization laboratory, university of illinois at chicago Other Useful Calls Call these only if for some reason you want to manually create each camera –Camera=SL_CreateLeftCamera() –Camera=SL_CreateRightCamera() Call this if you have your own cameras created and want to use them as the stereo cameras –SL_SetLeftCamera(camera) –SL_SetRightCamera(camera) Just accessor functions –Camera=SL_GetLeftCamera() –Camera=SL_GetRightCamera() Switch to monoscopic viewing –SL_SwitchToMono() Switch to Stereo viewing –SL_SwitchToStereo() Use this to set near correct scaled stereo. Ie. A 1 foot object will appear 1 foot in size on the screen given the height and distance to the screen. –SL_SetUpCorrectScaleStereo(screenWidth#, screenHeight#, distanceToScreen#)

35 electronic visualization laboratory, university of illinois at chicago Final Comments Use the BLITZ_GEOWALL_GAME_ENGINE_TEMP LATE to begin writing your own Blitz3D GeoWall Stereo Program Template includes both stereo calls and proper game loop with Tweening.


Download ppt "Electronic visualization laboratory, university of illinois at chicago Stereoscopic Computer Graphics CS426 Jason Leigh © 2004-2012 Electronic Visualization."

Similar presentations


Ads by Google