**Time and location:** MWF 1:50 - 2:40 pm in ZACH 350

**Office hours:** MW 3:00 - 4:00

**Office location:** Peterson 406

**Email:** nimak@tamu.edu

**Campuswire:** Link in the syllabus

**TA:** Libing Zeng

**Email:** libingzeng@tamu.edu

**Office hours:** T 3:30 - 5:30, R 3:00 - 5:00, F 3:00 - 5:00

**Location:** Peterson 402

**Grader:** Shuyu Wang

This course is an introduction to the foundations of 3-dimensional computer graphics. Topics covered include 2D and 3D transformations, hidden surface removal and rasterization, shading, lighting models, and texture mapping. We also discuss geometric modeling and curves, as well as ray tracing.

The main prerequisite listed in the course description is CSCE 221. However, the students are expected to be comfortable with C/C++ as there will be significant amount of programming in this class. The students should also be familiar with linear algebra. A prior course in linear algebra (e.g., MATH 304) is more than sufficient.

The following books are recommended:

**Fundamentals of Computer Graphics**, by Steve Marschner, Peter Shirley, 4th Edition

**The OpenGL® Programming Guide**, by John Kessenich, Graham Sellers, and Dave Shreiner, 9th Edition

The readings from **Fundamentals of Computer Graphics** are referred to as **MS** (Marschner and Shirley).

**Programming assignments (70%):**There will be 6 programming assignments with one having 2 parts.**Midterm (10%):**The midterm will be given on Oct. 16th during the class. You may skip the midterm and make the final be worth 30% of your course grade.**Final (20%):**The exam will be given during the scheduled final exam time, Dec. 11th (3:30 - 5:30)

You will lose 20% from each assignment for each day that it is late. However, there will be 5 granted late days for the entire course. You are free to use it for any of the assignments. You will not get any bonuses for any of the unused late days. All the assignments are due at 11:59 pm on Canvas. Note that, one minute over and 23 hours over both count as one full day.

All the assignments in this class are individual. Therefore, all the codes need to be written by the student. If indicated in the assignment’s instruction, the use of external libraries for performing basic operations is allowed. However, using an outside source code is NOT permitted. Note that use of large language models like ChatGPT is considered an outside source and is NOT allowed. Moreover, collaborating with other students on assignments beyond general discussions is NOT allowed. In general, looking at other students’ code and/or written answers is NOT allowed. Posting the code on publicly available websites (e.g., GitHub), even after the assignment deadline, is NOT allowed. If the students have any questions regarding this issue, they should contact the instructor. The students should not post their code online even after the deadline for the assignment has passed.

Date | Topic | Slides | Reading | Assignments |
---|---|---|---|---|

Aug 21 | Introduction and Overview | pptx | MS 1 | |

Aug 23 | Linear Algebra Overview | pptx | MS 2 & 5 | |

Aug 25 | Linear Algebra Overview | See Above | MS 2 & 5 | HW 1 Out |

Aug 28 | Rendering Overview | pptx | ||

Aug 30 | Rendering Overview | See Above | ||

Sep 1 | Transformations (2D) | pptx | MS 6.1 & 6.3-4 | |

Sep 4 | Labor Day -- No Class | |||

Sep 6 | Transformations (3D) | pptx | MS 6.2 & 12.2 | HW 1 Due |

Sep 8 | Transformations (3D) | See Above | MS 6.2 & 12.2 | HW 2 Out |

Sep 11 | OpenGL | pptx | MS 17.1-9 | |

Sep 13 | Viewing Transformations | pptx | MS 7 | |

Sep 15 | Viewing Transformations | See Above | MS 7 | |

Sep 18 | Viewing Transformations | See Above | MS 7 | |

Sep 20 | Clipping and Viewport | pptx | MS 8.1.3-6 & 8.4 | |

Sep 22 | Clipping and Viewport | See Above | MS 8.1.3-6 & 8.4 | HW 2 Due |

Sep 25 | Rasterizing Lines and Triangles | pptx | MS 8.1.1-2 & 8.2.1-3 & 2.7 | |

Sep 27 | Rasterizing Lines and Triangles | See Above | MS 8.1.1-2 & 8.2.1-3 & 2.7 | |

Sep 29 | Rasterizing Lines and Triangles | See Above | MS 8.1.1-2 & 8.2.1-3 & 2.7 | |

Oct 2 | Antialiasing | |||

Oct 4 | Color | |||

Oct 6 | Color | |||

Oct 9 | Fall Break -- No Class | |||

Oct 11 | Shading and Texture Mapping | |||

Oct 13 | Midterm Review | |||

Oct 16 | Midterm | |||

Oct 18 | Shading and Texture Mapping | |||

Oct 20 | Shading and Texture Mapping | |||

Oct 23 | Shading and Texture Mapping | |||

Oct 25 | Shading and Texture Mapping | |||

Oct 27 | Shading and Texture Mapping | |||

Oct 30 | Shadows | |||

Nov 1 | Shadows | |||

Nov 3 | Midterm Solution | |||

Nov 6 | Ray Tracing (Intro) | |||

Nov 8 | Ray Tracing (Intro) | |||

Nov 10 | Ray Tracing (Nuts and Bolts) | |||

Nov 13 | Ray Tracing (Nuts and Bolts) | |||

Nov 15 | Ray Tracing (Acceleration) | |||

Nov 17 | Geometry | |||

Nov 20 | Curves and Surfaces | |||

Nov 22 | Reading Day -- No Class | |||

Nov 24 | Thanksgiving -- No Class | |||

Nov 27 | Curves and Surfaces | |||

Nov 29 | Mesh Processing | |||

Dec 1 | Review for Final | |||

Dec 4 | Review for Final |

*Schedule is subject to small changes.