Text:
Computer Graphics: Principles and Practice, 2nd Edition in C by
Foley, van Dam, Feiner and Hughes
Bulletin Board:
git.cc.class.cs4451
The Teaching Assistant will read the class bulletin board at least once
every 60 hours. All questions concerning assignments should be asked
through the bulletin board first.
Teaching Assistants:
Programming:
You will write 3-4
programs for this course. All programs must be written in C/C++.
Documentation will count as 20% of the grade for each program.
Compiling and executing without errors on the published test data is considered minimal competency for any program. Late programs will be penalized 3n-1 points where n is the number of days late. NO ONE will get an incomplete because they neglected to turn in programming assignments.
You may discuss high
level design strategies and specifications of the assignments with other
students in this class. However, your programs (and homework)
are to represent your own work. All coding and detailed algorithm
design decisions are to be made without consultation with others.
Grading:
Programs
40%
Quizes (2)
30%
Final Exam
30%
Quizzes
Computer Accounts
All programming
assignments will be tested on an SGI. You may use a PC, but you must make
sure that your program can compile and run on an SGI. The SGI
cluster on the first floor in CCB is available to you if you already
have a College of Computing account. If you are not a College of
Computing student and do not have an account, please apply for an
account in room 213 of CCB.
Getting Started
In this course,
programing will be done in C/C++. We will use the OpenGL and GLUT libraries
for basic graphics and windows programming. You will find the following
links helpful:
Programs and Assignments
If you don't have a CoC account, you need to go to outside of Rm. 213 (CoC) and fill out a form and submit it. The tray holding the forms is right outside of the door (Peter Wan's Office), and the bottom tray is the submission tray
Assignment # 1 Click here for the input files used to test your work. 12345 I highly suggest you test your code to make sure I graded yours properly.
Assignment # 2 *Hints for this assignment are located as a link off of the assignment page.
Assignment # 3 *Be sure to read all instructions - some things have changed since last assignment.
Assignment
# 4 - Implement a Ray Tracer
Submitting Programs
The source code
must be emailed as an attachment. All assignments are due at the start
of class on the due date. Submissions after class begins will be considered
late. All programs will be tested on an SGI. You may use a PC, but you
must make sure that your program can compile and run on an SGI. Use the
Makefile provided by the TA to compile your program on the SGI. Your name
must be included in the header of the source code as comments.
Course Topics and Notes
| Topic | Reading Assignment in Textbook |
| Raster Graphics Hardware | Chapters 1 and 4 |
| Lines, Circles, and Simple Antialiasing | 3.1, 3.2, 3.3, 3.17 |
| Polygons | 3.5, 3.6, 3.8, 13.1.2 |
| 2-D Transformations | 5.1, 5.2, 5.3 |
| Windows, Viewports | 5.4, 5.5 |
| Clipping | 3.11, 3.12, 3.14 |
| 3-D Math Review | 5.6, 5.7, 5.8 |
| Basic Modeling | 11.1, 11.2 |
| Projections | Chapter 6 |
| Visible Surface Determination | 15.2, 15.4, 15.5, 15.6 |
| Illumination | 16.1, 16.2 |
| Smooth Shading | 16.1, 16.2 |
| Intersection Algorithms for Ray-tracing | 15.10.1 |
| Reflection and Refraction | 15.10.2 |
| 3D Clipping | 6.5.3 |
| Bounding Volumes for Ray-Tracing | |
| Color | 13.2-13.5 |
| Quaternions | page 1063 |
| Ray-Tracing Quadric Surfaces | |