Prerequisites

Expected Preparation

Students should be capable of programming in C or C++, and have a general understanding of 2D Graphics, data structures, and numerical computing.

Student Learning Outcomes

The students will learn to design and implement large and complicated graphics programs. Students will learn primitives of 3D graphics, visualization and rendering techniques, advanced raster architectures and raster algorithms, and topics in modeling, image processing, and animation. They will also learn user-interface issues for 3D interaction devices. Specifically students will:

Understand the concept of 3D viewing, lighting and rendering process.

Understand the concept of hidden surface elimination, and know techniques that can be used for such a process, as well as criteria to determine if a method is appropriate for particular hidden surface elimination problems.

Be familiar with the shading process.

Understand the concept of shadow generation and know how to choose shadow-generation methods for 3D rendering problems.

Understand how to use CSG trees to represent solids, how to perform Boolean operations on solids and how to render a CSG-represented solid.

Understand how to use B-splines in 3D shape representation and how to perform subdivision and tessellation on B-spline based representations.

Be able to write OpenGL programs to render 3D scenes consisted of polygonal objects and objects bounded by free-form surfaces.

Measures

Direct Measures:

Students are evaluated on their work (homeworks, projects and exams).

Students receive back their homework and exams. These papers are marked to indicate problems and they point out correct or better solutions. Problems that turn out to be especially difficult are discussed in class during lectures.

Different numerical scales are used for graduate students and undergraduate students. For graduate students, we use the following scale:

90 - 100

A

80 - 89

B

70 - 79

C

60 - 69

D

0 - 59

E

For undergraduate students we use the following scale:

86 - 100

A

76 - 85

B

66 - 75

C

56 - 65

D

0 - 55

E

Indirect Measures:

These outcomes will be evaluated on the basis of student homeworks, programming assignments, exams and class participation that contain problems related to the outcomes.

The course will focus evenly on theory and practice. Attention will especially be given to the design and implementation of a graphics system so that a student can do graphics system programming as well.