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