This course acquaints the student with the basic principles and problems of computer graphics, and gives the student the mathematical background to understand and implement these basic principles. It also gives the student the computer science underpinnings of the implementation of computer graphics modeling and rendering systems.
http://www.cs.ucdavis.edu/~ma/ECS175_S00
ECS110 or ECE73; Mathematics 22A
Tuesday and Thursday, 12:10-1:30pm, in 205 Olson
Discussion: Friday, 4:10-5:00pm, in 205 Olson
Professor Kwan-Liu Ma
Room 3025, Eng II
752-6958
ma@cs.ucdavis.edu
Office hours: Tuesday 10:30am - 11:30am and Thursday 2:00-3:00pm
Oliver Kreylos
kreylos@cs.ucdavis.edu
Office hours: TBA at Room 067, Eng II
Yang Liu
yngliu@ucdavis.edu
Required:
Computer Graphics, C Edition, Hearn and Baker, Prentice Hall.
Optional:
OpenGL Programming Guide, 3rd Edition, Woo, et al., Addison Wesley.
OpenGL Tutorial
UCD Graphics Group's Course Notes and Class Libraries
Mesa3D
Xforms
Cygwin
Bloodshed Dev-C++
ucd.class.ecs175 Do not post to this newsgroup. It is only for announcements, adjustments in the homework, and answers to questions on the homework. Since these things are of importance to everyone in the class, everyone has to check this newsgroup regularly, especially before assignment due dates. ucd.class.ecs175.d
The discussion group. This newsgroup is for discussion among students, and questions to the staff. Students are encouraged to discuss assignments and answer one another's questions, as long as specific homework answers (or parts thereof) are not posted (see section on Cheating and Collaboration). Also, this is not an open forum. Rude or irrelevant postings will not be tolerated; i.e., no "flaming" allowed.
There will be 4 programming assignments, one midterm, and a few quizs:For each programming assignment, you are generally graded based on the following criteria:
- Programming assignment 1 (15%): 2d rasterization
- Programming assignment 2 (15%): 3d viewing, clipping, and hidden surface removal
- Programming assignment 3 (15%): shading and interactive interfaces
- Final programming assignment (20%): texture mapping and antialiasing
- An 80-minute midterm examination (25%)
- Quizs (10%)
Important: No programming assignment will be accepted if it is only partially complete. That is, no grade will be given if the assignment is incomplete. You will be using the Silicon Graphics (SGI) workstations in room 067 and 069 of Engineering II. Some Liunx PCs will become available in room 075 in the second half of the quarter. The use of these systems is not required to complete the problems of the course. However, it is required that you get the final version of the programs running on these systems. We will grade your programs on how they operate on these systems, and this will determine your grades on the projects.
- completeness and correctness(70 points)
- interface and interaction mechanism (15 points)
- program structure and documentation (15 points)
- additional features (up to 10 points)
Due Date:
To receive full credit for a problem, the assignment must be turned in complete by 11:59pm on the due date. Problems that are turned in after this time will be penalized 10% of the points assigned per day.Regrade:
Follow these instructions to turn in your programs.
In general, regrades must be turned in no later than one week after the graded papers were made available, not from when the student picked up her or his paper. However, at the end of the quarter, papers to be considered for regrades must be turned in earlier, as will be announced. See the TAs or reader for regrades of assignments and quizs; see the instructor for regrades of exams. Similarly, any missing or misrecorded grades must be reported within a week of their posting, except as will be announced at the end of the quarter.Sample Grades:
Incompletes:
90% 80% 70% 60% 50% A B C D F
I do not give them unless extreme circumstances are presented and documented. In this case, the student should be prepared to retake the class completely.
Class attendance is not required. However, you are responsible for all material covered, assignments and quizs given, announcements made, etc. in all classes. If you miss a class, consult one of your classmates for notes and announcements. Class handouts will be available online in the class home page:
http://www.cs.ucdavis.edu/~ma/ECS175_S00
This is a demanding course. We are asking you to not only learn the basics of the computer graphics field, but to learn how to utilize the environment of a sophisticated computer graphics workstation, and to produce significant results. It is difficult to discover all the UNIX tricks, the OpenGL techniques, the implementation strategies, the typos in the course notes, and the C++ debugging techniques. To solve these problems, you require a tremendous amount of information -- and there is information available to you, not only from books or from over the network, but also from other students in the course.
While I would like to encourage cooperative work, each student is to do his or her own work on the assingments, quizs, and exams. The basic idea is simple. Share the ideas, share the strategies, help each other with system productivity, ask questions of others, but produce your own code. Create a synergistic environment where we all learn much more than you could if you did this class entirely on your own.
Any instance of suspected cheating or plagiarism (e.g., copying other student's code) will be referred to the Office of Student Judicial Affairs for adjudication. The `Code of Academic Conduct' describes relevant policies and procedures. Ask the instructor for clarification beforehand if the above rules are not clear.
Date               Topic April 4 Overview       April 6 Line-Drawing Algorithms, Pixel Addressing April 7 Discussion: Computing environment, UI toolkits, OpenGL fundamentals April 11 Filled-Area Primitives April 13 3D Object Representations April 14 Discussion: OpenGL fundamentals April 18 3D Transformation April 20 3D Viewing April 21 Discussion: OpenGL viewing system April 25 Culling and Clipping April 27 Visible-Surface Determination April 28 Discussion: OpenGL drawing May 2 Colors and Display Systems May 4 Midterm Exam May 5 Discussion: Midterm exam solution May 9 Illumination and Shading I May 11 Illumination and Shading II May 12 Discussion: OpenGL shading May 16 Texture-Mapping I May 18 Texture-Mapping II May 19 Discussion: OpenGL texture mapping May 23 Curves and Surfaces Modeling I May 25 Curves and Surfaces Modeling II May 26 Discussion: OpenGL advanced topics May 30 Ray Tracing June 1 Ray Tracing and Radiosity June 1 Discussion: OpenGL advanced topics June 6 Scientific Visualization June 8 TBA