home
gallery



CS645: Advanced Computer Graphics


Instructor:
Dr. Tim Newman
email: tnewman@cs.uah.edu
Office Hrs.: MTWR 11:00am-noon ; M 4:00-5:00 pm
Office: TH N364
Note, also office hours most Fridays, 11 to noon
Phone: 824-6619
Fax: 824-6239 Or phone or email for appointment (always verify availability for Friday office hours!)

Meeting Times:
TR 7:05-8:25pm, TH N 308 (note change!)

Course Objectives:
Study computer graphics topics, especially 3D graphics algorithms useful for interactive graphics. The topics include 3D viewing and projections, 3D animation, modeling and representation of curves and surfaces, hidden surface removal, and methods for shading and illumination. Course will also include an introduction to hierarchical graphical programming. Most (perhaps all) projects will be done using OpenGL.

Text:
3D Computer Graphics, Third Edition, by Alan Watt, Addison-Wesley: New York, 2000.

Recommended Supplementary Text :
OpenGL Programming Guide, Third Edition (Second Edition also acceptable), by M. Woo, J. Neider, and T. Davis, Addison-Wesley: New York, 1999 (Second Edition: ISBN 0-201-46138-2).

Supplemental References:
Computational Geometry for Design and Manufacture, by Faux and Pratt.
Principles of Interactive Computer Graphics by W. Newman and R. Sproull.


Course Prerequisites:
CS 545 (or equivalent introductory graphics class). Proficiency in C or C++ programming and at least minimal understanding of the UNIX operating system.

Grading:
The final grade will be composed of the following weights. The instructor reserves the right to make changes to this system, including the addition of an unannounced quiz.

Activity
Total Points
Mid-term Examinations (2)
200
Projects (5)
180
Final Exam
120
Homeworks, Reports, and Participation
  40
Grand Total
540

The grading scale will not be stricter than:
490 points for a 4.0.
440 points for a 3.0.
390 points for a 2.0.
350 points for a 1.0.

Please note that the instructor intends to utilize the ``plus'' and ``minus'' letter grading system.

Office and Contact Notes:
Please check your email regularly. Sometimes class updates are distributed by email. Also, I try to check my email regularly; please feel free to contact me with questions via email.

Exams:
There will be two mid-term examinations, each worth 100 points. These exams are tentatively scheduled for Tuesday, September 23 and Tuesday, October 28. The comprehensive final is Tuesday, December 9, from 6:30 to 9:00 pm.

Homeworks:
There will probably be 1 or 2 homework assignments in the class, although more homework will be assigned if necessary. All homeworks are due at the start of the class on the due date. Homeworks are to represent your own work; without prior clearance from the instructor, all forms of oral, written, electronic, etc., collaboration are prohibited. At least one homework is likely to involve reading and analyzing a paper from the graphics literature.

Projects:
There will be 5 projects in this course1. At least 4 of the projects will be programming assignments. For the other project, you have the option of doing another programming assignment or of writing a research paper on a topic that receives instructor approval. Projects will, in general, take 12-40 hours each, depending on your proficiency, efficiency, and any extra features you attempt.
Please note that program development is possible via remote Internet access. Further, some lab PCs are dual-boot machines, and can be booted under Linux with X-windows. A few of these machines have OpenGL and GLUT. All of these machines as well as remote boxes running Unix or supporting X windows (e.g., via Exceed) can also telnet to one of the lab workstations (e.g., havoc) and receive X windows output by setting the X display variable to the local machine.

Final source code for programs should be submitted electronically. A printed listing must also be handed in. The programs are expected to contain a reasonable amount of documentation (including acceptable structure, variable names, etc.). The submitted programs must compile and execute correctly on the Linux boxes on the north side of the Laser Lab. Programs will be tested on the Department's linux boxes under OpenGL and must work correctly in that environment to receive full credit. Please test your program on the machines that I will test them on! Additional details will be included in the first assignment's instructions.

Programs are to be written in C and should use the graphics library specified on the programming assignment. We will use OpenGL (although you might want to use Mesa (an OpenGL mimic) for preliminary development if you do not have native OpenGL. We will couple OpenGL with GLUT (and possibly GLUI) for all programming assignments.

Mesa is a public-domain package that will generally run with minor porting corrections on Unix (including Linux), Macintosh, and Windows platforms.

VRML is a 3D graphics environment that we might use for one project.


Paper Option
If you choose to write a paper for one of the projects for which the paper option is available, the paper is expected to be 6-11 pages in length, with standard margins, fonts, and spacing. More details about the paper option will be provided later.

Homeworks and Reports:
A few homeworks and/or short reports will be assigned throughout the term. Homeworks are due at the beginning of the class on the due date. One homework is currently scheduled to be due during the last two weeks of class.

Deadlines, Late Work, and Absence Policy:
You are responsible for all material covered in the lecture, so it is in your best interest to attend each class. Also, effective, constructive participation in the class will be considered for part of your grade. No late work will be accepted. currently scheduled to (with documentation acceptable to the instructor) or one week's prior notice required for consideration of exam make-up (consideration will be made on a case-by-case basis). All program listings, papers, homework, and report(s) are due at or before the start of the class on the due date. If you will be absent on a due date, please arrange to submit your work early in person or by proxy. Electronic submissions of program sources must be received by instructor by 7:00 pm on their due date.

Academic Honesty:
The University policy on academic honesty is quite strict. This policy is discussed in the Code of Student Conduct. The instructor's academic honesty policy is very strict; instances of academic dishonesty will be penalized, ordinarily by failure of at least the assignment, if not the course (in addition to any University penalties). All work submitted must be the student's own work!
It is unprofessional and dishonest to submit someone else's work as your own. Please, do not use other's code in your program (or use any type of resource not listed on this syllabus) without first receiving instructor approval. Projects are NOT group efforts. You should not seek or use assistance from anyone or any thing on the projects without first getting approval from the instructor for the type of assistance contemplated.


Tentative Class Outline:
The intended schedule of the class is indicated below. This list is subject to change.

Topic Week Reading Assignments
Matrix Alg. (refresher) and Intro. to Open GL First Week Ch. 1.1-1.3, OpenGL book/þÎguide
Homogeneous 3D Transf., Proj., & Viewing Second Week Ch. 1.1-1.3, 5
Clipping, Shading, and Illum. (Rendering) 3rd and 4th Week Ch. 6.1-6.3
Hidden Surf. Removal 5th Week Ch. 6.5-6.6
Textures 6th Week Ch. 8
Shadows 7th Week Ch. 9
Global Illum. - Ray Tracing and Radiosity 8th - 10th Weeks Ch. 10-12
Hierarchical Modeling 11th Week Foley Ch. 7 (?)
Modeling Techniques and Rep.s 12th Week Ch. 2
Curve and Surface Fitting and Modeling 13th and 14th Week Ch. 3
Local Reflection Models 15th and 16th Week Ch. 7


If time:
Volumetric Rendering / Volumetric Visualization (Ch. 13)
Image-Based Rendering (Ch. 16)