This course is a one-semester introduction to computer graphics, covering basic technical concepts of 2D and 3D graphical image generation. Prerequisites are Data Structures (CSC 172), two semesters of calculus, and basic linear algebra. Competence in C or C++ programming, and use of UNIX tools such as make is assumed. Though not required, a course in basic physics will help in grasping the modeling concepts of the second half of the course.
The first half of the course will include introductory and historical material, 2D algorithms, and software and mathematical tools. Topics to be covered include basic raster algorithms (e.g. scan conversion, filling, and clipping), geometric transformations ( e.g. Homogeneous coordinates, 2D and 3D matrix representations), and viewing models.
The second half will concentrate more on 3D graphics. Topics to be covered include representations for curves and surfaces (polygon meshes, splines, other parametric curves and surfaces etc.), lighting and color models, aliasing and anti-aliasing, visible surface determination methods (hidden line removal, z-buffer, area subdivision, ray tracing etc.), illumination and shading issues (Gouraud and Phong shading, texture mapping, shadows, transparency, etc.), and in general, techniques associated with the quest for visual realism.
The course will include exercises in the use of graphical software packages using OpenGL, and possibly SRPG and SPHIGS.
The books will be Computer Graphics: Principles and Practice, Second Edition in C, by Foley, van Dam, Feiner and Hughes; and OpenGL Programming Guide, Third Edition, by Woo, Neider, Davis, and Shreiner.
Back to Randal Nelson's home page