This course is an introduction to some of the computer graphics methods commonly used in 3D computer games, for both real-time rendering and offline preprocessing. Students will learn several common algorithms in each topic area with sufficient depth for implementation.

We will be using the Unreal Engine as a basis for the class, so you will also learn details of how a large game engine is constructed, and how to find your way around a very large pre-existing program.

Note that (as the course title says), this is a course about computer graphics, specifically 3D graphics, as used by many games. It is not a class about playing games, nor about all of the other equally important aspects of creating a game (AI, art, game play, interface design, ...).


On successful completion of this course, students will

  1. Know a variety of advanced graphics techniques used in games
  2. Know how to navigate and make changes to a large pre-existing codebase
  3. Integrate advanced graphics techniques into a game environment
  4. Present technical topics to a knowledgeable audience


I will assume you can program in C++ and know data structures, at least some calculus, and linear algebra. In UMBC undergraduate classes, these would be covered by a combination of CMSC 341, MATH 151, and MATH 221.

Recommended but not required: CMSC 435/634 (Introduction to Computer Graphics). That class covers software and hardware algorithms below the ones we cover in this class. For this class, it is enough to know the GPU will draw a triangle when the engine tells it to, without understanding the algorithms the GPU might use. Understanding those should not be necessary for this class, but can be useful in providing background and context.

There is no required text, but you may find these useful

Getting Help:

Instructor: Dr. Marc Olano <>
Office Hours: ITE 354, Tu 1:00-2:15, Th 10:45-12:00

Grader: Sivanag Maddineni <>

Discord: We will be using the 491-graphics channel on the UMBC CMSC discord server for this class. Questions on concepts and algorithms, especially relating to the assignments, should be asked and answered there. If you ask me a general question by email, I will ask you to re-post it on discord so the rest of the class can benefit from the answer.

Please only post messages on discord that are appropriate for the entire class to see. Messages about grades or other private matters should be sent directly to the instructor and/or grader.

Grades & Assignments:

Grades for the course will be distributed as follows:

What Weight Description Due Date
presentation 10% 10-minute in-class presentation Schedule by Sep 15
feedback 20% Presentation feedback By end of day of presentation
assn0 10% Getting Set Up Sep 11
assn1 10% Shader Programming Sep 22
assn2 10% Actor Programming 1 Oct 6
assn3 10% Actor Programming 2 Oct 20
assn4 10% Plugins 1 Nov 3
assn5 10% Plugins 2 Nov 17
assn6 10% Engine Code Dec 8

Programming assignments will be built within the Unreal Engine game engine, but will require the use of the C/C++ programming language. These assignments may be time-consuming (even assn0!!!). START EARLY!.

Assignments are to be submitted electronically as a tagged git "release" by 11:59 PM on Friday of the week listed unless otherwise noted. Assignments may be submitted up to three days late (by the end of the day on Monday) for a penalty of 5 percent of the possible score per day. We will do a walkthrough of a project solution on the Tuesday after the due date, so assignments more than three days late will receive a score of 0.

Students enrolled for graduate credit will have additional work on most assignment. The graduate components will be more open-ended and may require a bit more independent research and thinking on your part than the undergraduate components.

Class Topics

These will be linked to slides, when available, as the class proceeds

Tentative Schedule

I'll update this schedule as we go, both for topics that take more or less time than originally planned.

UMBC Policies

Academic Integrity

Accessibility and Disability Accommodations

Sexual Assault, Sexual Harassment, Gender Based Violence and Discrimination

Additional Policies

Academic Integrity

Academic integrity is an important value at UMBC. By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC’s scholarly community in which everyone’s academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong. Academic misconduct could result in disciplinary action that may include, but is not limited to, suspension or dismissal. These principles and policies apply in both face-to-face and online classes. Resources for students about academic integrity at UMBC are available at

For this course, the expectation is that you can discuss concepts and algorithms, but any code you write should be your own.

Accessibility and Disability Accommodations, Guidance and Resources

Accommodations for students with disabilities are provided for all students with a qualified disability under the Americans with Disabilities Act (ADA & ADAAA) and Section 504 of the Rehabilitation Act who request and are eligible for accommodations. The Office of Student Disability Services (SDS) is the UMBC department designated to coordinate accommodations that creates equal access for students when barriers to participation exist in University courses, programs, or activities.

If you have a documented disability and need to request academic accommodations in your courses, please refer to the SDS website at for registration information and office procedures.

SDS email:

SDS phone: 410-455-2459

If you will be using SDS approved accommodations in this class, please contact the instructor to discuss implementation of the accommodations. During remote instruction requirements due to COVID, communication and flexibility will be essential for success.

Sexual Assault, Sexual Harassment, and Gender Based Violence and Discrimination

UMBC Policy in addition to federal and state law (to include Title IX) prohibits discrimination and harassment on the basis of sex, sexual orientation, and gender identity in University programs and activities. Any student who is impacted by sexual harassment, sexual assault, domestic violence, dating violence, stalking, sexual exploitation, gender discrimination, pregnancy discrimination, gender-based harassment, or related retaliation should contact the University’s Title IX Coordinator to make a report and/or access support and resources. The Title IX Coordinator can be reached at or 410-455-1717

You can access support and resources even if you do not want to take any further action. You will not be forced to file a formal complaint or police report. Please be aware that the University may take action on its own if essential to protect the safety of the community.

If you are interested in making a report, please use the Online Reporting/Referral Form. Please note that, if you report anonymously, the University’s ability to respond will be limited.

Notice that Faculty and Teaching Assistants are Responsible Employees with Mandatory Reporting Obligations

All faculty members and teaching assistants are considered Responsible Employees, per UMBC’s Policy on Sexual Misconduct, Sexual Harassment, and Gender Discrimination. Faculty and teaching assistants therefore required to report all known information regarding alleged conduct that may be a violation of the Policy to the Title IX Coordinator, even if a student discloses an experience that occurred before attending UMBC and/or an incident that only involves people not affiliated with UMBC. Reports are required regardless of the amount of detail provided and even in instances where support has already been offered or received.

While faculty members want to encourage you to share information related to your life experiences through discussion and written work, students should understand that faculty are required to report past and present sexual harassment, sexual assault, domestic and dating violence, stalking, and gender discrimination that is shared with them to the Title IX Coordinator so that the University can inform students of their rights, resources, and support. While you are encouraged to do so, you are not obligated to respond to outreach conducted as a result of a report to the Title IX Coordinator.

If you need to speak with someone in confidence, who does not have an obligation to report to the Title IX Coordinator, UMBC has a number of Confidential Resources available to support you:

Other Resources:

Child Abuse and Neglect

Please note that Maryland law and UMBC policy require that faculty report all disclosures or suspicions of child abuse or neglect to the Department of Social Services and/or the police even if the person who experienced the abuse or neglect is now over 18.

Additional Policies

Additional policies on pregnant and parenting students; religious observances and accommodation; and hate, bias, discrimination and harrassment can be found on the Office of Equity and Inclusion site