CMPS 3480 Computer Graphics
Catalog Description
CMPS 3480 Computer Graphics (4 units)
This course presents an introduction to computer graphics. An overview of many fundamental principles will be learned through programming assignments. The course will include an overview of common graphics hardware, raster graphics concepts, ray tracing, and animation. Details of the material presented will include RGB color, raster images, pixels, lines and curves, 2D and 3D transformations, surfaces and shading, illumination, and shadows. The OpenGL graphics API will be used as well as software rendering in C/C++. This course does not include learning artistic skills or game design.
Prerequisite: CMPS 2020 with a grade of C- or better.
Prerequisites by Topic
Programming skill in a high level language and knowledge of data structures and algorithms.
Units and Contact Time
4 semester units. 3 units lecture and 1 unit lab.
Type
Selected elective for CS.

Required Textbook
Fundamentals of Computer Graphics
Peter Shirley, Steve Marschner
3rd Edition (July 21, 2009)
ISBN-10: 1568814690
ISBN-13: 978-1568814698
Recommended Textbook and Other Supplemental Materials
OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3.
Available free online at: http://www.glprogramming.com/red/
Coordinator(s)
Dr. Arif Wani, Gordon Griesel
Student Learning Outcomes
This course covers the following ACM/IEEE Body of Knowledge student learning outcomes:

1. GV/Fundamental Concepts

2. GV/Basic Rendering

3. GV/Geometric Modeling

4. GV/Computer Animation

ABET Outcome Coverage

The course maps to the following performance indicators for Computer Science (CAC/ABET):

(CAC PIa1, EAC PIa1): Apply and perform the correct mathematical analysis.
Homework and exams will require knowledge of math formulas used in computer graphics, and translating basic math into program code.
(CAC PIb1): Identify key components and algorithms necessary for a solution.
Students will be required to learn the fundamental algorithms used in computer graphics.
(CAC PIi1): Program in a suitable computer language.
Use of C/C++ with X-Windows and OpenGL under Linux is required.
(CAC PId3, EAC PId3): Research and gather information.
Skills needed to accomplish the final project.
(CAC PIj1): Understand performance and cost as these relate to software/firmware-based and hardware-based implementations.
Choosing CPU vs GPU for solutions to graphical problems.
Lecture Topics and Rough Schedule

Week 1 Graphics programming framework, OpenGL
Week 2 Raster images, RGB color
Week 3 Lines and curves
Week 4 Simple animation and physics
Week 5 Filling areas with color
Week 6 Filling triangles with colors and textures
Week 7 Ray casting with vectors and intersections
Week 8 Ray tracing basics
Week 9 Ray tracing with perspective and lighting
Week 10 Photo realism with ray tracing
Week 11 OpenGL framework and components
Week 12 OpenGL transformations and meshes
Week 13 OpenGL lighting and effects
Week 14 RGB color and color quantization
Week 15 Special topics related to projects
Design Content Description
Not applicable to this course.
Prepared By
Gordon Griesel, July 2014
Approval
Approved by CEE/CS Department on [date]
Effective [date]