CS 535 - Intermediate Computer Graphics

 

Credits: 3

 

Course Description

 

Three-dimensional graphics primatives such as 3D viewing, lighting, shading, hidden line/surface removal, and more advanced topics such as solid modeling, image storage and representation, advanced raster graphics architecture and algorithms, advanced modeling techniques, and animation will be covered.

 

Prereqs: CS-335, CS-315, CS-321, and engineering standing.

 

Needed Skills

 

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

 

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:

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

2. 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.

3. Be familiar with the shading process.

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

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

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

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

 

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.

Additional Comments

 

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.

 

CAC Categories

 

Topic

Core

Advanced

Math Fundamentals

1

1

Data Structures

1

1

Algorithms & Software Design

30

6

Computer Organization and Architecture

2

1

Concepts of Programming Languages

1

0

Social and ethical issues

1

0

Total

36

9

 

Math Fundamentals (2):

Core (1): viewing transformation

Advanced (1): Affine transformations

 

Data Structures (2):

Core (1): CSG representation, tree structure for ray tracing, octrees

Advanced (1): representation for adaptive subdivision and tessellation

 

Algorithms and Software (36):

Core (30): three-dimensional graphics primitives, visible-surface determination, illumination and shading, geometric modeling

Advanced (6): scan-converting, forward differencing, tessellation of curved surfaces, shape algebra, volume rendering, and physically based modeling.

 

Computer Organization and Architecture (3):

Core (2): raster and vector graphics systems, video display devices, physical and logical input devices

Advanced (1): advanced display devices and input devices

 

Concepts of Programming Languages (1): Core (1): programming in OpenGL

 

Social and Ethical Issues (1): Discussion of professional and academic integrity

 

Oral Communication (presentations)

 

none

 

Written Communication

 

8-10 homeworks, 3-4 programming projects

 

Coverage

 

Theoretical Content: 50%

· Graphic systems and programming in OpenGL

· Three-dimensional graphics primitives: 3D viewing, lighting, rendering shaded images

· Visible-surface determination: z-buffer, list-priority, scan-line, area-subdivision, octrees, ray tracing algorithms

· Illumination and shading: shading models, color models, shadows, recursive ray tracing, radiosity methods;

· Geometric modeling: polygonal representation, constructive solid geometric (CSG) representation, and parametric B-spline representation of 3D objects, subdivision techniques

· Advanced geometric modeling and raster algorithms: scan-converting, forward differencing, tessellation of curved surfaces, shape algebra, volume rendering, and physically based modeling.

 

Problem Analysis: 25%

Problem formulation and property study in visible-surface determination, shadow generation, 3D representation, and 3D rendering

 

Solution Design: 25%

Develop algorithms for various visible-surface determination techniques, various shadow generation techniques, and various 3D representation and rendering techniques

 

Student Evaluation and Feedback

 

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

 

Course Evaluation Questions

 

The course has helped me to:

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

38. Understand the concept of hidden surface elimination and various techniques that can be used for such a process. Most importantly, it showed me how to determine if a method is appropriate for a particular hidden surface elimination problem.

39. Understand the concept of shadow generation and how to choose a good shadow generation method for a 3D rendering problem.

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

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

42. Write OpenGL programs to render 3D scenes consisted of polygonal objects or objects bounded by free-form surfaces.

 

Possible Textbooks

 

Computer Graphics: Using Open GL, 2nd Edition
F.S. Hill, Jr
Prentice Hall, New Jersey, 2001

 

Computer Graphics: Principles and Practice, 2nd Edition in C
J. D. Foley, A, van Dam, S. K. Feiner, and J. F. Hughes
Addison-Wesley, Reading, Mass. 1996