Your SlideShare is downloading. ×
0
Course Outline<br /><ul><li>Introduction: History and Physiology
Construction Glasses-free 3D Displays
Multi-view Rendering using OpenGL
Multi-view Interlacing using GLSL
Designing Content for Glasses-free 3D Displays
Emerging Technology
Q & A and Demonstrations</li></li></ul><li>Lenticular Model Viewer:<br />Demonstration<br />
Lenticular Model Viewer:<br />Application Overview<br />Lenticular Model Viewer<br />main.h<br />OpenGL Include Files<br /...
Lenticular Model Viewer:<br />Application Overview<br />Lenticular Model Viewer<br />OpenGL Include Files<br />glinclude.h...
Lenticular Model Viewer:<br />Application Overview<br />Lenticular Model Viewer<br />OpenGL Include Files<br />glinclude.h...
Lenticular Model Viewer:<br />Application Overview<br />Lenticular Model Viewer<br />OpenGL Include Files<br />glinclude.h...
Lenticular Model Viewer:<br />Application Overview<br />Lenticular Model Viewer<br />OpenGL Include Files<br />glinclude.h...
GL_TEXTURE_2D texture bound to GL_COLOR_ATTACHMENT0
Fragment shader accesses each view using a pre-defined set of sampler2Dvariables:</li></ul>uniform sampler2D view1;<br />u...
GL_TEXTURE_2D_ARRAY_EXT texture array with layers bound to GL_COLOR_ATTACHMENT0
Fragment shader accesses each view using a single sampler2DArrayvariable:</li></ul>uniform sampler2DArray views;<br />
Lenticular Model Viewer:<br />Examining the GLUT Display Callback<br />main.cpp<br />
Lenticular Model Viewer:<br />Lenticular Interlacer Library Data Structures<br />lenticular.h<br />Screen Parameters<br />
Lenticular Model Viewer:<br />Lenticular Interlacer Library Data Structures<br />lenticular.h<br />o<br />Screen Parameter...
Lenticular Model Viewer:<br />Lenticular Interlacer Library Data Structures<br />lenticular.h<br />far clipping plane<br /...
Lenticular Model Viewer:<br />Lenticular Interlacer Library Data Structures<br />lenticular.h<br />Screen Parameters<br />...
Lenticular Model Viewer:<br />Lenticular Interlacer Library Functions<br />lenticular.h<br />
Upcoming SlideShare
Loading in...5
×

BYO3D 2011: Interlacing

10,575

Published on

Driven by the recent resurgence of 3D cinema, depth cameras and stereoscopic displays are becoming commonplace in the consumer market. Introduced last October, Microsoft Kinect has already fostered gesture-based interaction for applications well beyond the intended Xbox 360 platform. Similarly, consumer electronics manufacturers have begun selling stereoscopic displays and inexpensive stereoscopic cameras. Most commercial 3D displays continue to require cumbersome eyewear, but inexpensive, glasses-free 3D displays are imminent with the release of the Nintendo 3DS.
At SIGGRAPH 2010, the Build Your Own 3D Display course demonstrated how to construct both LCD shutter glasses and glasses-free lenticular screens, providing Matlab-based code for batch encoding of 3D imagery. This follow-up course focuses more narrowly on glasses-free displays, describing in greater detail the practical aspects of real-time, OpenGL-based encoding for such multi-view, spatially multiplexed displays.
The course reviews historical and perceptual aspects, emphasizing the goal of achieving disparity, motion parallax, accommodation, and convergence cues without glasses. It summarizes state-of-the-art methods and areas of active research. And it provides a step-by-step tutorial on how to construct a lenticular display. The course concludes with an extended question-and-answer session, during which prototype hardware is available for inspection.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
10,575
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
62
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "BYO3D 2011: Interlacing"

  1. 1. Course Outline<br /><ul><li>Introduction: History and Physiology
  2. 2. Construction Glasses-free 3D Displays
  3. 3. Multi-view Rendering using OpenGL
  4. 4. Multi-view Interlacing using GLSL
  5. 5. Designing Content for Glasses-free 3D Displays
  6. 6. Emerging Technology
  7. 7. Q & A and Demonstrations</li></li></ul><li>Lenticular Model Viewer:<br />Demonstration<br />
  8. 8. Lenticular Model Viewer:<br />Application Overview<br />Lenticular Model Viewer<br />main.h<br />OpenGL Include Files<br />Main Application<br />main.cpp<br />glinclude.h<br />config.txt<br />OpenGL Function Library<br />help.txt<br />glf.h<br />/models/*.obj<br />/images/numbers/*.tga<br />glf.cpp<br />GLM OBJ Model Library<br />glinfo.h<br />glm.h<br />glinfo.cpp<br />glm.cpp<br />lenticular.h<br />OpenGL State Information Library<br />lenticular.cpp<br />interlacer.vert<br />Lenticular Interlacer Library<br />Interlacer.frag<br />mosaic.frag<br />mosaic.vert<br />
  9. 9. Lenticular Model Viewer:<br />Application Overview<br />Lenticular Model Viewer<br />OpenGL Include Files<br />glinclude.h<br />OpenGL Function Library<br />glf.h<br />glf.cpp<br />GLM OBJ Model Library<br />glinfo.h<br />glm.h<br />glinfo.cpp<br />glm.cpp<br />lenticular.h<br />OpenGL State Information Library<br />lenticular.cpp<br />interlacer.vert<br />Lenticular Interlacer Library<br />Interlacer.frag<br />mosaic.frag<br />mosaic.vert<br /><ul><li>Includes OpenGL, GLUT, and (optionally) GLEW libraries</li></li></ul><li>Lenticular Model Viewer:<br />Application Overview<br />Lenticular Model Viewer<br />OpenGL Include Files<br />glinclude.h<br />OpenGL Function Library<br />glf.h<br />glf.cpp<br />GLM OBJ Model Library<br />glinfo.h<br />glm.h<br />glinfo.cpp<br />glm.cpp<br />lenticular.h<br />OpenGL State Information Library<br />lenticular.cpp<br />interlacer.vert<br />Lenticular Interlacer Library<br />Interlacer.frag<br />mosaic.frag<br />mosaic.vert<br /><ul><li>Defines commonly used OpenGL functions</li></ul> (e.g., creation of shader programs and loading of TGA images)<br />
  10. 10. Lenticular Model Viewer:<br />Application Overview<br />Lenticular Model Viewer<br />OpenGL Include Files<br />glinclude.h<br />OpenGL Function Library<br />glf.h<br />glf.cpp<br />GLM OBJ Model Library<br />glinfo.h<br />glm.h<br />glinfo.cpp<br />glm.cpp<br />lenticular.h<br />OpenGL State Information Library<br />lenticular.cpp<br />interlacer.vert<br />Lenticular Interlacer Library<br />Interlacer.frag<br />mosaic.frag<br />mosaic.vert<br /><ul><li>Nate Robins’ Wavefront OBJ model reader/writer/manipulator</li></ul> (see http://www.xmission.com/~nate/opengl.html)<br />
  11. 11. Lenticular Model Viewer:<br />Application Overview<br />Lenticular Model Viewer<br />OpenGL Include Files<br />glinclude.h<br />OpenGL Function Library<br />glf.h<br />glf.cpp<br />GLM OBJ Model Library<br />glinfo.h<br />glm.h<br />glinfo.cpp<br />glm.cpp<br />lenticular.h<br />OpenGL State Information Library<br />lenticular.cpp<br />interlacer.vert<br />Lenticular Interlacer Library<br />Interlacer.frag<br />mosaic.frag<br />mosaic.vert<br /><ul><li>Useful functions for querying the OpenGL state</li></ul> (e.g. testing for framebuffer completeness) <br />
  12. 12. Lenticular Model Viewer:<br />Application Overview<br />Lenticular Model Viewer<br />OpenGL Include Files<br />glinclude.h<br />OpenGL Function Library<br />glf.h<br />glf.cpp<br />GLM OBJ Model Library<br />glinfo.h<br />glm.h<br />glinfo.cpp<br />glm.cpp<br />lenticular.h<br />OpenGL State Information Library<br />lenticular.cpp<br />interlacer.vert<br />Lenticular Interlacer Library<br />Interlacer.frag<br />mosaic.frag<br />mosaic.vert<br /><ul><li>OpenGL/GLSL library for multi-view rendering for lenticular displays</li></li></ul><li>Lenticular Model Viewer:<br />Multi-View Data Structures in OpenGL<br />Rendered Multi-View Sequence<br />Option 1: Individual Textures for Each View <br /><ul><li>One FBO for each view
  13. 13. GL_TEXTURE_2D texture bound to GL_COLOR_ATTACHMENT0
  14. 14. Fragment shader accesses each view using a pre-defined set of sampler2Dvariables:</li></ul>uniform sampler2D view1;<br />uniform sampler2D view2;<br />...<br />uniform sampler2D viewN;<br />Option 2: 2D Texture Arrays<br /><ul><li>One FBO for each view
  15. 15. GL_TEXTURE_2D_ARRAY_EXT texture array with layers bound to GL_COLOR_ATTACHMENT0
  16. 16. Fragment shader accesses each view using a single sampler2DArrayvariable:</li></ul>uniform sampler2DArray views;<br />
  17. 17. Lenticular Model Viewer:<br />Examining the GLUT Display Callback<br />main.cpp<br />
  18. 18. Lenticular Model Viewer:<br />Lenticular Interlacer Library Data Structures<br />lenticular.h<br />Screen Parameters<br />
  19. 19. Lenticular Model Viewer:<br />Lenticular Interlacer Library Data Structures<br />lenticular.h<br />o<br />Screen Parameters<br />Lenticular Parameters<br />wl<br />f<br />wp<br />
  20. 20. Lenticular Model Viewer:<br />Lenticular Interlacer Library Data Structures<br />lenticular.h<br />far clipping plane<br />Screen Parameters<br />display<br />display<br />near clipping plane<br />Lenticular Parameters<br />Camera Parameters<br />views<br />
  21. 21. Lenticular Model Viewer:<br />Lenticular Interlacer Library Data Structures<br />lenticular.h<br />Screen Parameters<br />Lenticular Interlacer<br />Lenticular Parameters<br />Camera Parameters<br />
  22. 22. Lenticular Model Viewer:<br />Lenticular Interlacer Library Functions<br />lenticular.h<br />
  23. 23. Lenticular Model Viewer:<br />setViewMultiscopicLenticular()<br />
  24. 24. Lenticular Model Viewer:<br />displayLenticular()<br />displayInterlacedLenticular()<br />displayViewMosaicLenticular()<br />
  25. 25. Lenticular Model Viewer:<br />GLSL Shaders for Lenticular Interlacing<br />o<br />wl<br />View 1<br />View 2<br />View 3<br />f<br />×<br />×<br />×<br />d<br />wp<br />Mask 1<br />Mask 2<br />Mask 3<br />+<br />Interlaced<br />
  26. 26. Lenticular Model Viewer:<br />Interactive Calibration Mode<br />“Moiré Magnifier” Calibration Pattern<br />“Numbers” Calibration Pattern<br />
  27. 27. Lenticular Model Viewer:<br />Defining Options using config.txt<br />config.txt<br /><ul><li>All physical distances in centimeters
  28. 28. Can obtain screen pitch from manufacturer specifications
  29. 29. Lenticular parameters (besides focal length) estimated interactively
  30. 30. Camera placement can be defined or automatically evaluated</li></ul> (automatic placement presents correct views at viewer_distance)<br /><ul><li>Lenticular parameters (besides focal length) estimated interactively
  31. 31. Antialiasing requires quality> 0 (i.e., oversampled views)
  32. 32. Models must be in Wavefront OBJ format</li></li></ul><li>Obtaining the Source Code<br />OpenGL Anaglyphic Model Viewer<br />OpenGL Lenticular Model Viewer<br /><ul><li>Open source (released under the MIT license)
  33. 33. See related AutostereoInterleaverby Robert Kooima (also OpenGL/GLSL)</li></ul> (see http://csc.lsu.edu/~kooima/interleaver/interleaver.html)<br />http://cameraculture.media.mit.edu/byo3d<br />
  34. 34. Course Outline<br /><ul><li>Introduction: History and Physiology
  35. 35. Construction Glasses-free 3D Displays
  36. 36. Multi-view Rendering using OpenGL
  37. 37. Multi-view Interlacing using GLSL
  38. 38. Designing Content for Glasses-free 3D Displays
  39. 39. Emerging Technology
  40. 40. Q & A and Demonstrations</li>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×