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.
Programming skill in a high level language and knowledge of data structures and algorithms.
4 semester units. 3 units lecture and 1 unit lab.
Selected elective for CS.
Fundamentals of Computer Graphics
Peter Shirley, Steve Marschner
3rd Edition (July 21, 2009)
ISBN-10: 1568814690
ISBN-13: 978-1568814698
OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3.
Available free online at: http://www.glprogramming.com/red/
Dr. Arif Wani, Gordon Griesel
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
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.
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 |
Not applicable to this course.
Gordon Griesel, July 2014
Approved by CEE/CS Department on [date]
Effective [date]