Introduction to Computer Graphics

Course
Identifier: 
COM S 336

Offered during Fall Semester each year.

  1. Credits and contact hours: 3 credits, 3 contact hours
  2. Instructor’s or course coordinator’s name: Steve Kautz
  3. Text book, title, author, and year: None
  4. Other supplemental materials: None

Specific course information

  1. Brief description of the content of the course: Programming interactive computer graphics systems using standard low-level libraries (such as OpenGL or DirectX) with an emphasis on 3D rendering. The graphics pipeline and programmable shaders. Coordinate systems and transformations in two and three dimensions. Homogeneous coordinates, viewing transformations and perspective. Euler angles and quaternions. Visible surface algorithms. Lighting models and shading. Texture mapping, bump mapping, reflection, elementary ray tracing. Offscreen buffers, render-to-texture and related techniques.
  2. Prerequisites or co-requisites: COM S 327, CoReq MATH 207 or MATH 317
  3. Required, elective, or selected elective? Selected Elective

Specific goals for the course

  1. Specific outcomes of instruction: After completing Com S 336, the student should be able to...
  • Explain the basic stages of the graphics pipeline and the roles of the vertex and fragment shaders. (1)
  • Use the coordinate systems and related transformations found in the graphics pipeline.
  • Visualize and define appropriate transformation matrices combining 3D rotation, translation, and scaling. (1)
  • Create and debug interactive graphics applications including hierarchical objects in a scene. (2)
  • Define the components in the Phong (ADS) lighting model.
  • Write shader programs including lighting, texture sampling, and bump mapping. (6)
  • Use at least one technique employing an offscreen buffer. (2)
  • Utilize noise and other procedural methods in shaders.
  • Investigate and apply techniques from contemporary articles in computer graphics.

Brief list of topics to be covered

  • The graphics pipeline, role of vertex and fragment (pixel) shaders
  • The mathematics of coordinates systems and transformations in two and three dimensions
  • Representing transformations as 4 x 4 matrices using homogeneous coordinates
  • Viewing transformations and Euler angles
  • Perspective projections
  • Depth buffering (hidden surface removal)
  • Lighting models; normal vectors and shading
  • Surface properties and texture mapping
  • Sampling and antialiasing
  • Bump mapping
  • Using offscreen buffers: rendering to textures, shadow mapping
  • Noise effects
  • Reflection maps, elementary ray tracing