An introduction to computer graphics including graphics application programming; data structures for graphics; representing and specifying color; fundamental hardware and software concepts for calligraphic and raster displays; two-dimensional, geometric transformations; introduction to three-dimensional graphics; graphics standards; and input devices, interaction handling, and user-computer interface.
Prerequisite
C or higher: CSE 216 or CSE 219 or CSE 260; CSE 220; CSE major
Course Outcomes
Working knowledge of fundamental hardware and software concepts of interactive computer graphics such as raster displays, color systems, processor architectures and displays.
An understanding of the mathematics of geometric transformations as applied to two and three-dimensional graphics.
An ability for graphics application programming through projects using standard graphics libraries
Textbook
Computer Graphics with Open GL, Donald Hearn and M. Pauline Baker, Prentice Hall.
Major Topics Covered in Course
Graphics System Hardware
Fundamental Mathematics and Geometry
Scene composition
Rendering
Image-based techniques
Others: Animation; Transparency and shadows; Texture mapping; Ray tracing; Radiosity; Image-based rendering and modeling; Advanced modeling techniques; Case studies; Software packages
Laboratory Projects
Read the introduction and overview chapters of textbooks and reference books to get familiar with graphics basics and fundamentals. Research the introduction and overview chapters of OpenGL programming guide and reference manual in order to get familiar with the basics of OpenGL programming skills (2 weeks)
Lab1: The main goal of Lab1 is to learn several important two dimensional graphics techniques and apply them such as line drawing, scan-conversion and two-dimensional transformations to solve real-world problems in practice. Students are required to implement the drawing of a polygon boundaries as well as its interior and be able to handle standard two-dimensional transformations and manipulations (3 weeks)
Lab2: Lab focuses on applying three dimensional graphics techniques to display and manipulate geometric shapes in common use such as cube, tetrahedron, sphere, cylinder, cone, torus, etc. Students are required to implement the drawing of polyhedral objects and quadrics primitives. Students need to display wire frame objects, display flat-shaded solid objects, and allow users to interactively translate and zoom the displayed objects (3 weeks)
Lab3: Lab3 aims at real-world applications by using graphics techniques. Typically, students are required to work on projects such as flight simulation, physics-based animation, collision detection of multi-objects and their physics-based responses, 2D or 3D shape morphing, etc. (3 weeks)