CSE 313 Computer Graphics (3)
Instructor: Xiaolei Huang
Current Catalog Description
Computer graphics for animation, visualization, and production of
special effects: displays, methods of interaction, images, image
processing, color, transformations, modeling (primitives, hierarchies,
polygon meshes, curves and surfaces, procedural), animation
(keyframing, dynamic simulation), rendering and realism (shading,
texturing, shadows, visibility, ray tracing), and programmable
graphics hardware. Prerequisite: CSE 109 or consent of the instructor.
Textbook
Donald Hearn and M. Pauline Baker. Computer Graphics with OpenGL, Third Edition, Pearson Prentice Hall, 2004.
Course Goals
Students completing this course will understand the principles of how two and three dimensional geometry is represented and reproduced on a computer screen. The students will have mastered standard algorithms, such as the Bresenham line-drawing algorithm, the Sutherland-Hodgeman polygon-clipping algorithm, the canonical viewing transformation and 3D perspective transformation, keyframe animation, behavior-based animation, physically-based simulation, the Z-buffer and BSP-tree visible surface detection algorithms, the ray-tracing and radiosity rendering algorithms, and interface components and human-computer interaction. In the process, students will learn how graphical software can and should be designed to meet the visual abilities of its users; how to compare algorithms in terms of memory usage, speed, quality of result, and complexity; how to implement a selected set of computer graphics algorithms in software; and how to take advantage of programmable graphics hardware.
Prerequisites by Topic
• Fluency in writing code in C or C++
• Medium scale software design and implementation
• Statically and dynamically allocated data structures
• Recursion
• Linear algebra, matrix operations
• Geometry, vector operations
Major Topics Covered in the Course
• Raster Graphics Hardware
• The OpenGL and GLUT Libraries
• Human Vision and Color Theory
• Image Formation and Basic Image Processing
• Drawing 2D Lines, Circles, and Polygons
• 2D Transformations, Windows, Viewports, 2D Line and Polygon Clipping
• 3D Transformations, Projections, Viewing, Clipping
• Mathematical Representations of Geometry, Tesselation
• Polygon Meshes, Curves and Surfaces
• Procedural Modeling and Fractals
• Keyframe animation, behavior-based animation
• Physically-based simulation, Nonrigid Deformations
• Anti-aliasing, Polygon Filling
• Hidden Surface Elimination
• Rendering and Realism, Illumination, Shading, Shadow, Surface Detail
• Ray Tracing, Radiosity
• Scene Graphs, Graphical User Interaction
• Programmable Graphics Hardware
Laboratory projects (specify number of weeks on each)
There are three programming projects completed outside of class, each given over a two to four week period. For all of the programming assignments, the students are given a skeleton program to start with, but must design a solution that implements one or two algorithms discussed in class, for a particular context given in the assignment description. One additional open-ended class project requires the students to present a research article and implement a demo program related to the presentation.