Introduction to Computer Graphics Logo
CSU Logo

Description

This course teaches how to program a computer to generate photo-realistic images. The general idea is that if you have a scene model and a sensor model, then you should be able to create the same image that a camera would for that scene and viewpoint. Scene models include 3D object models and light sources. Objects models include descriptions of their surfaces properties, i.e. appearance. Sensor models include focal lengths, aspect ratios, etc., as well as the position and orientation of the camera. Note that this course is not about how to create 3D models, or how to use 3D modeling packages.

This course will emphasize geometric objects and transformations, perspective projections, lighting and reflectance models, shading models, 3D curves and surfaces, and fast algorithms for clipping, line drawing, and hidden surface removal. Students will become experienced OpenGL programmers, and may finally understand why linear algebra is so important.

 
Instructor:
Ross Beveridge
Office: 237 USC
Email: ross@cs.colostate.edu
Office Hours: 2-3 Wed, 10-11:30 Friday
GTA:
John Stevens
Location: W7 USC Room 200
Email: stevens@cs.colostate.edu
Office Hours: 8:00-10:00AM T/Th
    In North Lab, 3rd Floor USC.

Prerequisites

In order to understand the material in this course, you will need to have a good working knowledge of data structures such as linked lists, trees, symbol tables, and dynamically allocated structures. You will need to know how to implement these data structures in C or C++. This course will also draw on knowledge of the 2D and 3D geometry of vectors and coordinate systems, and on the use of matrix algebra for coordinate transformations. To successfully complete this course, you should be familiar with material related to the above topics covered in M229 (Matrices and Linear Equations), CS200 (Algorithms and Data Structures), and CS314 (Software Development Methods).

Text

There is one required textbook for this course:

Below are two common references for OpenGL which students may optionally wish to use. Latest editions of these are marginally better than older versions, but for much of what is covered in this course the updates are not critical.

Students are responsible for doing the assigned reading prior to the lecture in which the material is to be covered. Reading assignments are announced in class. Students in doubt about reading assignments are encouraged to ask for clarification in lecture. The readings will also be keyed to topics as the course progress web page develops over the semester.

Students may also be assigned reading in outside sources available publicly through the web. These assignments will be made if and when appropriate.

Important Dates

The following are the dates for the two midterms and the final exam. Make-up exams are only given for extraordinary circumstances (e.g., illness, death of family member). Please plan accordingly.

Event
Time and place
Midterm 1 September 28, in class
Midterm 2 November 2, in class
Final Exam December 10, 9:10 to 11:10 AM, normal classroom

Topics

The following are the basic topics covered in CS410. In keeping with the design of the textbook, many of these topics are exemplified through their use within OpenGL.

Topic Sub Topic
2D Drawing Polygon Filling
Event Handling
Clipping and Aliasing
Geometric Transformations Basic Affine Transformations
Homogeneous Coordinates
Composition of Homogeneous Transforms
Viewport Transformations
Orthographic and Perspective Projection
3D Drawing Types of Projection: Perspective, Orthographic, etc.
The Projection Pipeline
Hidden Surface Removal
Geometric Modeling Polygonal Models
Curves: Hermetian, Bezier, Splines
Surfaces: NURBS
3D Rendering

The Projection Pipeline
Hidden Surface Removal
Lighting, Color and Surfaces
Texture Mapping

Grading

There are five formally graded elements to this course. At the end of the semester the final grade will be based upon a weighted sum of points earned in each of these areas. The specific weighting is:

Element Weight
Quizzes (~5) 5 %
Essays (~2) 15 %
Project (~3) 40 %
Midterms (2) 25 %
Final Exam 15 %

There will be approximately five short, roughly ten minute, quizzes given at the start of class. These will be distributed, somewhat roughly, throughout the semester. There is a formal writing component to this class and there will be two short essays, approximately five pages, assigned. One will come early in the semester, the other toward the end. The largest single element of the course is the semester programming projects. There are typically three such projects. There are also three major written exams, two midterms and one final exam. These exams are taken in the classroom and are closed book, closed notes, etc.

Late and Makeup Policy

The following are the late and makeup policies for the course.

Midterm and Finals:
Make-up exams are only given for extraordinary circumstances.
Quizzes:
No make-ups will be given for missed quizzes.
Projects and Essays:
Unless otherwise specified, programming assignments and essays are to be submitted electronically via RamCT. Details of how this is done will appear with the first assignment. Always check the assignment page for due dates; normally, assignments are due at 11:55 PM on the due date. Late assignments submitted within 48 hours of the time required will receive a 10% late penalty. Electronic submission will be closed 48 hours after assignments are due; students not having submitted assignments after 48 hours receive an automatic zero on the assignment.

Professional Conduct

All students are expected to conduct themselves professionally. We (the instructors and GTAs) assume you are familiar with the policies in the student information sheet for the department. Additionally, you are computing professionals and should be familiar with the code of conduct for the primary professional society, ACM. You can read the ACM Code of Conduct HERE.

We work to maintain an environment supportive of learning in the classroom and laboratory. Towards that end, we require that you be courteous to and respectful of your fellow participants (i.e., classmates, instructors, GTAs and any tutors). In particular: