CS/EECE 433 Fall 2006
Ed Angel, Professor of CS, EECE, and MA
Class meets TTh 2:00-3:15 DSH 317
Office: FEC 301F, CERIA 346
Phone: 277-6560, 277-2186
email: angel@cs.unm.edu
Office Hours: T Th 3:30-5:00
Purposes:
- Introduce students to all aspects of computer graphics:
hardware, software, applications
- Understand the basic concepts underlying computer graphics
- Gain experience with at least one graphical application
programming interface (OpenGL)
- Carry out a large programming project of your choice
- Use (and enjoy) the knowledge gained in previous CS/CE classes
Text and References:
- E. Angel, Interactive Computer Graphics. A Top-Down
Approach Using OpenGL (Fourth Edition) , Addison-Wesley, 2006.
- E. Angel, OpenGL: A Primer Addison-Wesley, 2004.
- OpenGL Programming Guide, Addison-Wesley, 2004.
- OpenGL Reference Manual, Addison-Wesley, 2004.
Prerequisites:
- Good programming skills in C equivalent to CS 351 or EECE
331/332
- Data structures equivalent to CS 251
- Trigonometry and simple linear algebra
Grading:
- Required projects (3): 50%
- Term project: 50%, students select term project from a list or
propose their own.
Computing Facilities and Projects:
Students can do the required class projects using OpenGL on
UNM workstations or their own PCs.
- OpenGL is available free for PCs under Linux, Windows and the Mac.
- There is a variety of other software and machines available
for the term project including PIXAR's Renderman, Maya, and
Khoros. Projects using computers in other locations are possible.
Course Outline
- Introduction: History of computer graphics, graphics
architectures and software, imaging: pinhole camera,human vision,
synthetic camera, modeling vs rendering (1 week).
- OpenGL: architecture, displaying simple two-dimensional
geometric objects, positioning systems, working in a windowed
environment (Project 1 assigned) (1 week).
- Color: Color perception, color models (RGB, CMY, HLS),
colortransformations. Color in OpenGL. RGB and Indexed color
(1 week).
- Input: working in a network environment, client-server
computing; input measure, event, sample and request input, using
callbacks, picking (Project 2 assigned) (1 week).
- Geometric transformations: affine transformations
(translation, rotation, scaling, shear), homogeneous coordinates,
concatenation, current transformation and matrix stacks (2 weeks).
- Three dimensional graphics: classical three dimensional
viewing,specifying views, affine transformation in 3D, projective
transformations (Project 3 assigned) (2 weeks).
- Shading: illumination and surface modeling, Phong shading model,
polygon shading (2 weeks).
- Rasterization: line drawing via Bresenham's algorithm,
clipping, polygonal fill, BitBlt. Introduction to hidden surface removal
(z buffer) (2 weeks)
- Discrete Techniques: buffers, bitblt, reading and writing
bitmaps and pixelmaps, texture mapping, compositing. (2 weeks).
- Survey of Advanced Topics: Modeling with tree structured and DAG models,
programmable pipelines, introduction to curves and surfaces. Fractals.
(1 week).