Instructor: | Cem Yuksel |
---|---|
Lecture Time: | Tuesday & Thursday @ 3:40pm - 5:00pm |
TAs: |
Anka Chen Michael Gardone Joon Park Yunhe Yang |
Overview
This course teaches the fundamental computational techniques in computer graphics. It is a project-based course in which students learn about and implement various methods in modeling, animation, and rendering techniques. The course covers a range of topics in computer graphics, instead of providing a deep and highly detailed analysis of a particular topic. For a more comprehensive overview of individual topics, please refer to the other computer graphics courses at the University of Utah.
Course Objectives
The main objective of this course is to introduce students the fundamental concepts in computer graphics via hands-on coding experience, including a range of computer graphics techniques and algorithms covering 2D graphics, 3D graphics and computer animation. This course focuses on key algorithmic techniques and mathematical foundations, not on specific tools or software APIs.
Learning Outcomes
Upon completion of this course, students will be familiar with the fundamental algorithms and data structures used in computer graphics. More specifically, the course covers the necessary math background, raster image formats, affine transformations, rendering algorithms, data structures for 2D and 3D curves, surfaces, and volumes, textures and texture mapping, shading and reflection models, animation and physics-based simulation.
Textbook
Steve Marschner & Peter Shirley, Fundamentals of Computer Graphics, 4th edition.
This textbook is not required, but strongly recommended, as it will serve as the main source of information for most topics covered in this course. The lectures will follow the book, but will not present all information in the book. The students are expected to read the related chapters of the book after each lecture.
Online Lectures
All lectures of this course will be online via interactive video conferencing. Lectures will also be recorded and the recordings will be made available to the students. More details on the lectures will be available on canvas.
Online Assistance
The instructor and the TAs of this course will be available for consultation and assistance to help students implement their projects and answer their questions. We will use piazza for all course-related communication.
Week | Date | Topic | Textbook | Notes |
---|---|---|---|---|
1 | Aug 25 | Introduction | Chapter 1 | |
Aug 27 | Vectors | Chapter 2 | ||
2 | Sep 1 | Raster Images | Chapter 3 | |
Sep 3 | Raster Images | Chapter 3 | ||
3 | Sep 8 | — No Class — | ||
Sep 10 | — No Class — | |||
4 | Sep 15 | 2D Transformations | Chapter 6 | Project 1 deadline - Compositing Images |
Sep 17 | 3D Transformations | Chapter 7 | ||
5 | Sep 22 | GPU Pipeline | Chapter 17 | Project 2 deadline - Transformations |
Sep 24 | WebGL | Chapter 17 | See square.html, an example WebGL application. | |
6 | Sep 29 | Curves | Chapter 15 | |
Oct 1 | Curves | Chapter 15 | ||
7 | Oct 6 | Surfaces | Chapter 12 | Project 3 deadline - Curves |
Oct 8 | Triangular Meshes | Chapter 12 | ||
8 | Oct 13 | Textures | Chapter 11 | |
Oct 15 | Textures on the GPU | Chapter 11 | ||
9 | Oct 20 | Shading | Chapter 10 | Project 4 deadline - Triangular Meshes |
Oct 22 | Shading Transformations | Chapter 10 | ||
10 | Oct 27 | The Rendering Equation | Chapter 24 | |
Oct 29 | Rendering Algorithms | Chapter 4 | Project 5 deadline - Shading | |
11 | Nov 3 | — No Class — | VOTE! | |
Nov 5 | Ray Tracing | Chapter 4 | ||
12 | Nov 10 | Shadows and Reflections | Chapter 4 | |
Nov 12 | Sampling | Chapter 14 | ||
13 | Nov 17 | Signal Processing | Chapter 9 | |
Nov 19 | Computer Animation | Chapter 16 | Project 6 deadline - Ray Tracing | |
14 | Nov 24 | Physics-Based Animation | Chapter 16 | |
Nov 26 | — Thanksgiving Break — | — | ||
15 | Dec 1 | Simulation in Graphics | Chapter 16 | |
Dec 3 | Q&A | — | ||
Dec 9 | — | — | Project 7 deadline - Animation |
Projects
We will use JavaScript and WebGL for implementing the projects.
All projects are individual projects. Group projects are not permitted. Therefore, each student must write their own code. Collaboration between students is encouraged, but code sharing is not permitted. External libraries and source code can be used only for additional functionalities that are not core parts of the projects, and they should be clearly indicated in comments within the source code.
Failure to follow these rules may lead to a failing grade. Academic misconduct will not be tolerated. See the Academic Misconduct Policy of the School of Computing for details.
Deadlines and Late Submissions: The deadline for each project is at noon (12:01 PM) on the date indicated on the schedule (see above). Late submissions suffer a 5% penalty and an additional 5% penalty is applied every day at noon (12:01 PM). To accommodate for special circumstances, the first 10 late penalties of each student will be omitted.
Resubmissions: Students are permitted to resubmit their projects after the submission deadline for up to 20 days. Project submissions close 20 days after the deadline. Resubmissions can be used for fixing bugs or incorrectly implemented parts of the projects. As long as the first submission of a project shows a clear attempt to complete the project, no late penalty is applied to subsequent resubmissions.
Final Project: No late submissions or resubmissions are permitted for the the final project (Project 7 - Animation).
Project submissions are handled through canvas.
Grading
Projects 1-2 | 10 points |
---|---|
Projects 3-6 | 15 points |
Project 7 | 20 points |
TOTAL | 100 points |
School of Computing Policies and Guidelines
The School of Computing Policies and Guidelines represent important information that students taking courses in, or seeking degrees from, the School of Computing, must be aware of. It is important that you read, understand, and adhere to this information.
Safe Classroom Environment
In this class, derogatory comments based on race, ethnicity, class, gender identity, sexual orientation, religion, (dis)ability status, age, citizenship, or nationality will not be tolerated, nor is it permissible to state one's opinion in a manner that silences the voices of others. Further, egregious disrespect, including, but not limited to, racism, sexism, ageism, homophobia, transphobia, classism, etc. will not be tolerated.
University of Utah Disability Accommodation Policy
The University of Utah seeks to provide equal access to its programs, services, and activities for people with disabilities. If you need accommodations in the class, reasonable prior notice should be given to the Center for Disability Services, 162 Olpin Union Building, 801-581-5020 (V/TDD), http://disability.utah.edu/. CDS will work with you and the instructor to make arrangements for accommodations.
University Safety Statement
The University of Utah values the safety of all campus community members. To report suspicious activity or to request a courtesy escort, call campus police at 801-585-COPS (801-585-2677). You will receive important emergency alerts and safety messages regarding campus safety via text message. For more information regarding safety and to view available training resources, including helpful videos, visit safeu.utah.edu.