Graphics banner

Introduction to Computer Graphics
CMPS-3350/6350, Fall 2016
TR, 11:00am-12:15pm

Course Information

A comprehensive introduction to the mathematics and algorithms that drive today's digital special effects, animation, and games. Designed as a hands-on course, students will gain experience in building 2D/3D interactive applications using OpenGL. Topics covered will include geometric transformations, projections, raster algorithms, 3D object models (surface and volume), visible surface algorithms, texture mapping, lighting/shading, ray tracing, anti-aliasing, and compositing.

Learning Outcomes
Upon completion of the course, successful students will be able to:
  • understand the current state-of-the-art in graphics technologies;
  • understand the underlying mathematics, algorithms, and data structures that drive movie and game graphics;
  • program interactive 2D/3D graphics programs using OpenGL with proper lighting, shading and texture mapping;
  • program the graphics pipeline through the use of shaders; and
  • program a ray tracing renderer and understand how to extend it to achieve photorealistic global illumination.
  • CMPS 1600 or good programming skills (C and C++ are the preferred languages of the course)
  • Knowledge of basic data structures like: Linked Lists, Arrays, Trees
  • Simple linear algebra: matrix multiplication, vector addition, etc.
  • A computer capable of OpenGL 3.1+ development
Instructor Office Hours
TR, 10:00am-11:00am
Cody Licorish
  • OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3 (8th Edition)
Other Good Graphics Texts:
  • Interactive Computer Graphics: A Top-Down Approach with WebGL, 7th Edition by Angel and Shreiner
  • Fundamentals of Computer Graphics (3rd Edition) by Shirley, Ashikhmin, and Marschner
  • Computer Graphics: Principles and Practice by Hughes and van Dam
  • Physically Based Rendering, Second Edition: From Theory To Implementation by Pharr and Humphreys
10% Class Participation
30% Programming Assignments (3-4 planned)
20% Midterm Game Project
20% Final Raytracing Project
20% Final Exam

Programming assignments can be submitted up to 1 week beyond a due date with a 20% reduction in grade.

Final grade will be assigned as follows:
A >= 93% [Exemplary. Superior achievement.]
A- >= 90% [Outstanding]
B+ >= 87%, B >= 83%, B- >= 80% [High Pass, Above Average]
C+ >= 77%, C >= 73%, [Pass, Average work, Satisfactory] C- >= 70% [Below Average]
D >= 60%, [Low Pass, Unsatisfactory, Barely passing]
F < 60% [Failure, Unacceptable]

We will be using Piazza for class discussion. Please use this as a resource to ask me and your classmates questions pertaining to course material, labs, and projects.
Collaboration and Academic Integrity
You are required to adhere to the Code of Academic Conduct. Cheating will be reported to the Associate Dean of Newcomb-Tulane College. I encourage collaboration, but everyone's work must be their own. Help and sharing of small code snippets to help someone get past a bug are OK, but whole files or classes are not. In cases of over sharing, everyone involved will be held equally responsible irregardless of who did the original work. Sources other than the textbook should be cited appropriately.
One Wave
Tulane University recognizes the inherent dignity of all individuals and promotes respect for all people. As One Wave, Tulane is committed to providing an environment free of all forms of discrimination and sexual harassment, including sexual assault, domestic and dating violence, and stalking. If you (or someone you know) has experienced or experiences gender-based violence, know that you are not alone. Learn more at Any and all of your communications on these matters will be treated as either “Confidential” or “Private” as explained in the updated chart below.

Confidential Private
Except in extreme circumstances, involving imminent danger to one’s self or others, nothing will be shared without your explicit permission. Conversations are kept as confidential as possible, but information is shared with key staff members so the University can offer resources and accommodations and take action if necessary for safety reasons.
Counseling and Psychological Services (CAPS) | (504) 314-2277 or The Line (24/7) | (504) 264-6074 Case Management and Victim Support Services | (504) 314-2160 or
Student Health Center | (504) 865-5255 Tulane University Police (TUPD) | Uptown - (504) 865-5911. Downtown – (504) 988-5531
Sexual Aggression Peer Hotline and Education (SAPHE) | (504) 654-9543 Title IX Coordinator | (504) 865-5615 or

Week Topic
1 Introduction
2 Color and the Frame Buffer
3 Primitives, Windows, and OpenGL
4 Vectors, Matrices, and Transformations
5 Polygon Intersections and Clipping
6 Views, Projections, and Cameras
7 Models and Spatial Data Structures
8 Midterm Game Project Due; Curves and Curved Surfaces
9 Mapping
10 Hidden Surface Removal and Scene Graphs
11 Image Synthesis
12 Light, Reflectivity, Transmission, and Shadows
13 Anti-aliasing and Compositing
14 Light Fields and HDR
15 Final Project Due; Radiosity, Path Tracing, and Photon Mapping

Midterm Project: 2D "Vector Graphics" Game

For this project, you'll use all of the topics covered so far in the course: drawing, primitives, transforms, texturing etc. to build a simple 2D game. Milestones will be given to build a asteroids clone. The project will be open-ended in that you are free to either build on this template or build something completely new. Things you need to show:

  • Use of color
  • Filled and non-filled polygons
  • Concave polygons with software tessellation (GRAD)
  • Transformations
    • Single Object deformations: i.e. the ship movement
    • Multiple Object deformations: e.g. rotate everything
    • At least one scale, translation and rotation (does not need to be part of an animation)
  • Some use of vector mathematics, e.g.:
    • When an Asteroid breaks, do something with the directions of the new pieces
    • Apply gravitational forces to make flying more difficult
Cody M Licorish 2015Project 2: Whitted-Style Ray Tracer

For our final project, you'll construct a ray-tracer, the basic image creation technique for feature animation and special effects. You'll be provided an interactive, 3D OpenGl application to preview your rendered scene. This will leverage all topics covered in the course including: 3D transformations, texture mapping, lighting, shading, reflection, and refraction. Things you need to show:

  • A Ray Traced Sphere
  • A Ray Traced Polygon
  • A Diffuse Surface
  • A Refractive Surface
  • A Reflective Surface

Website last updated August 22, 2016