Statement of Course Outcomes


Course Number: CS 537


Course Name: Interactive Graphics I


Course Coordinator: Quynh Dinh, George Kamberov


Graduate or Undergraduate Equivalent: CS 437

 

Catalog Description: This is an introductory-level course to computer graphics. No previous knowledge on the subject is assumed. The objective of the course is to provide a comprehensive introduction to the field of computer graphics, focusing on the underlying theory, and thus providing strong foundations for both designers and users of graphical systems. The course will study the conceptual framework for interactive computer graphics, introduce the use of OpenGL as an application programming interface (API), and cover algorithmic and computer architecture issues. Prerequisite: Graduates: CS 590; Undergraduates: CS 385 or CS 182.


Course Outcomes


Each course outcome is followed in parentheses by the Program Outcome to which it relates.


  1. Explain why scan conversion is necessary. Explain Bressenham’s line drawing algorithm. [problem-solving]

  2. Describe or implement a scan-line renderer. [requirements,software]

  3. Explain what aliasing is and how we can reduce aliasing (i.e., anti-aliasing techniques). [problem-solving]

  4. Explain homogeneous coordinates and why they are used in computer graphics. [problem-solving]

  5. Explain how to perform object transformation using homogeneous coordinates and the matrix stack. [problem-solving]

  6. Implement a program that performs object transformation (translation, rotation, scaling). [requirements,software]

  7. Explain how a 2D image of the 3D world is generated via projections and describe the differences between different projections (e.g., perspective and orthographic). [problem-solving]

  8. Describe and implement a basic ray-caster using algorithms for solving intersections between rays and geometric primitives (e.g., polygons, spheres). [requirements,software]

  9. Explain how recursion is used in a ray-tracer. [problem-solving]

  10. Describe parametric curves and surfaces, how they are represented mathematically, how to control their shape, and how to render them. [problem-solving]

  11. Explain the two basic types of illumination – diffuse and specular. [problem-solving]

  12. Implement diffuse illumination. [requirements,software]

  13. Explain the three basic types of shading – flat, Gouraud, and Phong. [problem-solving]

  14. Explain what texture mapping is, why it is useful, and how to texture map an image onto a polygonal model. [problem-solving]

  15. Implement texture mapping over a geometric primitive (e.g., polygon, sphere, or cylinder. [requirements,software]

  16. Explain how to render shadows using shadow volumes, ray-casting, and two-pass rendering. [problem-solving]

  17. Describe the requirements for interactive 3D graphics (e.g, framerates, 3D object manipulation, navigation in 3D). [problem-solving]

  18. Implement interaction techniques such as picking in OpenGL. [requirements,software]

  19. Explain the principles and give examples of different approaches to hierarchical scene modeling. [problem-solving]

  20. Implement a scene-independent rendering engine using a hierarchical scene models, for example using scene graphs. [requirements,software]

  21. Explain the main issues arising in collision detection and processing. [problem-solving]

  22. Explain the different approaches to rendering shadows, transparency, and reflections. [problem-solving]

  23. Implement object reflections on planar surfaces using specialized buffers. [requirements,software]

  24. Implement real-time rendering of transparent objects using color blending. [requirements,software]

  25. Implement projected shadows. [requirements,software]