150 likes | 285 Views
Omnidirectional Rendering. Jiesang Song Stephanie Weirich. Motivation. Rendering is neat Many video games strive to immerse the player in an imaginary world. Rendering is slow Complexity is based upon the number of objects in the scene, as well as the number of pixels in the output.
E N D
Omnidirectional Rendering Jiesang Song Stephanie Weirich
Motivation Rendering is neat Many video games strive to immerse the player in an imaginary world. Rendering is slow Complexity is based upon the number of objects in the scene, as well as the number of pixels in the output.
Columbia Omnicamera - Teleconferencing Quicktime VR - Panoramic Imaging Inspiration
Methodology Render complex scenes ahead of time in an “Intermediate Image” Compute several perspective views from that one image
Methodology #declare Glas2 = sor { 12, <.517241379, -.132625995> <.249336870, 0.000000> <.068965517, .031830239> <.021220159, .050397878> <.238726790, .602122016> <.249336870, .721485411> <.233421751, .864721485> <.167108753, 1.000000000> <.084880637, 1.055702918> open } POV Source Hemisperical view Perspective view
Generalization Parabolic mirror defines a function between the angle of elevation, , of a ray and the radial distance, r, of its location in the image.
Generalization • We don’t need to follow physical laws • We can use (almost) any function of q we wish! • Parabolic mirror model shows us how
Generalization (Cont) • Different functions allow us to adjust the resolution of parts of the image • Fisheye lens - r is linear in q • Another function might allow us to have more resolution near the horizon. Parabolic Mirror Fisheye lens
Implementation Overview • Initialize windows application • Initialize DirectDraw Surface in Video memory • Read in .PPM files • Run conversion algorithm • Initialize Device Independent Bitmap (DIB) • Stretch and copy Bitmap into DirectDraw Surface • Enter message processing loop
Interface • Move mouse to pan image • Use left/right mouse buttons to zoom in and out (limited depth)
Performance • About 1 – 3 seconds to generate new 640*480 or 320 * 240 images on Intel Pentium 200 MHz running Win95 • About 5 – 9 seconds for 1024 * 768 images but takes longer to initialize • Room for optimization