Fall 2008 CS 4361 - 001

Computer Graphics

Monday and Wednesday 2:30pm - 3:45pm, ECSS 2.412

Instructor :

(Tiger) Xiaohu Guo
Office: ECSS 3.703
Phone: 972-883-4723
Email: xguo at utdallas.edu
Office hours: M/W 4:00pm - 5:30pm

TA :

Yin Yang
Email: yxy061100 at utdallas.edu
Office: TBA
Office hours: TBA

Pre-requisites :

Formal prerequisites for this course are MATH 2418 (Linear Algebra), CS 2315/CS 2336, and CS 3345. You should have some familiarity with basic linear algebra and geometry, and good working knowledge of C/C++ programming.

Course Description :
This course gives a comprehensive overview of the field of computer graphics. It 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. If time permits, we shall give a brief overview of various advanced graphics research topics.
Learning Objectives :

After successful completion of this course, the students will be able to:

  • Explain general concepts related to 2D and 3D graphics
  • Be familiar with mathematical tools for graphics algorithms and graphics hardware
  • Understand the graphics pipeline, including transformation, projection, lighting, etc.
  • Use OpenGL as a tool for creating graphic scenes
  • Use texture mapping and environment mapping to improve quality of scenes
  • Be well prepared for graduate research or work in computer graphics
Textbooks :
  • Required: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 2.1 (6th Edition), Addison Wesley, 2007. ISBN: 0321481003. (VERY useful for OpenGL-based programming assignments and projects.)
  • Suggested: Interactive Computer Graphics: A Top-Down Approach using OpenGL (5th Edition), by Edward Angel, Addison Wesley, 2008. ISBN: 0321535863. (Most of the contents in this book will be covered in class.)
Grading Policy :

There will be No Midterm Exams and No Final Exams! The final grade will be based on lab sessions, programming assignments, project proposals, demos, and presentations. 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 four assignments and a final project. The programming assignments and projects will be done in C/C++ and OpenGL. You are expected to be a competent programmer in C/C++ in this course. All the assignments and projects are mandatory. The final grade will be composed of the following two parts:

  1. Programming Assignments: 55%
    - Assignment 1 (10%)
    - Assignment 2 (15%)
    - Assignment 3 (15%)
    - Assignment 4 (15%)
  2. Final Project: 40%
    - Project Proposal (10%)
    - Final Demo, Presentation and Report (30%)
  3. Class Attendance : 5%
Class Attendance :

I expect the students to come to class, read and study the materials and textbook. Download and print available materials from WebCT prior to coming to class. The class schedule specifies the chapters to read for each topic covered. 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 clips on graphics will be shown. Students are advised to attend the class and follow the lecture notes closely. It is the studentí»s responsibility to check what we covered in class and the announcements during class if he or she did not attend.

OpenGL Programming Guide and Environments :
Academic Honesty :

Copying source code from another student in this class or obtaining a solution from some other source will lead to an automatic failure for this course and to a disciplinary action. Allowing another student to copy one's work will be treated as an act of academic dishonesty, leading to the same penalty as copying. You should learn how to protect your data. Failure to do so is also unprofessional and it may expose you to the danger that someone will copy your homework and will submit it as his or her own (see above). In this case, you may be given a score of 0 for the assignment or project in question (and the other party will get a failure).

Class Schedule :
Week Monday Wednesday
1 8/25: Introduction 8/27: OpenGL basics
2 9/1: no class (Labor Day) 9/3: OpenGL/GLUT basics
3 9/8: Lab session 9/10: OpenGL/GLUT basics
4 9/15: Lab session (Assignment 1 due) 9/17: Transformation
5 9/22: Transformation 9/24: Viewing/Projection
6 9/29: Lab session 10/1: Viewing/Projection
7 10/6: Lab session (Assignment 2 due) 10/8: Viewing/Projection
8 10/13: Lighting/Shading (Project Proposal due) 10/15: Lighting/Shading
9 10/20: Lab session 10/22: Rasterization
10 10/27: Lab session (Assignment 3 due) 10/29: Texture
11 11/3: Texture 11/5: Texture
12 11/10: Lab session 11/12: GPU Programming
13 11/17: Lab session (Assignment 4 due) 11/19: Ray Tracing
14 11/24: Radiosity 11/26: no class
15 12/1: Hierarchical Modeling 12/3: Physics-Based Modeling
17 12/15: Fina Presentation and Demo  
  • Important: The dates in this schedule may change due to the class level. If the class needs more time and examples to understand a concept I will modify the schedule. If the class is ready to skip a chapter or go faster I will modify the schedule. Therefore, it is the student's responsibility to check what we covered in class and the changes in the schedule announced during class.
Final Project Screenshots from the Fall'08 Class :
Pew Pew Fly Fly: A Space Adventure :
Star Wars :
Terrain Generator and Render :
Landscapes :
The City Block at Night :
Chessboard :
Solar System :
CityScape :