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 anglesThe 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é

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 ! )



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.




                                        Your Signature:___________________________________

Advice on Exam Preparation

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).

Final Project Submission:

PREVIOUS < - - - - > CS 184 HOME < - - - - > CURRENT < - - - - > NEXT
Page Editor: Carlo H. Séquin