Prof: Dr. George Kamberov
| Phone: |
(201) 216-5486 |
| E-mail: |
gkambero at stevens.edu |
| Office hours: |
Wed 5:00-6:13PM & by appt, ATI 2nd Floor Lieb |
Catalog Description: A comprehensive introduction to the field of Computer Graphics.
Students study the conceptual framework for interactive computer graphics:
transformations, viewing, shading, clipping, rasterization, curves and surfaces,
and selected topics. OpenGL is used as an application-programming interface.
Prerequisite: CS 385 or CS 182.
Course Outcomes Prerequisites
Texts Topics Overview
Detailed Syllabus and Class Notes
Final Grade Programming Assignments
Homeworks
Final Project Course Software
Software and Online References
Course Outcomes
Navigation
Each course outcome is followed in parentheses by the
Program Outcome to which it relates.
-
Explain why scan conversion is necessary. Explain
Bressenham’s line drawing algorithm. [problem-solving]
-
Describe or implement a scan-line renderer.
[requirements,languages]
-
Explain what aliasing is and how we can reduce
aliasing (i.e., anti-aliasing techniques).
[problem-solving]
-
Explain homogeneous coordinates and why they are
used in computer graphics.
[problem-solving]
-
Explain how to perform object transformation using
homogeneous coordinates and the matrix stack.
[problem-solving]
-
Implement a program that performs object
transformation (translation, rotation, scaling).
[requirements,languages]
-
Explain how a 2D image of the 3D world is
generated via projections and describe the differences between different
projections (e.g., perspective and orthographic).
[problem-solving]
-
Describe and implement a basic ray-caster using
algorithms for solving intersections between rays and geometric primitives
(e.g., polygons, spheres).
[requirements,languages]
-
Explain how recursion is used in a ray-tracer.
[problem-solving]
-
Describe parametric curves and surfaces, how they
are represented mathematically, how to control their shape, and how to
render them. [problem-solving]
-
Explain the two basic types of illumination –
diffuse and specular.
[problem-solving]
-
Implement diffuse illumination.
[requirements,languages]
-
Explain the three basic types of shading – flat,
Gouraud, and Phong.
[problem-solving]
-
Explain what texture mapping is, why it is useful,
and how to texture map an image onto a polygonal model. [problem-solving]
-
Implement texture mapping over a geometric
primitive (e.g., polygon, sphere, or cylinder.
[requirements,languages]
-
Explain how to render shadows using shadow
volumes, ray-casting, and two-pass rendering.
[problem-solving]
-
Describe the requirements for interactive 3D
graphics (e.g, framerates, 3D object manipulation, navigation in 3D).
[problem-solving]
-
Implement interaction techniques such as picking
in OpenGL. [requirements,languages]
-
Explain the principles and give examples of
different approaches to hierarchical scene modeling.
[problem-solving]
-
Implement a scene-independent rendering engine
using a hierarchical scene models, for example using scene graphs.
[requirements,languages]
-
Explain the main issues arising in collision
detection and processing.
[problem-solving]
-
Explain the different approaches to rendering
shadows, transparency, and reflections.
[problem-solving]
-
Implement object reflections on planar surfaces
using specialized buffers.
[requirements,languages]
-
Implement real-time rendering of transparent
objects using color blending.
[requirements,languages]
-
Implement projected shadows.
[requirements,languages]
Navigation
Prerequisites

-
CS 385 or CS 182
-
Good programming skills in C/C++ are essential!
-
Knowledge of linear algebra and some calculus is critical.
Required Texts:
- Edward Angel, Interactive Computer Graphics: a top down approach with OpenGL (5th ed.), Addison Wesley,
ISBN-10: 0321535863
ISBN-13: 9780321535863 Author's web site
-
Woo, Neider, Davis, OpenGL Programming Guide (4th ed), Addison
Wesley, ISBN 0-321-17348-1
fly.srk.fer.hr/~unreal/theredbook/
-
This is the HTML, public domain version of the book by Neider, Davis and
Woo. It is an earlier version, but it is very useful for programming examples
and as a reference for OpenGL APIs. Wherever you see aux in a
function, replace it with
glut. For example, auxMainLoop();
becomes glutMainLoop;
Other References:
-
Ed Angel, OpenGL: A Primer, 2nd edition, ISBN 0-231-23762-5
We will cover the following topics:
-
Introduction. Graphics Systems & Models
-
Graphics Programming: OpenGL. Basic 2D
graphics
-
Input & Interaction. Picking and Collision
detection
-
More on Geometric Objects &
Transformations
-
Viewing & Projections
-
Shading. Local and global shading models.
-
Texture mapping
- Rendering and advanced topics
Final Grade:
Assignments 1 (20%), and 2, and 3 (22%)
Project: 36%
Programming assignments:
There will be up to 4 assignments and a final project.
Each assignment will have a substantial programming component but
some assignments may include theoretical questions. All of your code must be
accompanied by
a report stating: what you did; how you did it; any particular
features you want to draw attention to; or any problems with the program
you know about.
Your code must COMPILE AND RUN on a W98/NT/2K/XP machine with
VC++ and glut.
YOUR CODE MUST BE ORIGINAL -- the Stevens Honors Code does apply. Plagiarized work is worth 0 credit.
Late policy No late submissions!.
Course Software
MSW98/NT/2K/XP: Microsoft Visual C++ version 6.0 under Microsoft Windows 98/2000/XP
supports OpenGL. You have to download and install GLUT.
below)
linAlgLib.h basic vector and matrix related
classes
Common Vector Classes from Cornell:
header
file and implementation
Texture mapping:
A samlpe interface RGBpixmap.h and implementation
RGBpixmap.cpp
Angel's code and materials
Some Free model convertes:
Crossroads 3D from www.icdatamaster.com and Zoltan Karpati's 3D Object Converter for Windows. .
They will do most standard formats like 3Ds, dxf, VRML, etc to C/C++ OpenGL
etc. For more look at
3Dlinks.com Converters
All homework assignments are posted and solutions must be submitted by e-mail.
- Homework 1 pdf Due 09/10/08
- Homework 2 pdf Due 10/23/08
- Homework 3 pdf Due 12/12/08
The projects can have many possible combinations of reading, research and
programming. A typical project will consist of both a program/demo and
a (short) report. The projects must meet a number of requirements. Read the descitpion of the requirements and some suggested
final projects HERE .
You can chose to follow one of the suggested default projects.
In any case you must submit a one page proposal stating the objective
of the project, what exactly you plan to accomplish, and how. I need the
proposals since I am concerned about the amount of effort a given project
will require (either too much or too little is unacceptable), and also
about the computer graphics contents of the project. The deadline for the
proposal submission is November 15, 2008.
| Software and Online Resources |
Back to Navigation
Stevens Institute, Department of Computer Science
Last Update: 09/27/08
|