Course Description
This course provides an introduction to the field of Computer Graphics with a focus on rendering and modeling. We will cover the basic mathematical concepts, such as 2D and 3D transformations, discuss rendering algorithms such as ray tracing and rasterization, and study the geometric modeling of curves and surfaces. We will investigate how these fundamental components are integrated in current graphics processors and study the corresponding programming APIs. Students will experiment with modern graphics programming and build demos in C++ and OpenGL ( GLSL or equivalent). By the end of the course, the student must be able to:
- Explain and apply the fundamental mathematical concepts in computer-based image synthesis
- Implement a basic rendering system based on ray tracing
- Implement a basic rendering pipeline based on rasterization
- Explain the core functionalities of the OpenGL graphics API
- Develop simple graphics programs using shader programming
- Explore geometric modeling using bezier curves and splines, NURBS etc.
- Implement the data structures for polygonal meshes
- Design and implement procedural synthesis methods
Course Administrivia
Instructor
Dr. Jiju Poovvancheri (e-mail:jiju.poovvancheri@smu.ca)
Lectures
- Mondays (10:00am-11:15am) -SB155
- Wednesdays (10:00am-11:15am)-SB155
Recitations
- Wednesdays (11:30am-12:45pm)- SB 155
Office Hours (via MS Teams)
- Mondays (12:00-2:00pm)
- Wednesdays (1:30 – 3:00 pm)
- Fridays (11:00am-1:30pm)
Course Pages
- MS Class Teams (Lecture slides, discussion forum, grades)
- Github (Set up & installation info, links to software libraries, starter codes of lab exercises & assignments)
Previous Offerings
- Fall 2021
- Fall 2019
Tentative Schedule (Fall 2021)
Date
Topic
Assignment
Ray tracing
Sept. 6
Sept. 11
Sept. 13
Sept. 18
Sept. 20
Sept. 25
Sept. 27
Oct. 2
Introduction to the course
Math Review
Ray tracing-basics
Ray tracing-Intersections
Blinn-Phong Illumination Model
Texture Mapping
Antialiasing
Acceleration Data Structures
Assignment 1 out (Sept. 27)
Rasterization
Oct. 4
Oct. 11
Oct. 16
Oct. 18
Oct. 23
Oct. 25
Intro. to Rasterization
2D & 3D Transformations
Midterm
Graphics pipeline, OpenGL
Shader programming
Viewing, Clipping and Culling
Assignment 1 due (Oct. 28)
Modeling
Oct. 30
Nov. 1
Nov. 15
Nov. 20
Nov. 22
Procedural Modeling
Perlin noise & Terrains
Curves and surfaces
Sub division surfaces
Triangle Meshes
Assignment 2 out (Nov. 1)
Animation
Nov. 22
Nov. 24
Nov. 29
Dec. 1
Dec. 6
Intro. to animation
Quiz 2
Rigging and keyframing
Physics based animation
Review & Discussion
Assignment 2 due (Dec. 5)
Recitations (Tentative schedule)
- Recitation 1- Setting up the development environment
- Recitation 2- Vector operations (C++ classes, objects)
- Recitation 3- Blinn-Phong shading
- Recitation 4- Antialiasing using Jittering Supersampling
- Recitation 5- Texture Mapping
- Recitation 6- Rasterization of line & triangle
- Recitation 7- Shader Programming & Textures
- Recitation 8- Perlin Noise Generation
- Recitation 9- Terrain and Water
- Recitation 10- Skybox and Texture Blending
Assignments
Assignment 1 (Ray tracing)
Generated by Rodion, Computer Graphics, Fall 2023
Generated by Jawadur, Computer Graphics, Fall 2023
Assignment 2 (Procedural Terrains)
Grading
Assignments (40%)
A1
A2
20%
20%
- There will be 2 programming assignments (2 x 20%).
- Use C++ for the coding part of the assignment.
- Starter codes for the assignments will be uploaded to the github repo.
- Algorithms, performance and code design will all contribute to your assignment grades.
- Assignments should be turned in via MS Class Teams.
- Every assignment should be accompanied with a brief documentation on your approach and coding, generated results and the reasons for failures, if any.
- Each assignment will have a duration of four weeks.
- No late assignments will be accepted unless prior arrangements have been made with the instructor at least 48 hours before the assignment due date.
- For all the assignments, a minimum set of required features will be defined. An assignment which implements these features satisfactorily will receive a grade of A. To get an A+, you will need to improve the basic assignment in some way: new features, technical improvements, good design, better interaction, efficiency, etc. We will discuss possible improvements in the recitation and in the assignment description.
Midterm (15%)
- Used to evaluate your knowledge of course contents.
- To be held during the lecture hour.
- If you miss the quiz for any reason: (1) You must contact your instructor within 48 hours, and (2) You will be required to fill out and submit a Declaration of extenuating Circumstances form.
Homework/Recitations (15%)
Final Exam (30%)
- There will be 7-8 C++ programming exercises. We will consider 5 best marks towards the final grading, i.e., 5 x 4% = 20%.
- The programming exercises are designed to help you building your assignments.
- Attendance in the recitations is required in this course.
- You will get 7 days to submit your completed code.
- Late submissions of the recitation exercises will not be accepted.
- Saint Mary’s University ID is required.
- The final is a closed book with no electronics allowed.
- Scheduled by the Registrar during the formal exam period.
- The exam will cover all material discussed after the midterm.
Notes:
The final mark will be a letter grade based on the scale described in Section 5 of the Academic Regulations in the University Calendar. There is no curving of grades, or grading based on rank (e.g., a certain number of “A” grades, etc.). Final grades are truncated to 1 decimal place and then rounded (.5 to .9 are rounded up, .0 to .4 are rounded down) to the nearest whole number. There will be no supplementary examinations.
Text Books
Required:Fundamentals of Computer Graphics, 3rd/4th Edition
Peter Shirley, Steve Marschner
A.K. Peters, ISBN: 978-1482229394
Reference: Realistic Ray Tracing, 2nd Edition
Peter Shirley, Keith Morley
A.K. Peters, ISBN: 1-56881-198-5
Reference: Computer Graphics and Geometric Modeling
David Saloman
Springer, ISBN-13: 978-0387986821
Reference: Texturing and Modeling: A Procedural Approach David S. Ebert et al. , Morgan Kaufmann, ISBN-13: 978-1558608481