Title: Omnidirectional Rendering
1Omnidirectional Rendering
- Jiesang Song
- Stephanie Weirich
2Motivation
- 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.
3Quake screen shot
4Riven screen shot
5Inspiration
- Columbia Omnicamera - Teleconferencing
- Quicktime VR - Panoramic Imaging
6(No Transcript)
7Methodology
- Render complex scenes ahead of time in an
Intermediate Image - Compute several perspective views from that one
image
8Methodology
declare Glas2 sor 12, lt.517241379,
-.132625995gt lt.249336870, 0.000000gt
lt.068965517, .031830239gt lt.021220159,
.050397878gt lt.238726790, .602122016gt
lt.249336870, .721485411gt lt.233421751,
.864721485gt lt.167108753, 1.000000000gt
lt.084880637, 1.055702918gt open
POV Source
Hemisperical view
Perspective view
9Parabolic Mirror
10Generalization
- Parabolic mirror defines a function between the
angle of elevation, ?, of a ray and the radial
distance, r, of its location in the image.
11Generalization
- We dont need to follow physical laws
- We can use (almost) any function of q we wish!
- Parabolic mirror model shows us how
12Generalization (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
13Implementation 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
14Interface
- Move mouse to pan image
- Use left/right mouse buttons to zoom in and out
(limited depth)
15Performance
- About 1 3 seconds to generate new 640480 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