|
Homework
This course requires a significant
amount of reading. The 2-volume Glassner text
(PDIS) has more than 1000 pages; RRT
by Shirley has 150; RGI by Sillion has
200. Expect to read 50 pages of dense technical
material every week.
Homework will be demonstrated in class
each week, using the PowerWall in the Dirac Science Library
Seminar Room. The projects and programs are described informally
below, and in more detail during class. The goal of these
programs and projects is to allow you to investigate and
demonstrate aspects of global illumination and radiative
heat transfer.
A VCR is set up in the Visualization Lab for your use
in viewing past videos from past ACM SIGGRAPH conferences.
If I am asked to read an review an actual paper submitted
to this year's SIGGRAPH conference, you will help with the
process. The ethical aspects of the review process are important;
they can be found at
www.siggraph.org/s2001/review
on the Web.
|
|
|
08 January
Project 00
Emittance
Make a 2D emissive thing. Put some pockets on it to
collect samples. Send a bunch of samples from it and
see the angular emittance distribution. Put images
and animations on your Web page.
Reading
The Foundations of Photo-realistic Rendering
PDIS Chapter 03
PDIS Chapter 11
PDIS Chapter 14
SIGGRAPH 2000 video
|
15 January
Program 00
Emittance with spherical harmonics
Spherical Harmonics
Art Gallery
link 1
link 2
link 3
Create a sphere in OpenInventor.
Make it emit a stream of particles according to spherical harmonics.
You control the coefficients of the harmonics with draggers.
Reading
PDIS
Chapter 13
Video
|
|
22 January
Project 01 Scattering
Make a 2D scattering thing. Put some pockets on it to
collect samples. Send a bunch of samples to it from your
2D emissive thing and
see the angular scattering distribution. Put images
and animations on your Web page.
Reading
PDIS
Chapter 12
RRT Chapter 17
R&GI Chapter 02
Video
|
|
29 January
Program 01
Elastic Scattering
Create a spherical volume of particles. Inject a sphere
with a certain momentum. Model elastic collisions.
Collect the scattered particles on a spherical shell.
Run many samples and combine to make a scattering
cross section.
Reading
QED Chapter 01
Video
|
|
05 February
Project 02 BRDF's
Find some interactive tutorials on the Web for BRDF's.
Demo them. Put pictures and animations on your Web page.
Reading
RRT Chapter 01
RRT Chapter 02
RRT Chapter 11
RRT Chapter 12
RRT Chapter 13
RRT Chapter 14
RRT Chapter 15
RRT Chapter 16
Light field
View Interpolation (Shenchang Eric Chen)
(search the Web)
Video
|
|
12 February
Program 02
Surface Scattering
Use spherical harmonics to determine the scattering behavior.
(Or use some other scattering model.)
Create several scattering spheres on a surface. Each has
a scattering function. Send particles to the spheres,
causing scattering. Use the directionalLightManip as an
input tool.
Reading
QED Chapter 02
Real-Time Fur
Real-Time Fur over
Arbitrary Surfaces (for the upcoming
I3D symposium)
Video
|
|
19 February
Project 03 Radiance
Take some photos in all directions. Print them. Affix them
to a sphere
(or cube or
icosahedron
or something) of incident radiance. Affix another copy to a
sphere of exitant radiance.
Repeat the process for several viewpoints in a small grid,
maybe 3x3. Or work together and make it a 3x3x3 volume.
Reviewing
Fill out the SIGGRAPH
review form.
Reading
PDIS Chapter 15
R&GI Chapter 03
RRT Chapter 03
RRT Chapter 04
RRT Chapter 05
Video
|
|
26 February
Program 03
Ray Casting
Choose between either of these versions below.
Version 1:
Instead of scattering many particles from all directions,
your scattering sphere will scatter particles from 1 incident
direction.
Send in a stream of particles that hit the surface. Each
particle scatters in some random direction subject to
the reflectance function (like a BRDF you used before).
Collect the resulting particles onto a large sphere.
Convert it into an image. How do you convert it into an
image? Take each sample on this sphere and convert it
into Phi, Theta. Make a blob on a texture map. The blob
will now appear in the right position on the sphere.
Version 2:
Instead of sending in a stream of photons from the light,
send out a stream of samples from a viewpoint. The samples
go out in all directions, filling up a unit sphere of
directions. Each direction corresponds to a ray. Put
some emissive objects in the scene. If the ray hits an
emitter, then calculate the emittance in the direction
toward the eye. Maybe just use the emittance distribution
E(x,v) = v.N for a point x on an
emissive sphere.
Reading
QED Chapter 03
Video
|
|
05 March
Project 04 Radiosity
This assignment is about blurring the incident radiance.
Select a light box from the Vis Lab. Using thin threads,
lay out a uniform grid over the front (open) face. Maybe
4x4 or 5x5. You will take a photo from each grid point,
so be sure to leave some room at the edges to accomodate
your camera.
Shine a light through the opening(s) in the light box.
Take a photo from each grid point. For each image, aim the
camera straight ahead. Set your camera so that
it uses the same aperture and shutter speed for each image.
That is, the images should be calibrated to the same scale,
even if that means some of them come out very dark.
Using /usr/sbin/imean (or any other tool you like), find the
average value of each image. Use that average for the
corresponding vertex of an indexed face set (or quad mesh).
The result
will be a blurry image of the total average incident
radiance impinging on the open face of the light box.
Make a 3D model of the box using Open Inventor. For the open
face, make a mesh with front-face culling so you can
see it from inside the box, but see through it from outside
the box. Use your indexed-face set for the mesh. It should
look like a radiosity solution for that part of the box.
Make a Web page for the project. Include the array of images.
Include the array of blurred images.
Include a screen shot showing the 3D scene.
Reading
PDIS Chapter 04
PDIS Chapter 05
R&GI Chapter 07
Video
|
|
12 March
Semester break
|
|
19 March
Program 04
Part 1: Filtering
Use adaptive filter sizes to reconstruct the image from
the samples in your ray-cast texture-map program. If the
initial filter kernel has radius r, the nth
one has radius r/sqrt(n).
Part 2: Polygon manipulation
Create a scene with 2 rectangles. Put draggers/manipulators
on them so you can move them around and change their
size and orientation. Give each one some sort of dragger
that defines the number n of samples in each direction.
Use a texture map to show nxn dots for the sample positions.
Connect the dots from one polygon to the other as you
move them around in 3D.
Extra credit:
Drill/cut/bore an array of holes in each face of a
light box. Take pictures through the holes. Turn the
average value of the pictures into a texture map.
Create an Inventor model of the light box, with a
textured interior.
Reading
R&GI Chapter 08
R&GI Chapter A
Video
|
|
26 March
Project 05
Drill/cut/bore an array of holes in each face of a
light box. Remove a hole; take a picture through the holes;
replace the hole. Turn the
average value of each pictures into a pixel of a texture map.
Create an Inventor model of the light box, with a
textured interior. Cull front-faces so you can see through
the box. Make the polygons of the box un-pickable so
you can use the cross-hairs to zoom in on an object inside
the box.
Reading
PDIS Chapter 16
PDIS Chapter 17
PDIS Chapter 18
Video
|
|
02 April
Program 05
Radiosity
Using your polygon draggers from two weeks ago
(for position, size, and number of samples), determine the form
factor between polygons A and B. Make a dragger
for each polygon to determine its exitant radiance
(from 0 to 1) and its albedo (from 0 to 1).
First, just modify the SoMaterial properties of
the two polygons. Put an soPointLight at each of
the sample points, with its emissive color determined
by the exitantRadiance dragger. Change the diffuse
color via the albedo dragger.
Second, actually compute the 1st step of light transport
for radiosity between A and B. Disable the pointLight
junk. Make each sample point have the value of the
exitant radiance you compute. Either store it
in a texture map and interpolate it, or draw a bunch
of spheres with the proper colors (as sort of a cartoon),
or whatever you prefer. Be able to display the polygon with
the color you compute for its (average) radiosity.
Reading
R&GI Chapter 05
QED Chapter 04
Video
|
|
09 April
Program 06
Global Illumination
Modify your ray-cast spheres program. Make each sphere
have a texture map, and make each sphere gradually update
its texture. For the first samples, drop a large blob
in the texture. Average in blobs of smaller radius as the
sphere gathers samples from more directions.
Make some of the spheres be emissive. At
iteration 0, a luminaire has some radiance to give away.
Pick a random point on sphere A. From that point, sample
in the directions of all the other spheres and collect
their radiance at that point,
producing a blob of incident radiance Lin on the receiver.
Use cos*cos/d^2 to determine Lin.
The receiver has a diffuse reflectance,
kd, and Lout = kd*Lin.
You should use floating-point array, since the dynamic
range between the exitant radiance from the luminaires
and the reflectors will be great.
Send your rays from points on each sphere, in
different directions. Not just from the sphere center.
After iteration 0, the luminaires have "given away" all their
radiance. The reflecting spheres now have some exitant radiance
Lout to give away.
To handle iteration 1, you must find where a ray hits a sphere
and convert the point into a texture index to read the color of the
sphere at the location you hit it. Each sphere now collects
radiance Lout that the othere spheres are giving away.
Reading
PDIS Chapter 07
PDIS Chapter 08
PDIS Chapter 09
PDIS Chapter 10
Video
SUSSAI
| topic | excellent | very good | good | bad |
| 01 Glassner | | | | | | | | |
|
| 02 Shirley | | | | | | | | |
|
| 03 Sillion | | | | | | | | |
|
| 04 Proj 0 Emittance | | | | | | | | |
|
| 05 Prog 0 Spherical Harmonics | | | | | | | | |
|
| 06 Proj 1 Scattering | | | | | | | | |
|
| 07 Prog 1 Scattering Spheres | | | | | | | | |
|
| 08 Proj 2 BRDF Demos | | | | | | | | |
|
| 09 Prog 2 Surface Scattering | | | | | | | | |
|
| 10 Proj 3 Radiance Photos | | | | | | | | |
|
| 11 Prog 3 Ray Casting | | | | | | | | |
|
| 12 Proj 4 Radiosity: Blurry Photos | | | | | | | | |
|
| 13 Prog 5 Radiosity: Draggable Polygons | | | | | | | | |
|
| 14 Siggraph review | | | | | | | | |
|
| 15 Graduate-seminar style | | | | | | | | |
|
| 16 QED | | | | | | | | |
|
| 17 Prog 4 Ray Casting: Filtering | | | | | | | | |
|
| 18 Proj 5 Radiosity: Blurry Arrays | | | | | | | | |
|
| 19 Prog 6 Radiosity: Draggable Polygons | | | | | | | | |
|
|
|
16 April
Final Project
Demos
Put images, animations, and descriptions of your
homework on the Web. Create a buttonfly-style demo.
During class on Friday April 20, give demos for the CSIT Director,
the former CSIT director, and the Dean of the College of
Arts and Sciences.
Reading
The Rendering Equation
Video
|
|
Glassner PDIS assigned reading
| |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
| 10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
| 20 |
21 |
|
|
|
|
|
|
|
|
|
|
Sillion PDIS assigned reading
| |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
A |
|