CS 488/688: Introduction to Computer Graphics
Welcome to the home page for CS488/688, the introductory computer graphics course in the School of Computer Science at the University of Waterloo. This course focuses on 3D graphics and relevant topics in computer graphics.
- Explain the algorithmic and mathematical concepts used in computer graphics.
- Write interactive programs that display and manipulate 3D geometry.
- Write a ray tracing system and an interactive graphics application using OpenGL.
- The website realtimerendering.com lists a bunch of books that are free online. Among others, for ray tracing, we recommend the pbrt book as a general reference and Peter Shirley's e-books as a good supplementary material for ray tracing.
- The graphics codex can serve as a reference to the topics and tools used in graphics.
- The website open.gl can be a good starting point for programming in modern OpenGL.
- A longer sequence of tutorials at learnopengl.com goes into more detail about specific topics in OpenGL.
- Song Ho Ahn also has a number of useful tutorials that explain concepts in 3D computer graphics, especially as related to the OpenGL graphics pipeline.
- Docs.gl for the OpenGL API reference.
- Terence's OpenGL tutorial slides.
- Shadertoy and GLSL Sandbox showcase interesting (fragment) shader programs.
- Inigo Quilez has several articles explaining practical solutions to many problems in graphics.
- The course note of CS 488/688 from the previous term is also available here for your reference.
- A0: 0%
- A1: 15%
- A2: 15%
- A3: 15%
- A4: 15%
- Project proposal: 10%
- Project: 30%
- This course has five assignments (A0 to A4) and the final project. Please read the additional notes regarding assignment completion and submission. These notes may help you avoid losing marks unnecessarily. You will submit your work via LEARN. Students should contact the TAs in case of any issue related to the submission procedure. Note that you will need to Students in CS 688 will have additional tasks in the project as explained below.
Assignment 0: Warmup (optional)
Due September 17th at 10:00 AM ET
Assignment 1: OpenGL
Due September 27th at 10:00 AM ET
Assignment 2: Pipeline
Due October 6th at 10:00 AM ET
Assignment 3: Puppet
Due October 27th at 10:00 AM ET
Assignment 4: Trace
Due November 12th at 10:00 AM ET
Proposal due November 16th at 10:00 AM ET
Corrected proposal due November 19th at 6:00 PM ET
Project due December 7th at 10:00 AM ET
- The course will roughly follow the following schedule.
- Week 0 (Sep 8 - 10): Introduction
- Week 1 (Sep 13 - 17): Rasterization, Sampling and Reconstruction
- Sep 17: Assignment 0 due
- Week 2 (Sep 20 - 24): Transformations
- Week 3 (Sep 27 - Oct 1): Graphics pipeline, Textures
- Sep 27: Assignment 1 due
- Week 4 (Oct 4 - Oct 8): Real-time rendering techniques, Ray tracing basics
- Oct 6: Assignment 2 due
- Reading week (Oct 9 - Oct 17): No class
- Week 5 (Oct 18 - Oct 22): Cameras, Colors, Shading models
- Oct 27: Assignment 3 due
- Week 6 (Oct 25 - Oct 29): Acceleration data structures
- Week 7 (Nov 1 - Nov 5): Monte Carlo integration, Theory of light transport
- Week 8 (Nov 8 - Nov 12): Path tracing, Photon density estimation
- Nov 12: Assignment 4 due
- Week 9 (Nov 15 - Nov 19): Particles, Multibody dynamics
- Nov 16: Project proposal due
- Nov 19: Corrected project proposal due
- Week 10 (Nov 22 - Nov 26): Rigid bodies, Deformables
- Week 11 (Nov 29 - Dec 3): Participating media, Advanced topic
- Week 12 (Dec 6 - Dec 7): Conclusion
- Dec 7: Project due
Other University-related Information
Mental Health: If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support.On-campus Resources
- Campus Wellness https://uwaterloo.ca/campus-wellness/
- Counselling Services: firstname.lastname@example.org / 519-888-4567 ext 32655 / Needles Hall North 2nd floor, (NH 2401)
- MATES: one-to-one peer support program offered by Federation of Students (FEDS) and Counselling Services: email@example.com
- Health Services service: located across the creek from Student Life Centre, 519-888-4096.
- Good2Talk (24/7): Free confidential help line for post-secondary students. Phone: 1-866-925-5454
- Here 24/7: Mental Health and Crisis Service Team. Phone: 1-844-437-3247
- OK2BME: set of support services for lesbian, gay, bisexual, transgender or questioning teens in Waterloo. Phone: 519-884-0000 extension 213
Diversity: It is our intent that students from all diverse backgrounds and perspectives be well served by this course, and that students' learning needs be addressed both in and out of class. We recognize the immense value of the diversity in identities, perspectives, and contributions that students bring, and the benefit it has on our educational environment. Your suggestions are encouraged and appreciated. Please let us know ways to improve the effectiveness of the course for you personally or for other students or student groups. In particular:
- We will gladly honour your request to address you by an alternate/preferred name or gender pronoun. Please advise us of this preference early in the semester so we may make appropriate changes to our records.
- We will honour your religious holidays and celebrations. Please inform of us these at the start of the course.
- We will follow AccessAbility Services guidelines and protocols on how to best support students with different learning needs.
Academic Integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. [Check https://uwaterloo.ca/academic-integrity/ for more information.]
Grievance: A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4. When in doubt please contact the department's administrative assistant who will provide further assistance.
Discipline: A student is expected to know what constitutes academic integrity [check https://uwaterloo.ca/academic-integrity/] to avoid committing an academic offence, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about 'rules' for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate Associate Dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For penalties check Guidelines for the Assessment of Penalties.
Appeals: A decision made or penalty imposed under Policy 70 (Student Petitions and Grievances) (other than a petition) or Policy 71 (Student Discipline) may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72, Student Appeals.
MOSS (Measure of Software Similarities) is used in this course as a means of comparing students' assignments to ensure academic integrity. We will report suspicious activity, and penalties for plagiarism/cheating are severe. Please read the available information about academic integrity very carefully.
Discipline cases involving any automated marking system such as Marmoset or MarkUs include, but are not limited to, printing or returning values in order to match expected test results rather than making an actual reasonable attempt to solve the problem as required in the assignment question specification.
Note for Students with Disabilities: AccessAbility Services, located in Needles Hall, Room 1401, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with AccessAbility Services at the beginning of each academic term.
Intellectual Property: Students should be aware that this course contains the intellectual property of their instructor, TA, and/or the University of Waterloo. Intellectual property includes items such as:
- Lecture content, spoken and written (and any audio/video recording thereof);
- Lecture handouts, presentations, and other materials prepared for the course (e.g., PowerPoint slides);
- Questions or solution sets from various types of assessments (e.g., assignments, quizzes, tests, final exams);
- Work protected by copyright (e.g., any work authored by the instructor or TA or used by the instructor or TA with permission of the copyright owner).
Course materials and the intellectual property contained therein, are used to enhance a student's educational experience. However, sharing this intellectual property without the intellectual property owner's permission is a violation of intellectual property rights. For this reason, it is necessary to ask the instructor, TA and/or the University of Waterloo for permission before uploading and sharing the intellectual property of others online (e.g., to an online repository).
Permission from an instructor, TA or the University is also necessary before sharing the intellectual property of others from completed courses with students taking the same/similar courses in subsequent terms/years. In many cases, instructors might be happy to allow distribution of certain materials. However, doing so without expressed permission is considered a violation of intellectual property rights.
Please alert the instructor if you become aware of intellectual property belonging to others (past or present) circulating, either through the student body or online. The intellectual property rights owner deserves to know (and may have already given their consent).