MV - 4202: Computer Graphics

Course Coordinator: Perry McDowell

Normally offered Winter and Summer Quarters

Course Description

An introduction to the principles of the hardware and the software used in the production of computer generated images.   The objective of this course is to instruct students in 3D graphics programming.   Topics include graphics programming in a windows environment, basic rendering and color, transformations, font rendering, selection, lighting, textures, fog, and hidden surface elimination.   The primary focus of the course is the design and implementation of a major project involving 3D graphics.   The course is intended for students who are proficient in the development of software systems.

PREREQUISITES: CS3971 or CS3771


Required Text

Woo, et al, OpenGL Programming Guide: The Official Guide to Learning OpenGL Version 1.2, 3rd Edition, Addison Wesley, 2000.  ISBN:  0-201-65765-2

Additional References

Recommended for a better knowledge of OpenGL:

D. Sheiner (ed.), OpenGL Reference Manual: The Official Reference Guide to OpenGL Version 1.2, 3rd Edition, Addison Wesley, 1999.  ISBN:  0-201-60458-2

Recommended for a better knowledge of computer graphics:

Foley, van Dam, Feiner and Hughes, Computer Graphics: Principles and Practice, Second Edition, Addison Wesley, 1995.  ISBN:  0-201-84840-6

F. S. Hill, Computer Graphics Using OpenGL, Second Edition, Prentice Hall, 2001.  ISBN:  0-02-354856-8


Recommended for a better knowledge of programming in Visual C++ IDE and MFC:

David Kruglinski, George Shepherd, and Scot Wingo, Programming Microsoft Visual C++, Fifth Edition, Microsoft Press, 1998.   ISBN 1-57231-857-0

Kate Gregory, Using Visual C++ 6, QUE, 1998.   ISBN 0-7897-1539-2

Microsoft Visual C++ Help


Internet Resources

Architectural Review Board for OpenGL: http://www.opengl.org/

Gateway to OpenGL Info (Silicon Graphics): http://reality.sgi.com/opengl

Great Tutorials from NeHe: http://nehe.gamedev.net/

Nat Robin’s OpenGL Tutorials: http://www.xmission.com/~nate/opengl.html

Eight OpenGL technical articles for 3D Color Graphics Programming (Microsoft).   (This is the URL for the first one.): http://msdn.microsoft.com/library/techart/msdn_gl1.htm


Course Content

OpenGL Programming in the Win32 Environment

Basic Rendering and Color (Chapters 2 and 4)

Transformations (Chapter 3)

Display Lists (Chapter 7)

Font Rendering (Chapter 8)

Quadric Objects (Chapter 11)

Selection (Chapter 13)

Lighting (Chapter 5)

Frame Buffer (Chapter 10)

Fog (Chapter 6)

Vertex Arrays (Chapter 2)
  • Enabling Arrays
  • Specifying Array Data
  • Using Array Data
  • Interleaved Arrays

Texture Mapping (Chapter 9)
  • Textures
  • Texture Objects
  • Scaling Textures
  • Mipmaps
  • Texture Environment (Minification and Magnification)
  • Texture Modes
  • Assigning Texture Coordinates

Projects and Tests

CS-4202 is a project based course.   Forty-five percent of the student's grade is based upon performance within a group implementing a chosen class project.

Project Description

There will be one test in approximately week ten, which will count for 25% of the total grade.   The test will consist mainly of discussion questions and writing code snipets.   Testable topics will include beginning graphics concepts and the OpenGL concepts covered in class.   The best preparation is looking at previous quarters' tests.


Labs

It is intended that this course will be hands on to as great an extent as possible.   Nine organized lab periods will be conducted for the first nine weeks of the quarter.   The labs are designed to familiarize students with the OpenGL API and prepare them for their projects.   Each lab is designed to be completed during a two-hour lab period.  

Performance in labs makes up the remaining 30% of the class grade. Lab grading will be as follows:

MV-4202 labs


Important Dates



Return to Perry McDowell's Home Page

This page last updated on 17 October 2001 and is maintainted by Perry McDowell © Copyright 2001, All rights reserved.
If you have comments or suggestions, e-mail me at mcdowell@cs.nps.navy.mil