# Special Topics: Computer Graphics CSCI-UA.0480-008

### Course Instructor

**Jérémie Dumas**

Address: 60 5th Ave, 5th floor, Office 503

Phone: 212 998 3394

Email: `jeremie.dumas [at] nyu.edu`

URL: http://www.jdumas.org

**Office Hours**: Wednesday, 4pm-5pm and by appointment.

### Assistant

**Zhenyi He**

Address: 60 5th Ave, 3th floor, Office 342

Email: `zhenyihe [at] nyu.edu`

URL: http://zhenyihe.wordpress.com

**Office Hours**: Thursday, 1pm-2pm.

### Lectures

Tuesday and Thursday, 9:30am - 10:45am

Courant Institute, Warren Weaver Hall, Room 202

### Textbooks

The required textbook is:

**Fundamentals of Computer Graphics, 4th Edition**

December 18, 2015 by A K Peters/CRC Press

Textbook - 734 Pages - 541 Color

ISBN 9781482229394

### Grading

The grade will be based on the following:

- Assignments: 40%
- Midterm Exam: 20%
- Final Exam: 40%

### Course Description

This course provides an introduction to the field of Computer Graphics. We will cover the basic mathematical concepts, such as 2D and 3D transformations, study the interaction of light with geometry to derive shading models, and implement rendering algorithms such as ray tracing and rasterization. We will investigate how these fundamental components are integrated in current graphics processors and study the corresponding programming APIs. This course will also include a self-contained introduction to C++.

Students will experiment with modern graphics programming and build small demos in C++ and OpenGL. Students entering this course should be familiar with programming (e.g. Java, C or Python), but previous experience with C++ is not mandatory.

By the end of the course, the student must be able to:

- Explain and apply the fundamental mathematical concepts used in image synthesis algorithms
- Implement a basic rendering system based on ray tracing
- Implement a basic rendering pipeline based on rasterization
- Develop simple graphics programs in C++ using OpenGL and GLSL

### Topics

- Pixels and images
- Fundamentals of ray tracing
- Parametric curves and surfaces
- Rasterization
- Transformations in 2D/3D
- Perspective and visibility
- Interpolation and lighting
- OpenGL graphics API (w/ shader programming)
- Texture mapping and mesh parametrization
- Procedural modeling

### Assignments

In this course there will be 5 small guided coding assignments that will account for 40% of the grade, plus 5 optional assignments. You must pass the final to pass the course.

### Prerequisites

Required:

- CSCI-UA 201 (Computer Systems Organization)
- MATH-UA-140 (Linear Algebra)

Optional (but strongly recommended):

- CSCI-UA-310 (Basic Algorithms)