CSC5870: Computer Graphics I (Fall 2011)

INSTRUCTOR: Professor Jing Hua (), 5057 Woodward Suite 14109.1

CREDITS: 3  (Course Ref. No. 16692; Section 001)

PREREQUISITES: CSC 2200 or 5050, MAT 2250. 

(NOTE: If you do not have the specified prerequisites, please talk to the instructor to see if you are prepared for this course. The prerequisites might be waived.)

 

LECTURES: 325 State Hall, Tuesday & Thursday, 6:00PM - 7:20PM

OFFICE HOURS: Tuesday & Thursday, 5:00PM - 6:00PM, or by appointment

horizontal rule

LECTURE NOTES:

I will put lecture notes here along the progress of this course. Note that these notes are intended only as a guide. I will be presenting additional material in class (figures, slides, etc.) not contained in these files.

bulletCourse Material and Lecture notes
 

PROGRAMMING ASSIGNMENTS:

Warm-up assignment (5%) Based on Programming lecture performance

Assignment 1 (25%)

Assignment 2  (25%)

Grades

Course Project

GOAL:

This course gives a comprehensive overview of the field of computer graphics, provides a deep understanding of the graphics pipeline, and demonstrates state-of-art techniques in computer graphics related fields. It aims to prepare students for graduate research and work in computer graphics. It will also be very fun to study this course.

COURSE SYNOPSIS:

This course will cover the basic concepts, mathematical foundations, fundamental theory and algorithms, software techniques, hardware and system issues, and application examples of computer graphics. The main topics will center on modeling and rendering. Finally, if time permits, we shall give a brief overview of various advanced graphics research topics.

REQUIRED TEXTBOOK:

  1. Computer Graphics with OpenGL, 3rd Edition, Donald Hearn and M. Pauline Baker, Prentice Hall, 2003.

RECOMMENDED (OPTIONAL) TEXTBOOKS:

  1. OpenGL Programming Guide, 6th Edition: The Official Guide to Learning OpenGL, Version 2.1, Addison-Wesley, 2007.
  2. OpenGL Reference Manual, 3rd Edition: The Official Reference Document to OpenGL, Version 1.2, Addison-Wesley, 1999.

OTHER SUPPLEMENTAL REFERENCES:

  1. Computer Graphics: Principles and Practice, 2nd Edition in C, James D. Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes, Addison-Wesley, 1990 (Reprinted with corrections, July 1997).
  2. Introduction to Computer Graphics, J.D. Foley, A. van Dam, S.K. Feiner, J.F. Hughes, and R.L. Philips, Addison-Wesley, 1994.
  3. Interactive Computer Graphics: A Top-Down Approach with OpenGL, Edward Angel, Addison-Wesley, 1997 (Reprinted with corrections, January 2000).
  4. 3D Computer Graphics, Alan Watt, 3rd Edition, Addison-Wesley, 2000.

LECTURES:

Primary material of this course will come from the required textbook. In addition, material from recent articles or relevant reference books will be presented. Numerous slides and video tapes on graphics will be shown. Students are advised to attend the class and follow the lecture notes closely.

GRADING SCHEMES:

This course emphasizes a "hands-on'' approach to both the better understanding of graphics theory/algorithms and the effective use of graphics techniques. Each student is required to complete assignments. The assignments involve both analytic problems as well as programming projects using parts of graphics packages. The programming projects will be done in C/C++/Java and OpenGL. You are expected to be familiar with C/C++/Java programming in this course. The two programming assignments are counted as 50% of the final grade (with 25% each). The other 50% of the final grade will be based on a written exam. Students who like more hands-on experience can also choose to do a final project (bonus 20%). There is no final exam. All the problem sets, projects, and exams are mandatory. All assignment submissions will be due at the beginning of the class. The work submitted should be your own.

COMPUTER FACILITIES:

The programming assignments will make use of Unix and PC facilities. More information about computer facilities that you can use will be updated shortly.

OPENGL PROGRAMMING GUIDE AND ENVIRONMENTS:

Most of OpenGL examples appeared in various reference books are available on-line. There are many websites that can help you to be familiar with OpenGL programming techniques in particular and computer graphics technology in general. One great place for all sorts of general information is the Official OpenGL Web Site: http://www.opengl.org. This Website contains software, documentation, FAQs, and news! It is a good place to start any search for answers to your OpenGL questions. Please note that the two OpenGL programming books (A. Programming Guide; B. Reference Manual) contain many sample examples of OpenGL. These sample codes along with Mark Kilgard's OpenGL Utility Toolkit (GLUT) can be obtained freely via anonymous ftp (file-transfer protocol): ftp://sgigate.sgi.com/pub/opengl/opengl12.tar.Z or ftp://sgigate.sgi.com/pub/opengl/opengl12.zip, depending on which decompression/extraction tools you are currently using in your computer. For the Windows/NT/X version of GLUT, you can check out the following Web page for the details: http://www.xmission.com/~nate/glut.html. In addition, Nate Robins of University of Utah has written a suite of tutorial programs that demonstrate fundamental OpenGL programming concepts and techniques. You can get the source code for these tutorials at: http://www.cs.utah/edu/~narobins/opengl.html. The above Websites mostly contain information regarding OpenGL Version 1.2. For OpenGL Version 1.1, the source code samples can be found via anonymous ftp too: ftp://sgigate.sgi.com/pub/opengl/opengl/opengl1_1.tar.Z, to uncompress and extract the files from this tar archive, please use the following commands: umcompress opengl1_1.tar, tar xf opengl1_1.tar. Other detailed information about OpenGL and its technical resources (including programming books) can also be found from SGI OpenGL home website.

COURSE TOPICS AND ORGANIZATION:

Introduction

bulletOverview, definition
bulletGraphics history
bullet2D and 3D graphics
bulletGraphics programming
bulletGraphics software and hardware systems
bulletUser-computer interface
bulletVarious application examples and areas

Graphics Device and Hardware

bulletHardware, display devices, I/O peripherals
bulletVector and raster graphics system
bulletInteraction techniques

Basic Geometry and Mathematics

bulletBasic mathematics relevant to graphics
bulletCoordinate systems
bulletPoints, lines, planes, and normals
bulletTriangles and polygons
bulletGeometric primitives
bulletCurves, and surfaces
bulletSolid and volumetric models
bullet2D and 3D geometric transformation
bulletParallel and perspective projection
bulletData structures

Scene composition

bulletCoordinate system
bullet2D and 3D geometric transformation
bulletObject hierarchies
bulletViewing and clipping
bulletParallel and perspective projection
bulletObject and image order rendering

Rendering

bulletRendering pipeline
bulletScan-conversion: lines and polygons
bulletShading/lighting (illumination models)
bulletHuman vision
bulletColor perception and color models
bulletBasic optics
bulletVisibility

Image-based techniques

bulletSampling
bulletFiltering
bulletAnti-aliasing
bulletImage analysis and manipulation

Advanced Topics

bulletAnimation
bulletTransparency and shadows
bulletTexture mapping
bulletRay tracing, radiosity
bulletImage-based rendering and modeling
bulletAdvanced modeling techniques
bulletCase studies
bulletSoftware packages
bullet............

OTHER ANNOUNCEMENTS:

Some special events such as graphics video demonstration and visitors' research presentation in graphics may be held during this semester. The instructor will make announcements here when such events happen. Other important announcements relevant to this course such as the change of assignment due dates or exam dates will also be posted here whenever necessary. Please pay attention to these announcements as we will be updating them on the daily basis.

SPECIAL NOTES:

If you have any specific concern regarding this course, you are welcome to talk with me in person.