Dr. Edward L. Bosworth
Center for Commerce and Technology 443
Office Hours – Fall Semester 2004
Monday 4:00 PM – 5:30 PM
Tuesday 10:00 AM – 11:00 AM
Wednesday 4:00 PM – 5:30 PM
Thursday 12:30 PM – 1:30 PM
Friday I am not in the office on Friday
I am available to speak with students any time that I am in my office. Please note that faculty meetings are frequently scheduled for 12:30 PM on Wednesdays and Thursdays.
Wednesday 6:00 PM – 7:15 PM
Room 408 Center for Commerce & Technology
This is an introduction to three dimensional computer graphics, using OpenGL as a standard programmers’ interface. Course topics include a basic definition of the camera model, introduction to the OpenGL programmers’ interface, basic mathematics and models of graphics transformations, representation of curves and surfaces, and basic issues with viewing and shading. A number of simple programming problems will be assigned.
CPSC 2108 (Data Structures), especially an ability to
program in Microsoft Visual C++.
The math prerequisite is college algebra and a willingness to learn a bit of matrix algebra.
Interactive Computer Graphics: A Top-Down Approach with OpenGL
Addison Wesley Longman, Inc Third Edition, 2003
ISBN 0 – 201
– 77343 – 0
Second edition (copyright 2000, ISBN 0-201-38597-X) will be acceptable.
Course Objectives (Learning Outcomes)
At the end of the course the
student will be able to:
1. Give an overview of the major hardware components of a graphics
2. Explain the concepts of pixels and the frame buffer.
3. Explain the synthetic-camera model of computer graphics.
4. List the main primitives available in the API of Open GL.
5. Compare and contrast RGB color with indexed color.
6. Describe the geometric objects basic to graphics rendering, including
scalars, points, and vectors.
7. Describe the basic issues associated with coordinate systems and frames,
including rotation, translation, and scaling.
8. Explain the OpenGL transformation matrices, including those for
rotation, translation, and scaling.
9. Compare and contrast perspective projections and orthogonal projections.
10. Explain line-segment clipping and apply the algorithm to sample frames.
11. Explain hidden-surface removal, including use of the z-buffer algorithm.
12. Explain alpha-blending and apply the algorithm to sample problems.
1. Attend class
2. Complete all reading assignments and all homework assignments.
3. Actively participate in all class discussions.
4. Ask the instructor questions.
1. Give lectures on the
2. Assign timely homework that illustrates the concepts of the course,
and grade and return the homework in a timely manner with adequate explanation.
3. Give tests over the material, and grade and return the tests in a timely manner.
4. Provide a website that supports the course.
5. Provide at least four hours of office time primarily designated for assistance of
students in this class, at times expected to be convenient for the students. It is
expected that the instructor be available to the students during these hours.
This will be an in-class lecture course, taught face-to-face.
There will be a number of programming assignments involving the use of OpenGL.
Methods for Evaluating Students
The evaluation methods will include homework, a mid-term exam (or two or more quizzes), programming assignments, and a final exam.
All homework is due at the beginning of the class on the day assigned. Homework handed in after the start of class will be considered to be late. The penalty for late homework (if assessed) will be 10 points per class period. Homework submitted after the solution has been discussed in class will be returned ungraded and cannot receive credit.
Methods for Evaluating Students
Mid-Term Exam 25% (possibly February 23 or March 2)
Final Exam 30% (Wednesday, May 4 at 6:15 PM – 8:15 PM)
Assignment of Letter Grades
The method of assigning letter grades based on overall course averages is fairly standard. The basic method is described as follows:
A 90 – 100 D 55 – 69
B 80 – 89 F Below 55
C 70 – 79
Policy on Tests and Final Exams
All in-class quizzes and tests (but not the final exam) will be graded and returned on the following class period. The class meeting immediately preceding the test is devoted to review for the test, and the class period immediately following the test is devoted to return of the test and discussion of all test questions and possible answers.
For all in-class quizzes and tests (but not the final exam), the deadline for requesting a review of the grade is either two weeks after the test is returned or one week before the scheduled date for the final exam, whichever date is earlier.
Please note that a grade review will never lead to reduction of an assigned grade.
Typical Course Schedule
The course will cover the following topics in approximately this order.
1. Graphics Systems and Models
Pixels and the frame buffer.
Physical and synthetic images.
The pinhole camera and the synthetic camera model.
A typical API (Application Programmer’s Interface).
Graphics architectures: display processors and pipeline architectures.
2. Graphics Programming
Basics of polygons and polygon types in OpenGL
RGB color and indexed color.
Hidden surface removal.
3. Input and Interaction
Display lists, including text and fonts.
Event-driven input, including keystrokes and mouse clicks.
4. Geometric Objects and
Scalars, points, and vectors: mathematical and geometric views.
Lines, affine sums, and convexity.
Dot products and cross products.
Coordinate systems and frames.
Rotation, translation, and scaling.
Transformations in homogeneous coordinates.
Concatenation of transformations.
OpenGL transformation matrices.
Orthogonal and perspective projections.
Positioning the camera.
The Phong reflection model
Computation of vectors.
7. Rendering Scenes
Line clipping, including Cohen-Sutherland clipping
Other Course Policies
I do not take roll, but believe that it is important for students to attend class regularly. If you find it necessary to miss one or more classes, you are still responsible for all material covered in the class. You should notify me in advance of expected class absences to avoid late penalties on homework due on the date you miss. For more information on class attendance and withdrawal, refer to http://aa.colstate.edu/advising/a.htm#Attendance%20Policy.
Parking is a problem at CSU; for this we apologize. It is the student’s responsibility to arrive at class on-time and submit any homework before the beginning of class.
If you have a documented disability as described by the Rehabilitation Act of 1973 (P.L. 933-112 Section 504) and the Americans with Disability Act (ADA) that may require you to need assistance attaining accessibility to instructional content to meet course requirements, we recommend that you contact the Center for Academic Support in Tucker Hall, room 100 or at (706)568-2330, as soon as possible. It is then your responsibility to contact and meet with the instructor. It is also your responsibility to present the instructor with a letter from the Center for Academic Support. Without this letter detailing the required accommodations, the instructor cannot help you. The Center for Academic Support can assist you and the instructor in formulating a reasonable accommodation plan and provide support in developing appropriate accommodations for your disability. Course requirements will not be waived but accommodations may be made to assist you to meet the requirements. Technical support may also be available to meet your specific need. For more information on services and support available, refer to http://uc.colstate.edu/disability_services.htm.
Dropping The Course
We hope that you will complete the course and profit from it. If it is necessary for you to withdraw from the course during the semester, you must follow all official CSU procedures for withdrawing. It is not sufficient to notify the instructor; you must use the ISIS system and withdraw officially. For details on how to withdraw from a course, see the web page http://aa.colstate.edu/advising/w.htm#Withdrawal%20from%20a%20Course.
I would appreciate it if you were first to consult with me before starting the procedure for withdrawing from the course. In some cases, we can agree on an arrangement that will allow you to complete the course with minor adjustments.
Academic dishonesty includes, but is not limited to, activities such as cheating and plagiarism. It is a basis for disciplinary action. Collaboration is not permitted on assignments or exams/quizzes in this course. Any work turned in for individual credit must be entirely the work of the student submitting the work. All work must be your own. You may share ideas but submitting identical assignments (for example) will be considered cheating. A simple way to avoid inadvertent plagiarism is to talk about the assignments, but don't read each other's work or write solutions together. Keep scratch paper and old versions of assignments until after the assignment has been graded and returned to you. If you have any questions about this, please see me immediately.
For assignments, access to notes, textbook, books and other publications is allowed. Stealing, giving or receiving any code, diagrams, drawings, text or designs from another person (CSU or non-CSU) is not allowed. Having access to another person’s work on the system or giving access to your work to another person is not allowed. It is your responsibility to keep your work confidential, so that other students do not have access to it without your knowledge. Properly dispose of all your scratch work.
No cheating in any form will be
tolerated. The penalty for the first occurrence of academic dishonesty is a
zero grade on the assignment or exam/quiz; the penalty for the second
occurrence is a failing grade for the course. For exams/quizzes, discussion of
any kind (except with me) is not allowed.
(http://aa.colstate.edu/advising/a.htm#Academic Dishonesty/Academic Misconduct)