Course Instructor and Office Hours:

Matthias Zwicker, office hours: Tuesdays 11:30am-12:30pm, AVW3139

Time and Place:

Tuesday and Thursdays, 3:30pm-4:45pm, CSI 1122


This lecture offers an introduction to 3D computer graphics, focusing on the underlying building blocks and algorithms that enable applications such as 3D computer games, and augmented and virtual reality (AR/VR). The material covers the basics of 3D image generation and 3D modeling, with a focus on interactive applications. We will discuss the representation of 3D geometry, 3D transformations, projections, rasterization, basics of texturing and lighting models, as well as the programming of modern Graphics Processing Units (GPUs). The lecture exercises deepen the subject with programming projects based on Java and OpenGL. In the programming projects, students will build their own 3D rendering engine step-by-step.

Learning Outcomes:

In this course, students acquire the following knowledge and skills:
  • Describe and apply the mathematical basics of 3D graphics (coordinate systems, coordinate changes, homogeneous coordinates, matrix operations, transformation matrices for rotation, translation and projection).
  • Describe the fundamentals of digital representation and processing of color information, and its relation to the human visual system (tristimulus theory, color spaces, color transformations, gamma correction, and tone mapping).
  • Describe and apply basic concepts of radiometry and light transport (radiance, irradiance, bidirectional reflectance distribution function (BRDF), and various lighting models).
  • Describe hardware architecture of GPUs (graphics pipeline, frame buffer, graphics processing unit (GPU), data parallelism, single instruction multiple threads (SIMT) programming model).
  • Describe the software architecture of 3D graphics programs.
  • Describe and apply data structures for 3D graphics applications (mesh data structures and hierarchical scene graphs).
  • Describe and apply special graphic programming techniques (shader programming, texture mapping, bump mapping, shadow mapping).
  • Use 3D graphics programming interfaces such as OpenGL and GLSL together with an object-oriented programming language such as Java to develop your own 3D applications.

    Course Schedule, Materials, and Online Communication:

    The course schedule, all materials, and online communication will be managed via the course page on UMD Canvas, the electronic learning management system of UMD. Access to these resources requires login using your campus ID.


    Grading will be based on the programming assignments (50%), the midterm exam (25%), and a final exam (25%).


    The course builds on concepts from calculus, linear algebra, and algorithms and data structures. Programming assignments rely on Java. The official requirements are: MATH240; and minimum grade of C- in CMSC420; and permission of CMNS-Computer Science department. Or must be in the (Computer Science (Doctoral), Computer Science (Master's)) program. Contact the instructor for further inquiries.

    Course Policies:

    Academic Integrity:

    We will follow the guidelines set forth by of the Department of Computer Science and the course related policies of the Office of Undergraduate Studies.

    Academic Accommodations due to a Disability:

    Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Accessibility and Disability Services (ADS) within the first TWO weeks of the semester.

    Major Scheduled Grading Events:

    The midterm and final exams are defined as Major Scheduled Grading Events.


    Any student who needs to be excused for an absence from a single lecture, recitation, or lab due to a medically necessitated absence shall (1) make a reasonable attempt to inform the instructor of his/her illness prior to the class; (2) upon returning to the class, present their instructor with a self-signed note attesting to the date of their illness. Each note must contain an acknowledgment by the student that the information provided is true and correct. Self-documentation may not be used for the Major Scheduled Grading Events.

    Submission of Homework Assignments:

    Homework that is submitted after an announced deadline is graded with 50% of the original score. Meeting and grading in person with the TA is considered part of the homework assignments. Failure to meet the TA leads to application of the late penalty, that is, grading with 50% of the original score.

  • Web Accessibility