CS888: Advanced Topics in Computer Graphics - Rendering

Latest News

  • Aug 4, 2023: The initial version of the course webpage has been published. Anything on this page could be changed before the course officially starts.


Rendering is widely used for synthesizing realistic images that we all see in movies, video games, and industrial design. This course will consist primarily of collaborative research work and will consider topics encompassing a variety of topics, including (but not limited to):
  • Efficient ray tracing
  • Stochastic sampling
  • Monte Carlo techniques
  • Appearance modeling
  • Rendering systems
  • Light transport simulation
We will focus on offline rendering techniques for physics-based light transport simulation and its relevant numerical problems. Students will encounter and use a variety of numerical, computational, and mathematical techniques and tools, such as numerical integration, efficient spatial queries, integral equations, stochastic models, signal processing, optics, parallel computation, efficient memory accesses, etc.

Unlike past offers, this term, we take a form of collaborative research: students will identify (ideally open) problems to work on, (at least attempt to) solve problems throughout the term, and write a paper to summarize the results, all collaboratively. The format of collaborative work in this course largely follows supercollaboration. In short, we follow two rules; authorship on papers is self-determined and alphabetically ordered and discussion and identified problems in this course are all confidential unless it gets published or we all agree to release them. Students can contribute to any aspect of the work done in this course (coding, reading, writing, etc.). In ideal cases, we will submit a technical paper together at the end of this course or have something ready to be wrapped up as a paper submission later (which may involve your future continued participation beyond this course as an author, if you are up to - otherwise, those of us who are interested in will take it over and may continue, so nothing is mandatory). There will also be a small number of traditional lectures at the beginning covering logistics and meta-research skills.

Course Goals

  • Develop familiarity with a range of techniques and tools in rendering to catch up with the latest work in this field.
  • Build experience collaboratively working on a research project.
  • Have fun and identify topics in rendering that you truly enjoy working further.

Administrative Details

Time/Location: DC 3317, 2:00 pm to 4:50 pm on Tuesday
Instructor: Toshiya Hachisuka
E-mail: toshiya.hachisuka@uwaterloo.ca
Course-related news and discussions will be communicated/managed via MS Team. LEARN will be used for sharing talk slides and grading. We will use Overleaf to write a paper and a progress report and GitLab to share code and results.


Enthusiasm for computer graphics and rendering is a must. Linear algebra, calculus, and statistics will be required depending on the actual problem we will be working on. In any case, some coding skills in C++ or Python would be a great asset. Experience with numerical computing (e.g., CS370/371) and computer graphics (e.g., CS488) is recommended. Familiarity with some numerical techniques will be helpful, though you will likely learn new techniques through this course. Unlike typical courses, we expect that you contribute to work based on your current expertise or things that you are good at.

Group Work

Group work is essential in this course. We will identify one or a few problems that we all will work together. Students need to work on at least one problem at any point but can work on a different (selected) problem at any moment. Students working on the same problem will naturally form a group. You are encouraged to take a look at the document regarding supercollaboration to get some more ideas regarding collaborative work in this course.


Due to the nature of research work, it is not possible to determine your grade through conventional evaluation approaches such as exams and assignments. We thus use self-assessments by students as guidelines to decide final grades. We will discuss how to do it later in the course, but basically students are asked to self-evaluate their performance in this course. The instructor will discuss such self-assessments with students at the end of this course and will decide the final grades. Your active participation during each working session and contributions outside each class are expected to have a high grade. You will not be penalized for making mistakes in this course.


Attendance is mandatory, and students are expected to spend 8 hours per week outside the class to work on research problems, including discussion outside class, reading, writing, and coding (which sums up to 11 hours per week and is the standard workload per course here). For example, if you work on problems during each working session only and have done nothing outside, expect that your grade will not be high. However, given the nature of the research, nobody will stop you from spending more time on problems. In the end, you might have a paper out of this course, so that can be another motivation besides getting a credit/grade for this course.


The online edition of the pbrt book will be a useful reference in this course. We will also use Ke-Sen Huang's list of papers in computer graphics conferences to help us navigate through some prior work in computer graphics. Each working session starts with a brief recap of the problems and the progress so far, followed by group work and discussion on each problem, and then a discussion on the plan until next week. The instructor will moderate and guide the discussion.
  • Week 1 (Sep 12): Introduction
    • Organization and logistics
    • Brief introduction of rendering
  • Week 2 (Sep 19): Meta topics
    • How to read and write technical papers
  • Week 3 (Sep 26): Brainstorming problems
    • How to find a good research topic
    • Identifying potential problems
  • Week 4 (Oct 3): Brainstorming problems (cont.)
    • Deciding on the problems
  • Week 5 (Oct 10): No class
    • Reading week
  • Week 6 (Oct 17): Working session
    • Focus on understanding problems and coming up with potential solutions
  • Week 7 (Oct 24): Working session
    • Focus on understanding problems and coming up with potential solutions
  • Week 8 (Oct 31): Working session
    • Focus on working out solutions
  • Week 9 (Nov 7): Working session
    • Focus on working out solutions
  • Week 10 (Nov 14): Working session
    • Focus on working out solutions
  • Week 11 (Nov 21): Working session
    • Focus on writing and evaluations
  • Week 12 (Nov 28): Working session
    • Focus on writing and evaluations
  • Week 13 (Dec 5): Concluding session
    • Discussion on future plans

Academic integrity, grievance, discipline, appeals and note for students with disabilities

  • 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.
  • 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 be certain to contact the department’s administrative assistant who will provide further assistance.
  • Discipline: A student is expected to know what constitutes 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 typical 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.
  • 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.
  • Turnitin.com: Text matching software (Turnitin®) may be used to screen assignments in this course. Turnitin is used to verify that all materials and sources in assignments are documented. Students' submissions are stored on a U.S. server, therefore students must be given an alternative (e.g., scaffolded assignment or annotated bibliography), if they are concerned about their privacy and/or security. Students will be given due notice, in the first week of the term and/or at the time assignment details are provided, about arrangements and alternatives for the use of Turnitin in this course.
  • It is the responsibility of the student to notify the instructor if they, in the first week of term or at the time assignment details are provided, wish to submit the alternate assignment.