Introduction to Computer Graphics

I am teaching Introduction to Computer Graphics and Game Development (SER332) this Spring. I have taught this course for a year – Spring 2018 and Spring 2017.

SER332 is a beginner level course for students interested in learning foundations of graphics and basic principles of the game development pipeline. We do programming in C/C++ and use the OpenGL graphics library.

Syllabus

version Spring 2018

Lectures

The course includes 25 lectures and covers the following topics: course presentation; concepts of computer graphics; OpenGL overview; callback functions; vertex ; transformations (ModelView); transformations (Viewport); display lists and menus; transformations (Projection); linear algebra; fonts and OBJ files; mesh data structure; lighting; materials; and textures.

My slides for each lecture are available below:

  1. Course Presentation
  2. Concepts
  3. OpenGL Overview
  4. Callback Functions
  5. Vertex
  6. Laboratory 01 (Drawing in 2D)
  7. Model-View Transformations
  8. Viewport Transformation
  9. Laboratory 02 (Transformations)
  10. Display Lists and Menus
  11. Projection Transformation
  12. Laboratory 03 (Perspective)
  13. Linear Algebra
  14. Laboratory 04 (Camera)
  15. Fonts, OBJ Files, and Midterm Review
  16. Mesh Data Structure
  17. Laboratory 05 (OBJ Files)
  18. Mesh Data Structure II
  19. Lighting
  20. Laboratory 06 (Lighting)
  21. Materials
  22. Laboratory 07 (Materials)
  23. Textures
  24. Coding Review
  25. Final Review

Assignments

There are four programming assignments. the last one is a comprehensive project where students create a 3D closed space that has rooms and hallways. It is a scenario for a first-person shooter game. Each room has furniture, light adjustments, materials, and textures.

GitHub Repository

Code for lecture examples is available here: javiergs/SER332