CS 184: COMPUTER GRAPHICS
PREVIOUS
< - - - - > CS
184 HOME < - - - - > CURRENT
< - - - - > NEXT
Lecture #29 -- Mon 5/11/2009.
Warm-up :
There are many other applications where image sampling is crucial:
Image Stitching
Images taken from the same location, but at different camera angles need to be warped before they can be stitched together:
The original two photos at different angles. The final merged image.
To Learn More: P. Heckbert's 1989 MS Thesis: Fundamentals of Texture mapping and Image Warping.
Image-based Rendering
Here, no 3D model of a scene to be rendered exists, only a set of images taken from several different locations.
For two "stereo pictures" taken from two camera locations
that are not too far apart,
correspondence is
established between key points in the two renderings (either manually, or with computer vision techniques).
By analyzing the differences of their relative positions in the two
images, one can extract 3D depth information.
Thus groups of pixels in both images can be annotated with a distance
from the camera that took them.
This basic approach can be extended to many different pictures taken from
many different camera locations.
The depth annotation establishes an implicit 3D database of the geometry
of the model object or scene.
To produce a new image from a new camera location, one selects
images taken from nearby locations
and suitably shifts or "shears" the pixel positions according to their
depth and the difference in camera locations.
The information from the various nearby images is then combined in
a weighted manner,
where closer camera positions, or the cameras that see the surface of interest under a
steeper angle, are given more weight.
With additional clever processing, information missing in one image
(e.g., because it is hidden behind a telephone pole)
can be obtained from another image taken from a different angle,
or can even be procedurally generated by extending nearby texture patterns.
Example 1: Stereo
from a single source:
A depth-annotated image of a 3D object, rendered from two different
camera positions.
Example 2: Interpolating an
image from neighboring positions:
To Learn More: UNC Image-Based Rendering
Future Graduate Courses: 283, 294x ...
Light Field Rendering
These methods use another way to store the information acquired from a
visual capture of an object.
If one knew the complete 4D plenoptic function (all the photons
traveling in all directions at all points in space surrounding an object),
i.e., the visual information that is emitted from the object in all
directions into the space surrounding it,
then one could reconstruct perfectly any arbitrary view of this object
from any view point in this space.
As an approximation, one captures many renderings from many locations
(often lying on a regular array of positions and directions),
ideally, all around the given model object, but sometimes just from
one dominant side.
This information is then captured in a 4D sampled function (2D
array of locations, with 2D sub arrays of directions).
One practical solution is to organize and index this information (about
all possible light rays in all possible directions)
by defining the rays by their intercept coordinates (s,t) and (u,v)
of two points lying on two parallel planes.
The technique is applicable to both synthetic and real worlds, i.e.
objects they may be rendered or scanned.
Creating a light field from a set of images corresponds to inserting
2D slices into the 4D light field representation.
Once a light field has been created, new views may be constructed by
extracting 2D slices in appropriate directions.
"Light Field Rendering":
Example: Image
shows (at left) how a 4D light field can be parameterized by the
intersection of lines with two planes in space.
At center is a portion of the array of images that constitute the entire
light field. A single image is extracted and shown at right.
Source: http://graphics.stanford.edu/projects/lightfield/
To Learn More: Light
Field Rendering by Marc Levoy and Pat Hanrahan
Future Graduate Courses: 283, 294x ...
3D Data acquisition
Volume Rendering
Rapid Prototyping
My Own Use of Computer Graphics
Where to go from here ... ?
Undergraduate Courses:
CS 160 User Interfaces
CS 194 The Art of Animation (Prof. Barsky)
CS 194 Advanced Digital Animation (Prof. Barsky+Dr. Garcia)
Graduate Courses:
CS 260 User Interfaces to Computer Systems
CS 274 Computational Geometry
CS 280 Computer Vision
"CS 283" or CS 294-? a new core graduate course in graphics (F2009: Profs. O'Brien + Ramamoorthi)
CS 284 Computer-Aided Geometric Design (F2009: Prof. Séquin)
Specialty Graduate Courses (taught about avery 2-3 years):
CS 285 Solid Free-form Modeling and RP (Prof. Séquin)
CS 294-? Mesh generation and geometry processing (Prof. Shewchuk)
CS 294-? Physically-based animation (Prof. O'Brien)
CS 294-? Visualization (Prof. Agrawala)
CS 294-? Design Realization and Pototyping (Prof. Canny)
CS 294-? Design of Health Technology (Prof. Canny)
CS 294-? an advanced rendering course (Prof. Ramamoorthi )
Final Exam: Friday, May 15, from 5pm till 8pm
Rules: This is what you will see on the front page:
INSTRUCTIONS ( Read carefully ! )
DO NOT OPEN UNTIL TOLD TO DO SO !
TIME LIMIT: 170 minutes. Maximum number of points: ____.
CLEAN DESKS: No books; no calculators
or other electronic devices; only writing implements
and TWO double-sided sheet
of size 8.5 by 11 inches of your own personal notes.
NO QUESTIONS ! ( They are typically unnecessary and disturb the
other students.)
If any question on the exam appears unclear to you, write down what the
difficulty is
and what assumptions you made to try to solve the problem the way you
understood it.
DO ALL WORK TO BE GRADED ON THESE SHEETS OR THEIR BACKFACES.
NO PEEKING; NO COLLABORATION OF ANY KIND!
I HAVE UNDERSTOOD THESE RULES:
Your
Signature:___________________________________
Review
the midterm topics list.
Think
through the additional topics list for the final exam.
Prepare one additional sheet of notes to be used during the exam.
The TA's have offered to hold a review discussion sessions at the regular times on Monday and Tuesday May 11 and 12:
Project Demonstrations:
Tuesday and Wednesday, May 19/20, 2009 in ??? Soda Hall
(Every day late: -40 points)
Sign up for a project demo slot! http://inst.eecs.berkeley.edu/~cs184/Fa2004/signup/
Make sure your demo is ready to run at the beginning of your assigned demo slot;
have your score sheet properly filled in (including your names and logins).
-
Each group MUST demo their final project.
-
Sign up for a 12-minute time slot.
- Tue 5/19: 2pm-5pm
Wed 5/20: 10am-12noon
Wed 5/20: 2pm-4pm
A sign-up list will be posted next week on the instructional web page
-
Demos will take place in 330/349 Soda.
- Bring a hard copy of the project score sheet filled in with your namesand your logins; also please add your demo time slot and with your best estimate of what you have achieved.
Final Project Submission:
-
Tar and gzip all relevant files and: submit project by << ?? >>, regardless
of your demo time.
-
Create a project webpage (index.html file in the public_html directory
of your cs184 account)
that includes a descriptive paragraph and screenshot. (Also include this information in your tar submission.)
PREVIOUS
< - - - - > CS
184 HOME < - - - - > CURRENT
< - - - - > NEXT
Page Editor: Carlo
H. Séquin