CS4204 Computer Graphics
Tuesday, Thursday 3:30pm - 4:45pm
McBryde 321

Syllabus


Final Exam: 10:05am - 12:05 pm, Friday December 7th, 2007, Mcbryde 321 (lecture room).

Go to class schedule (For homeworks, slides and projects)

Instructor:

Yong Cao, KWII 124, Office Hours: Tuesday and Thursday 1:30pm - 3:00pm at McBryde 133B, or by appointment.
Email: yongcao@vt.edu

Teaching Assistant:

Sean Ponce, Office Hours: Monday 12:30pm - 2:30pm and Wednesday 11:00am - 1:00pm at McBryde 133, or by appointment.
Email: ponce@vt.edu

Course Objectives:

There are two main goals of this course:

The course will provide a foundation to students who want to join industry requiring graphics programming skills, such as movie and vidoe games companies. It will also prepare enough background to help students continue on Computer Graphics research in gradudate school.

In the course, we will introduce up-to-date graphics research problems and ask students to provide simple solutions with the knowledge they learn from this course.

We will test students with homeworks and exams for their knowledge of what they learn from the course. We will also design a series of projects to provide pratical training on Graphics problem solving and programming skills.

Textbook:

hillbookcover

Computer Graphics Using OpenGL (Third Edition)

Francis S Hill, Jr.
Stephen M Kelley

Prentice Hall, 2006

Reference Materials:

Prerequisites:

CS 2604 Data Structure and File Management
or
CS 2606 Data Structure and Object-Orient Development

Projects:

There are three projects scheduled for this course. Each project is designed to build on the previous project. The goal is to provide a pratical environment to motivate students, so that they can use graphics tools to help their own research or projects.

The students can work on windows station at Computer Science open Lab or on their own Windows system. The programming environment is Microsoft Visual C++ (version 7.1, aka .NET). Here is a Guide on OpenGL setup in Micosoft Visual Studio.

Please refer to the class schedule for the due day of projects.

Grading scheme:

Homework assignments 15%
Quizzes 10%
Projects 30%
Midterm 20%
Final 25%

Ethics:

The Honor Code will be strictly enforced. It is a violation to represent joint work as your own or to let others use your work; always acknowledge any assistance you received in preparing work that bears your name. You are expected to work independently unless explicitly permitted to collaborate on a particular project. It is not a violation to discuss approaches to programs with others; however, it IS a violation to use code fragments in your program that have been written by others without acknowledging the source.


Tentative Class Schedule:

  Schedule Homework & Projects Additional Materials
Week 1
  • Introduction to Computer Graphics
  • First step into OpenGL programming (OpenGL primitives) (Slides)
Week 2
  • Glut basic (Window based programming, simple GUI, callbacks, simple 2D animation) (Slides)
  • Interaction with OpenGL (Slides)
  • GLUT tutorial
  • Read book "Interactive Computer Graphics", section 3.7 on picking.
Week 3
  • 2D Transformation, Homogeneous coordinates (Slides)
  • Scan conversion (Bresenham's Algorithm, Polygon Rasterization) (Slides)
 
  • Demo code for OpenGL picking (from "Interactive Computer Graphics" by Edward Angle)
Week 4
  • 3D Transformation, affine transformation, corrdinate system transform (Slides)
  • 3D Transformation - Continue, Project 1 review
Project 1 due on Midnight September 12th (Wednesday)
  • Demo code for 2D robot arms (as demonstrated during the class)
Week 5
  • Structure Graphics and Hierarchical modeling (Slides)
  • Viewing Introduction (viewport transformation, line clipping, OpenGL camera analogy) (Slides)
 
Week 6
  • 3D viewing (3D Viewing and projection) (Slides for two lectures)
  • 3D Viewing - Continue
 
Week 7
  • Midterm
  • Midterm Review
  • Midterm on Tuesday during class
 
Week 8
  • Vector tools for Computer Graphics (vector, dot and cross product, Line, planes, intersection) (Slides)
  • Lighting and Shading models (Light source, Phong shading model) (Slides)
   
Week 9
  • OpenGL Lighting, materials, blending (Slides)
  • Texture Mapping (Slides)
 
Week 10
  • OpenGL Mesh, vertex array and display list (Slides)
  • OpenGL Practice (Text, sound, video, multiple viewport)(Slides)
 
Week 11
  • Animation (Keyframe and Morphing)(Slides)
  • Animation (Keyframe animation)(Slides)
  • Project 2 due on midnight October 29th (Monday)
  • Project 3
 
Week 12
  • Animation (Motion transition, blending and state machine) (Slides)
  • Curve and Surface (Slides)
   
Week 13    
Week 14 Thanksgiving holiday    
Week 15
  • OpenGL Shader (Slides)
  • No class on Thursday
Project 3 due on Midnight November 28th (Wednesday)  
Week 16

Final Exam Preview (Tuesday) (Slides)

Take home final exam due by 11:59pm, Thursday, 12/13/2007