Computer Science 22C:196, Section 1, Spring 2006
Class Time: Tuesdays & Thursdays 9:30-10:45am, 217 MacLean Hall
(Originally scheduled for: TTh 10:55am-12:10pm, 221 MacLean Hall)
[ Download a Syllabus ]
[ Grab a Feedback Form ]
| |
Professor: Chris Wyman
E-mail: cwyman@cs.uiowa.edu (Preferred contact method)
Office: 101J MacLean Hall
Phone: (319) 353-2549 (Please use e-mail when possible)
Office Hours: TTh 10:45 am - 12:15 pm,
Office Hours: or by appointment
|
Teaching Assistant: Zhihong Wang
E-mail: zhihwang@cs.uiowa.edu
Office: 311 MacLean Hall
Office Hours: By appointment only
(Note that most questions should be directed to the instructor)
|
Announcements:
- (4/24/06) -- If you would like to get your score for HW #4, please stop by my office or send
me an e-mail. Scores: 25, 40, 40, 40, 42, 46, 50, 50.
- The person with the low score should know why already.
- Hopefully, you already know why you got points taken off. If you're unsure what you might have done
wrong, I (think I) addressed all the problems people had in the description of HW #5, Problem 1.
- (4/21/06) -- Homework 5 has been posted.
- (4/21/06) -- There will be no class on May 2nd, due to an all-day meeting I must attend.
- (4/19/06) -- If you would like to get your score for HW #3, please
stop by my office or send me an e-mail. Scores: 43, 45, 46, 46, 47, 48, 48, 50.
- Most errors occurred on the Sobel filter (where many people included the 0.5 normalization inside the square root)
and on the Median filter (where repeated applications would often cause the image to get brighter, or to shift
position onscreen).
- (3/22/06) -- If you would like to get your score for HW
#2, please stop by my office or send me an e-mail. Scores: 36, 45, 45,
46, 47, 48, 50, 50.
- (3/06/06) -- The third assignment has been posted.
- (3/02/06) -- If you would like to get your score for HW #1, please send me an e-mail. Scores: 30, 42, 42, 44, 48, 49, 50, 50.
- (2/10/06) -- The second assignment has been posted! Models and other resources will follow shortly.
- (1/23/06) -- The first assignment has been posted! Please see below.
- (1/17/06) -- Please note the time and room changes, as posted above.
- (12/28/05) -- Please note that the scheduled class time is tentative and almost certainly
will change (a couple of students cannot meet at the scheduled time). Please come to the first day of
class with a schedule of when you are NOT available. If we are unable to find another time acceptable
to everyone, we will meet at the University-scheduled time. However, I don't forsee that this
will be a problem.
- (12/28/05) -- All of you should consider
being a SIGGRAPH student volunteer!
By volunteering to help out at SIGGRAPH, you get free admission to the world's premiere graphics
conference, a shared hotel room during the weeklong conference, some (typically small) travel assistance, and the
chance to hob-knob with 20,000-30,000 other graphics geeks. The conference will be in Boston in 2006, during the
last/first week of July/August.
Notes About Graphics Hardware Requirements:
As a course on advanced GPU features, this course will require relatively current graphics hardware.
Graphics accelerators sufficient to run last semester's
shader assignment
should work for nearly all of this semester's work. If you needed to use the lab machines in 301 MLH
for that assignment, plan to spend time in the lab this semester. Also note that one assignment
may use the EXT_framebuffer_object
extension, which is supported on nVidia 6xxx and 7xxx series cards, ATI X1xxx series cards, and
possibly nVidia 58xx and 59xx cards. This assignment may require sharing of machines in the MLH 317 lab, unless
your home machine has a supported card.
- The best way to check your current graphics card's capabilities is to: Download
GLEW. Run the included binary "glewinfo" and search the output for
"framebuffer_object". If the output says "OK," you should be good to go for the entire class. If not, update
your graphics drivers and try again. If your card still fails, you may have to use lab machines for some
assignments.
Assignments:
Please submit assignments into
the directory for 22C:196 ( "c19601" ), and the correct homework subdirectory (i.e., "hw1", "hw2", "hw3", etc. ).
- Homework 5 (Due May 11th)
- This will improve and extend upon Homework 4, and allow you to another chance to get things from HW 4 working.
- I took an image from the Praun et al. Real-time Hatching paper that you
can use to texture your objects if you choose to implement their work.
- Note you will have to crop out the relevent bits yourself.
- Also note you will have to resize the cropped pieces to powers-of-2.
- An alternative is to create a dot pattern yourself, which should be relatively straightforward.
- As I mentioned in class today (4/27), you may implement gloss maps (AdvOGL Book, p. 332) for Problem #2
for 5 points.
- You may also implement ambient occlusion for 10 points in your assignment. Note:
- To do this, you must have multiple complex objects in your scene.
- You should compute ambient occlusion on all objects.
- You should come talk to me (about which objects should occlude each other).
- Homework 4 (Due Apr 18th)
(Reflection, Refraction)
- Homework 3 (Due Mar 28th) (Cg Shaders, Render to Texture, Image Processing)
- NOTE: This assignment can be done one of two ways: using glReadPixels() or using render-to-texture. I suggest
using the later, but it requires a graphics card supporting the OpenGL extension GL_EXT_framebuffer_object. See the
note above. Please talk to me if you do not have access to a machine with this functionality (the 301 MLH lab does NOT), and
I will get you access to machines that do.
- Download Cg. Available for Windows, Linux, and Mac OS X.
- Under Windows, the Cg installer will put headers, libraries, and DLLs in the correct locations.
- More information about the
OpenGL extension GL_EXT_framebuffer_object.
- Code snippets you may use:
- Code for loading and binding Cg programs: header file, C file.
- Sample program using cg_init.c.
- A Visual Studio.NET project, but should compile under Linux.
- Requires GLEW and GLUT libraries, as well as (obviously) Cg libraries.
- Code for a simple "framebuffer" class using the extension GL_EXT_framebuffer_object:
header file , C++ file.
- Interesting images:
- Homework 2 (Due Mar 2nd) (Line Drawing, Fog, OpenGL Picking)
- Homework 1 (Due Feb 9th) (Display Lists, Vertex Arrays, and Simple Blending)
- Models to use: dragon with 10k triangles,
dragon with 250k triangles,
dragon with 871k triangles,
Buddha with 50k triangles,
Buddha with 250k triangles,
Buddha with 1087k triangles,
a simple cube
- Images to use: earth.rgb,
checker pattern
- Code to use: snippet for drawing text onscreen,
code for reading PPMs, BMPs, and RGBs
Handouts, Slides, Code Snippets:
Here I will post various handouts, slides, papers, and code that may be of use to you during the semester.
Student Web Pages:
Hint: For help setting up a web page see
this
page.
Note: If you do not want your page listed here, e-mail me!
- Bryan Andrews
- Scott Davis
- Scott Kavanagh
- Michael Merickel
- Qi Mo
- Greg Nichols
- Dustin Schwebach
Helpful Links:
Frequent Questions and Problems:
OpenGL Links:
Links to Useful Programs:
- XV -- a simple, useful image manipulation tool that reads PPM files.
- GIMP -- a more feature complete (bigger) image manipulation tool that reads PPMs.
- Cygwin -- run all your favorite UNIX programs on Windows (including X, gcc, emacs,
etc.)
Documentation:
Interesting Graphics Links:
- SIGGRAPH -- The ACM's special interest group on graphics.
University Policy Links:
Last Modified: Wednesday, December 28, 2005
Chris Wyman (cwyman@cs.uiowa.edu)