CS537 Intro to Computer Graphics, Fall 2008
Kamberov: Teaching

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.

Navigation

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.

  1. Explain why scan conversion is necessary. Explain Bressenham’s line drawing algorithm. [problem-solving]

  2. Describe or implement a scan-line renderer. [requirements,languages]

  3. Explain what aliasing is and how we can reduce aliasing (i.e., anti-aliasing techniques). [problem-solving]

  4. Explain homogeneous coordinates and why they are used in computer graphics. [problem-solving]

  5. Explain how to perform object transformation using homogeneous coordinates and the matrix stack. [problem-solving]

  6. Implement a program that performs object transformation (translation, rotation, scaling). [requirements,languages]

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

  8. Describe and implement a basic ray-caster using algorithms for solving intersections between rays and geometric primitives (e.g., polygons, spheres). [requirements,languages]

  9. Explain how recursion is used in a ray-tracer. [problem-solving]

  10. Describe parametric curves and surfaces, how they are represented mathematically, how to control their shape, and how to render them. [problem-solving]

  11. Explain the two basic types of illumination – diffuse and specular. [problem-solving]

  12. Implement diffuse illumination. [requirements,languages]

  13. Explain the three basic types of shading – flat, Gouraud, and Phong. [problem-solving]

  14. Explain what texture mapping is, why it is useful, and how to texture map an image onto a polygonal model. [problem-solving]

  15. Implement texture mapping over a geometric primitive (e.g., polygon, sphere, or cylinder. [requirements,languages]

  16. Explain how to render shadows using shadow volumes, ray-casting, and two-pass rendering. [problem-solving]

  17. Describe the requirements for interactive 3D graphics (e.g, framerates, 3D object manipulation, navigation in 3D). [problem-solving]

  18. Implement interaction techniques such as picking in OpenGL. [requirements,languages]

  19. Explain the principles and give examples of different approaches to hierarchical scene modeling. [problem-solving]

  20. Implement a scene-independent rendering engine using a hierarchical scene models, for example using scene graphs. [requirements,languages]

  21. Explain the main issues arising in collision detection and processing. [problem-solving]

  22. Explain the different approaches to rendering shadows, transparency, and reflections. [problem-solving]

  23. Implement object reflections on planar surfaces using specialized buffers. [requirements,languages]

  24. Implement real-time rendering of transparent objects using color blending. [requirements,languages]

  25. Implement projected shadows. [requirements,languages]

   Navigation

Prerequisites    Navigation

  • CS 385 or CS 182
  • Good programming skills in C/C++ are essential!
  • Knowledge of linear algebra and some calculus is critical.

Required Texts:    Navigation

  • 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

 


Syllabus    Navigation

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:    Navigation

Assignments 1 (20%), and 2, and 3 (22%)
Project: 36%
 

Programming assignments:     Navigation

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    Navigation

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

  • Homeworks  

    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

    Final Project:

    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
       NavigationBack to Navigation




    Stevens Institute, Department of Computer Science
    Last Update: 09/27/08