|
|
Unofficial - Paper syllabus from class is official (in
case of discrepancies, the paper syllabus's wording is final).
TR 3:55-5:15 (in TH N 308).
Introduction to interactive graphics including historical perspectives, hardware,
display rendering, 2D and some 3D algorithms, modeling, and geometric transformations.
CS 545 provides the foundation for study of computer graphics. Note: the CS
645 course covers 3D graphics - while this 545 course provides the foundations
for computer graphics.
MA 244 (or equivalent) and good proficiency in C or C++. Also, at least enough
familiarity with Linux to test a program.
Dr. Tim Newman
Office: TH N 364
Phone: 824-6619
Email: tnewman@cs.uah.edu
MTWRF 11:00-11:55 am
M 3:30-5:00 pm
or call or email for appt.
On some Fridays, office hours won't be held, so check first to be sure I'll
be in
Computer Graphics with Open GL, Third Edition by D. Hearn and
M. Baker, Prentice Hall (ISBN 0-13-015390-7).
Supplemental (OPTIONAL) Texts:
Tcl and the Tk Toolkit by John K. Ousterhout, Addison-Wesley, 1994.
OpenGL Programming Guide, Third Edition by M. Woo, J. Neider, and T.
Davis, Addison-Wesley: New York, 1999 (ISBN 0-201-60458-2). (Note: Second
Edition also okay, ISBN 0-201-46138-2). NOTE: This book has an on-line
errata sheet.
Computational Geometry for Design and Manufacture, by Faux
and Pratt (should be on reserve at UAH Library).
Principles of Interactive Computer Graphics by W. Newman and
R. Sproull (should be on reserve at UAH Library).
The final grade will be composed of the following weights. The instructor reserves
the right to make changes to this system, including the addition of an unannounced
quiz.
Activity
|
Total Points
|
Mid-term Examinations (2)
|
200
|
Projects (5 or 6)
|
190
|
Final Exam
|
120
|
Homeworks, Reports, and Participation
|
25
|
Grand Total
|
535
|
The final scale (assuming 535 total pts.) will not be stricter than
the following:
485 pts. for a 4.0.
435 pts. for a 3.0.
385 pts. for a 2.0.
355 pts. for a 1.0.
The University allows the awarding of ``plus'' and ``minus'' letter
grades. It is the intention of the instructor to use the plus/minus grading
system.
There will be two mid-term examinations, each worth 100 points. These exams
are scheduled for Thursday, February 12 and Thursday, March 18. The comprehensive
final is Tuesday, May 4, from 3:00 to 5:30 pm.
There will be at least 5 and possibly 6 programming assignments in this course.
(Please note that the last program will be due in the last week of the class.)
Assignments will typically be made bi-weekly and take between 10 and 20 hours
to complete, depending on your proficiency, efficiency, and the amount of extra
features you attempt. No due date extensions can be granted; be sure to turn
in what you have by the start of class on the due date.
Final source code for programs should be submitted electronically (more details
will be included in the first assignment). A printed listing must also be handed
in. The submitted programs must compile and execute correctly using OpenGL
and GLUT on the Linux workstations in the Laser Lab. Please note that I will
test the programs on the Department's Linux boxes and the programs must work
correctly on those machines to receive full credit. Please test your program
on the machines that I will test them on! The programs are expected to contain
reasonable documentation (including commenting program organization, key functions
(methods) /classes, variable names, etc.). Additional details about the programming
assignments will be included with the first programming assignment instructions.
One program may use Tcl/Tk.
Please note that program development is possible via remote Internet
access to the Linux boxes. Also, certain lab PCs are dual-boot machines,
and can be booted under Linux with X-windows. Your own linux machine
can be used directly for initial development, although if your Linux
machine doesn't come with OpenGL, you may need to install Mesa and GLUT
locally. (Mesa is a freeware OpenGL mimic and is available for Macs,
PCs under both Windows and Linux, and Unix workstations. ) Alternately,
your Linux box can be used to telnet to a lab Linux machine with X windows
output redirected to your box. Potential telnet accesses include the
machines linux, whirlwind, crusader, marauder, shrike, etc. It's also
possible to develop the programs under Windows, but programs will be
tested under linux.
Programs are to be written in C/C++ and should use the graphics library
specified on the programming assignment. We will probably use OpenGL
coupled with GLUT for all programming assignments.
The programs are expected to contain reasonable documentation (including acceptable
structure, variable names, etc.).
Mesa and Tcl/Tk are all public-domain packages that will generally run
with minor porting corrections on Unix (including Linux), Macintosh,
and Windows platforms.
OpenGL Overview Blurb
OpenGL Architecture Blurb
OpenGL Basics FAQs
OpenGL Windows and Mac Info
OpenGL Primer
OpenGL Man Pages (v1.0) (a little primitive, but usable!)
GLU Man Pages (v1.0) (a little primitive, but usable!)
GLUT 3.7 Distributions and Info (page down for binaries)
GLUT Man Pages - links to PS files (a little primitive, but usable!)
GLUT FAQs
Mesa Frequently Asked Questions (FAQ)
Mesa User's Guide (old - may be too out-of-date)
OpenGL Fundamentals (1.1 Spec in HTML)
OpenGL Fundamentals (1.4 Spec in PDF)
OpenGL and GLUT set-up on PCs (thanks David Krum!)
A few homeworks will be assigned.
All work, unless otherwise indicated, will be due at the start of class on
the due date. You are responsible for all material covered in the lecture,
so it is in your best interest to attend each class. Also, active and effective
participation in the class will be considered for part of your grade. The
instructor should be notified in advance of absence. Crisis (with documentation
acceptable to the instructor) or one week's prior notice (with acceptable
justification and documentation) required for consideration of exam make-up
(consideration will be made on a case-by-case basis). Generally, no late
work will be accepted, however. All program listings, papers, homework, and
report(s) are due at or before the start of the class on the due date. If
you will be absent, please arrange to submit your work early in person or
by proxy. Electronic submissions of program sources must be received by instructor
by 3:50 pm of their due date.
The University policy on academic honesty is quite strict. This policy is discussed
in the Code of Student Conduct. The instructor's academic honesty policy is
very strict; dishonesty will be penalized, for example, by failure of the course
(in addition to any University penalties). Collaboration with other students
on programming assignments is regarded as academic dishonesty. Copying code
(even a portion of some code or following an approach similar to that followed
by the code of others) is academic dishonesty (and plagiarism). It is inappropriate
no matter what the source of the code - whether the source be from email, from
the net, from a friend, a book, or any other source. It is unprofessional and
dishonest to submit someone else's work as your own. Please, do not use other's
code in your program unless you have received clear instructor approval in
advance AND you document your source. Projects are NOT group efforts; they
are individual efforts designed to enhance your problem-solving. For assistance
on the programs, please seek help during my scheduled office hours or via email.
All work submitted must be the student's own work!} Some of the lab TAs also
may be able to help in debugging your code. Other sorts of interaction with
lab TAs regarding programming assignments are inappropriate.
Week 1
Introduction, History, OpenGL (Ch. 1, 2.8, 2.9, 3.1, 3.2, 11.6)
Week 2
Open GL, Basic Drawing Mech., Lines (Ch 3.3-3.5)
Week 3
Line and Circle Gen. and Region Fills (Ch. 3.8-3.9, 3.14-3.16)
Week 4
Regions and Pattern Fills (Ch 4.10-4.13, 3.18-3.19)
Week 5
Characters (Sect. 3.20-3.21) and Test 1
Week 6
States and Color Models, Animation I (Ch. 4.1-4.3, 13.1)
Week 7
2D Transf. (Ch. A.5, 5.1-5.8)
Week 8
3D Transf. and 2D Viewing (Ch. 5.9-5.17, 6.1-6.4 )
Week 9
Line and Polygon Clipping (Ch. 6.5 - 6.8)
Week 10
3D Viewing (Ch. 7.1-7.9) and Test 2 ( Mar. 13)
Week 11
BREAK
Week 12
3D Viewing and GUIs (Sect. 11.8, Handouts)
Week 13
Tcl/Tk, Parametric and Vedtor Forms (Ch A.2, A.9)
Week 14
Break and Spline Curves (Sect. 8.8-8.10)
Week 15
Fractals (Sect. 8.23) and Devices (Ch. 2.1-2.5)
Week 16
Devices (Ch. 11.2)
Week 17
FINAL (May 4)
If time:
Anti-Aliasing (Ch. 4.17) |
|
|