-
-
Instructor:
-
Kobus Barnard,
Gould-Simpson 730
Office Hours: Thursday, 10:00-11:00, Friday 2:00-2:54, by
electronic signup.
Email: kobus @ cs.arizona.edu    (remove blanks around the @)
-
Teaching Assistant
-
Amy Platt
Office hours: TBA
Email: platt @ cs.arizona.edu    (remove blanks around the @)
-
Graphics Machines in GS 930:
-
Students are welcome to make use of the graphics lab in GS 930. There are
currently 8 workstations which are largely available for this course this
semester. The hostnames are (gr01-gr08).cs.arizona.edu.
-
Prerequisites:
-
C SC
342
,
C SC
352
,
Math 215
-
Recommended text:
-
The text book is recomended by not required. The course content will be on-line.
Many students will find it helpful to refer to a text, and the choice listed
below is comprehensive yet friendly. However, it is possible to get through
this course without buying the book.
- Hearn and Baker. Computer graphics , Pearson Prentice Hall, 2004.
-
Other books that my be useful (I have copies that I can lend):
-
- J.D. Foley, A. van Dam, S. Feiner, J. Hughes, and R.
Phillips. Introduction to Computer Graphics. Addison-Wesley (1994).
(this text has been used for this course a number of times; some of the
approaches in the notes have their roots in this book).
- J.D. Foley, A. van Dam, S. Feiner, J. Hughes. Computer Graphics:
Principles and Practice. (standard reference, non-abridged version of
the above)
- Alan Watt, 3D computer graphics, 3rd Ed., Addison-Wesley,
0-201-39855-9. Highly recomended, but somewhat advanced.
- Edward Angel. Interactive Computer Graphics: A top down approach with
OpenGL. (friendly introduction, good for learning OpenGL and graphics
together).
-
Overview:
-
Computer graphics is the art and science of creating digital images from
abstract computer encoded models. We will consider both the reduction of
models to images (rendering) and model creation (modeling). We will also touch
upon issues for both these aspects when sequences of images are to be created
(animation).
This course will focus on fundamentals. We will make extensive use of basic
linear algebra and geometry. A sound understanding of using matrices to
represent transformations will be very helpful. You should be comfortable
thinking about problems such as: Given a point, is it in the plane of a polygon?
If so, and if the polygon is convex, is the point inside the polygon? I will go
over the requisite math as it arises, but if you are not confident with your
background, you may wish to contact the instructor to discuss it.
This course will have a heavy programming component. Assignments must be
written in either C or C++ and must compile and run on linux.
This course will have both graduate and undergraduate students (including honors
students). Graduate students will have additional requirements for assignments
and on exams. It is possible for grad students to negotiate exchanging research
oriented project work for assignments. In this case, depending on what it is
that you wish to do, the requirements might resemble those from the
Fall 2004 version of the course
.
-
Topics:
-
This is a very tentative outline of the material to be covered. The topics and
their depth will be adjusted as needed. In parenthesis I have put an estimate
of the number of lectures that will be used for that general topic area. There
are 29 lectures in this term. I have left the equivalent of 3 lectures for
quizes and review/assignment issues, 1 for a non-testable bonus lecture, and 2
for important topics I have forgotten and/or schedule slippage.
If you want to see more details about what the course is like, you may wish to
look at the slides from
last year
. We will likely cover the topics in a
slightly different order this term, and there will be some modifications,
but there will be perhaps 90% overlap with the material covered last term.
- Course orientation. Introduction to graphics. Math preview. Graphics
primitives. Introduction to OpenGL. Event processing via callbacks for
interactive graphics programs. How images are made to appear on computer
monitors (3).
- Basic algorithms for drawing lines, anti-aliasing, filling polygons, etc. (2).
- 2D Clipping (1).
- 2D transformations. Mapping to view-port. Homogeneous coordinates (2).
- 3D transformations (1).
- Projecting from 3D to 2D, 3D clipping (3).
- Basic color, shading and surface models (Lambertian, Phong) (1).
- 3D visibility (back plane culling, Z buffer, ray casting, etc) (2).
- Ray tracing (1).
- Modeling basics. Hierarchical modeling;
Introduction to constructive solid geometry (2).
- Shading and surface models revisited, Color, Gouraud shading, Radiosity (3).
- Curves and curved surfaces. Fractals (2).
- Animation (1).
-
Grading:
-
Assignments: 60%
Quizes: 15%
Final: 25%
A cumulative percentage of 90% guarantees an A, 80% guarantees a B, 70% a C, and
60% a D. Depending on overall class performance, these lines may be lowered a
bit (possibly differently for 433 and 533).
-
Assignments:
-
There will 5-8 programming assignments, and 0-2 written assignments. The written
assignments may overlap the programming assignments in order to give students
lots of time for the former. Some of the written assignments may be optional.
Programming assignments will be handed in electronically, and thus will be time
stamped. Material to be submitted will include source code, a makefile, an
executable, and likely other files as explained in the instructions for each
given assignment.
The programs must build (and the executable must run) on Linux. The
installations available on the CS graphics machines (gr01-gr08) will be used as
reference systems for submitted material. If programs are developed elsewhere,
or on other OS's, they should be checked on these machines before being handed
in.
The programming assignments are designed to both provide experience in writing
interactive graphics software, and to help students learn specific theoretical
material.
-
Exams:
-
There will be between 4 and 8 "pop" quizes, and one final. There will be no
midterm. Quizes will be given at the begining of lecture on random,
unnanounced days. The quizes and exams will include material
which is not part of the programming assignments. Some form of limited notes
will be allowed for the final exam (exact format to be announced). Grads and
U-grads will share the final exam (not necessarily all questions), but grads
will be required to do more of it to achieve the same grade.
-
Policies:
-
Attendance will be noted, and can affect your grade. (Extreme absenteeism may
result in E-mail asking if you would like to be removed from the course with the
default non-reply answer being "yes"). Students are responsible for all material
presented in class. Class notes and slides will be made available, but these are
only an overview of the material--some details will only be presented in class.
Exams must be attended at their appointed time unless you have permission in
advance to do otherwise. This means that if you will be away, and there is a
possibility of a quiz that day, you must let me know in 48 hours in
advance by E-mail.
Assignment late policy: Late assignments will be accepted with penalty until
five days late. From that point onwards, assignments will not be accepted. This
is a matter of courtesy to your TA. The late penalty is 10% per day.
Some attempt will be made to detect violations of the University of Arizona's
academic integrity
policy.
Specifically, exams and written assignment must be the sole work of the student.
Students may help each other with the problem analysis and general strategies
relevant to the programing assignments, but detailed help or code sharing is not
permitted. All code in programming assignments will be assumed to have been
written by the student (or student team) unless attribution is given. An
obvious exception to this rule is sample code which has been provided by the
instructor for this course through the course web page tree. Such code does not
require attribution (we know where it came from). It is also permissible to
include with attribution code from external sources provided that the
code is published, has not been solicited, and was not written for course
requirement for this or a similar course given elsewhere.