CS 112 Introduction to Computer Graphics
University of California @ Irvine, Fall 2020
T/Th 11:00 am, online (via Zoom)
Instructor: Shuang Zhao (office hour: Wednesdays 2:30--3:30 pm, Online)
TA: Zhanhang (Macro) Liang
FridaysMondays 10--11 am, Online)
- Sep 27: Welcome to CS 112!
- Oct 2: PA0 is out.
- Oct 16: PA1 is out.
- Oct 29: PA2 is out.
- Nov 12: PA3 is out.
|6||Oct||vectors and linear algebra||chapter 2 (miscellaneous math) and chapter 5 (linear algebra)|
|8||Oct||transformation 1 (2D transformations)||chapter 6 (transformation matrices), sections 6.1 and 6.3|
|13||Oct||transformation 2 (3D transformations)||chapter 6 (transformation matrices), sections 6.2, 6.4 and 6.5|
|15||Oct||transformation 3 (viewing)||chapter 7 (viewing)||PA1|
|20||Oct||rasterization 1 (triangles)||
chapter 3 (raster images), sections 3.1 and 3.2;
chapter 7 (Viewing), section 7.1.1;
chapter 8 (the graphics pipeline), section 8.1
|22||Oct||rasterization 2 (antialiasing & Z-buffering)||
chapter 8 (the graphics pipeline), sections 8.2 and 8.3;
chapter 9 (signal processing)
|27||Oct||shading 1 (illumination & shading)||chapter 10 (surface shading), sections 10.1 and 10.2|
|29||Oct||shading 2 (graphics pipeline & texture mapping)||chapter 11 (texture mapping), sections 11.1 and 11.2||PA2|
|3||Nov||shading 3 (texture mapping cont.)||chapter 11 (texture mapping), sections 11.3 and 11.4|
|5||Nov||ray tracing 1 (introduction)||chapter 4 (ray tracing)|
|10||Nov||ray tracing 2 (acceleration)||chapter 12 (data structures for graphics), sections 12.1 to 12.3|
|17||Nov||geometry 1 (introduction)||chapter 15 (curves), sections 15.1, 15.2, 15.3|
|19||Nov||geometry 2 (curves & surfaces)||chapter 15 (curves), Sections 15.6.1|
|24||Nov||animation 1 (introduction & mass-spring system)||chapter 16 (computer animation), sections 16.1, 16.2|
|26||Nov||no class (Happy thanksgiving!)|
|1||Dec||animation 2 (simulation & kinematics)||chapter 16 (computer animation), section 16.5|
|3||Dec||light transport & materials||N/A|
There will be four (4) medium-sized programming assignments (each worth 18%) and one (1) final project (worth 28%).
All regular projects should be done individually; the final project can be done in groups of up to three (3) people.
Late policy: for regular assignments, each late day = 20% off. We will not accept late submissions for the final project.
Due date: Wednesday, Oct 14 by 11:59 pm
See the assignment document here.
Due date: Wednesday, Oct
2829 by 11:59 pm
See the assignment document here.
About CS 112
Questions, help, discussion: The instructor is available to answer questions, advise on projects, or just to discuss interesting topics related to the class at office hours and by appointment as needed. For electronic communication we are using Piazza (handy link also at the top of this page).
Academic integrity: We assume the work you hand in is your own, and the results you hand in are generated by your program. You're welcome to read whatever you want to learn what you need to do the work, but we do expect you to build your own implementations of the methods we are studying. If you're ever in doubt, just include a citation in your code or report indicating where some idea came from, whether it be a classmate, a web site, another piece of software, or anything—this always maintains your honesty, whether the source was used in a good way or not. The principle is that an assignment is an academic document, like a journal article. When you turn it in, you are claiming that everything in it is your original idea unless you cite a source for it.
School can be stressful, and your coursework and other factors can put you under a lot of pressure, but that is never a reason for dishonesty. If you feel you can't complete the work on your own, come talk to the professor, or your advisor, and we can help you figure out what to do. Think before you hand in!
Clear-cut cases of dishonesty will result in failing the course.
For more information see UCI's Policy on Academic Honesty.
Collaboration: You are welcome (encouraged, even) to discuss projects among yourselves in general terms. But when it comes to writing up the homeworks or implementing the projects, you need to be working alone. In particular, it's NEVER okay for you to see another student's homework writeup or another team's program code, and certainly NEVER okay to copy-paste parts of one person's or team's writeup, code, or results into another's, even if the general solution was worked out together.
There is no required textbook. The lecture slides and discussion materials, which will be distributed via Canvas, will be your main references.
The following is a list of good references for materials covered by this course.
Steve Marschner and Peter Shirley."Fundamentals of Computer Graphics", 3rd or later edition. (Recommended as "Reading" of each lecture.)
by Tomas Akenine-Möller, Eric Haines, and Naty Hoffman."Real-Time Rendering", 3rd or later edition.