- Instructor:
*Dr. David Breen* - E-mail: david_AT_cs.drexel.edu
- Office: University Crosings 114
- Office Hours: Tues 4:00-5:30
- Class Hours: Thurs 6:00-8:50
- Class Location: University Crossings 153
- Phone: (215) 895-1626
- Teaching Assistant:
*Jasper Zhang* - E-mail: jzz22_AT_cs.drexel.edu
- Office: University Crossings 147
- Office Hours: Tuesday, 4:00 → 6:00; Friday, 3:00 → 5:00

- Introduction to Computer Graphics, by James D. Foley, Andries van Dam, et al. Addison-Wesley Pub Co, 1994; ISBN: 0201609215

- Fundamentals of Computer Graphics, 2nd ed., by Peter Shirley et al., AK Peters, 2005, ISBN: 1-56881-269-8
- The Essentials of CAGD, by Gerald Farin and Dianne Hansford. AK Peters, 2000; ISBN: 978-1568811239

It is University policy that you read your official Drexel email; it is the course policy that you read it at least once per day.

Computer Graphics represents a vast technical field,
ranging from mathematics and geometry topics to computer hardware and
software engineering topics to rendering, animation and virtual
reality, far more than can be comprehensively covered in a 10 week
term. Computer Graphics I is designed to provide students with an
introduction to the fundamental algorithms of computer graphics
through detailed coverage of the mathematics and implementation of
2D and 3D line, curve and surface drawing. The
course culminates with a focus on 3D viewing
and visible surface algorithms.

Students are required to have taken CS260
(Data Structures), CS 350 (Software Design)
and Math 201 (Linear
Algebra). You will find this course extremely difficult if you do
not have strong (B or better) linear algebra skills. Minimal review of
linear algebra will be given in this class. Students are assumed to
have excellent knowledge of programming. Students can use whatever
programming language they wish (C, C++, Java, etc.) for the
assignments in this class with the following caveat: you will need to
turn in both source code and a makefile for testing and
evaluation. Code must run as a single
command-line process on the CS Department's Linux (tux) computers, or
possibly on a MacOS X computer, without needing special libraries.
Arguments passed to the
command-line will parameterize assignments; hence you'll need to
read command-line arguments (argc, argv) and parse input files. This
course is mathematically intense and implementationally challenging.
You will be required to implement complex data structures and
mathematical calculations as
a regular part of your assignments.

**Course Grading Scheme**

### Graduate Students

### Undergraduate Students

*I intend to use the standard grading scale of 100→ 90 (A), 89→ 80 (B),
79→ 70 (C), 69→ 60 (D), else (F).*

Also note that incompletes will not be given for this course.

**Assignments**

- Assignments (80%)
- Presentation (10%)
- Final exam (10%)

- Assignments (85%)
- Final exam (15%)

Also note that incompletes will not be given for this course.

Students __must__ work on the assignments __
individually__. No geometry or graphics libraries may be used in the
homework assignments.

**Presentation**

### Presentation Schedule

**Examinations**

**There will be a final exam on the material from class that is
NOT covered by the regular assignments.**

This includes the material presented by the graduate students.

1 point per day (max of 5 points) will be deducted
from late assignments.

You will be given a grade of **0** if an assignment is not
turned in by the last day of classes.

The programming assignments should be submitted on the class WebCT page before 11:59 PM on the due date.

*Note:* If the TA or instructor finds strong evidence of cheating
on assignments and/or the final examination, the student(s) involved
will receive an "F" in the course, and a memo describing the cheating
will be added to their student record. Be very careful, it is not
worth the risk.

*Note: *Your source code for all programming assignments will be
run through a plagiarism detection system. This program uses compiler
techniques, which are invariant of syntax and style. If you are
sharing/borrowing code with other classmates (from this or previous
years), you will get caught.

- Assignment 1 (Draw clipped lines) - Due October 14

- Assignment 2 (Sutherland-Hodgman polygon clipping) - Due October 28

- Assignment 3 (Draw clipped, filled polygons) - Due November 11

- Assignment 4 (Draw 3D lines) - Due November 26

- Assignment 5 (Z-buffer rendering) - Due December 7

- Extra Credit Assignment (Bezier curve drawing) - Due December 7

Every graduate student will make a 10 minute
presentation based on a research paper from the

SIGGRAPH Proceedings
or the
Seminal
Graphics Collection.

Students should choose a paper from 1995 or earlier on a subject that
will not be covered in class by Professor Breen.

If you are not on a drexel.edu computer you will have to access the papers through the Drexel Library by clicking on "ACM Digital Library" -> "Proceedings" -> "SIGGRAPH".

- October 11 - Mark Dane
- S. Molnar, J. Eyles, and J. Poulton, "PixelFlow: high-speed rendering using image composition," (Proc. SIGGRAPH) Computer Graphics Vol. 26, No. 2 (July 1992) pp. 231-240
- Presentation slides
- October 18 - Linge Bai
- K. Sims, "Artificial evolution for computer graphics," Proc. SIGGRAPH '91 (July 1991) pp. 319-328
- Presentation slides
- October 25 - John Novatnack
- G. Turk and M. Levoy, "Zippered polygon meshes from range images," Proc. SIGGRAPH '94 (July 1994) pp. 311-318
- Presentation slides
- October 25 - Dan O'Callaghan-Horn
- M. Raibert and J. Hodgins, "Animation of Dynamic Legged Locomotion," Proc. SIGGRAPH '91 (July 1991) pp. 349-358
- Presentation slides
- November 1 - Noah Kuntz
- N. Burtnyk and M. Wein, "Interactive Skeleton Techniques for Enhancing Motion Dynamics in Key Frame Animation," Communications of the ACM, Vol. 19, No. 10, pp.564-569, 1976
- Presentation slides
- November 8 - Maria Pace
- November 15 - Kanwarpreet Sethi
- P. Haeberli, "Paint By Numbers: Abstract Image Representations," Proc. SIGGRAPH '86, 1986, pp. 207-214
- Presentation slides
- November 15 - Duc Nguyen
- C.W. Reynolds, "Flocks, Herds and Schools: A Distributed Behavioral Model," Proc. SIGGRAPH '87, 1987, pp. 25-34
- Presentation slides
- November 29 - Patrick Smith
- November 29 - Mike Brennan

This includes the material presented by the graduate students.

Week 1 (September 24 - 28)

- Reading Assignment
- Foley et al.: Chapter 1, 3.1, 3.2, 3.9
- Shirley et al.: Chapter 1, 3.5, 12.1→12.3
- Farin and Hansford: Chapter 1

- September 27 - Lecture :
Introduction 6 per page

- September 27 -
Lecture:
Lines 6 per page

- XPM Manual

- Reading Assignment
- Foley et al.: Chapter 5
- Shirley et al.: 2.1→2.4, Chapters 5 and 6

- October 4 -
Lecture:
2D-Transformations 6 per page

- October 4 -
Lecture:
3D-Transformations 6 per page

- Reading Assignment
- Foley et al.: 3.3→3.6, 3.10, 3.11, 9.1
- Shirley et al.: 2.11, 3.6
- Farin and Hansford: Chapter 2

- October 11 - Lecture: Polygons 6 per page
- October 11 - Lecture: Circles 6 per page

- October 14 - Assignment 1 Due

- Reading Assignment
- Foley et al.: 9.2→9.2.3
- Shirley et al.: 2.5, 2.6, 2.8, 2.10, Chapter 15
- Farin and Hansford: Chapters 3, 4, 5 & 9

- October 18 - Lectures:
Introduction To Curves 6 per page

- October 18 - Lecture: Bezier 6 per page

- Reading Assignment
- Foley et al.: 9.2.4→9.2.8
- Farin and Hansford: Chapters 10 & 11; 13.1→13.6

- October 25 - Lecture: Bsplines and NURBS 6 per page
- October 25 - Lecture: Drawing NURBS 6 per page
- October 28 - Assignment 2 Due

- Reading Assignment
- Foley et al.: 3.7, 3.14, 6.1→6.4
- Shirley et al.: 3.7, Chapters 4 and 7

- November 1 - Lecture: Introduction to 3D Viewing 6 per page
- November 1 - Lecture: Math of 3D Viewing 6 per page

- Reading Assignment
- Foley et al.: 6.5→6.7, Chapter 11
- Shirley et al.: 3.1→3.4, Chapters 19 and 20

- November 8 - Lecture: Thick Primitives 6 per page
- November 8 - Lecture: Color 6 per page
- November 11 - Assignment 3 Due

- Reading Assignment
- Foley et al.: 13→13.4, 9.3, 9.4
- Shirley et al.: Chapters 8 and 10, 2.7, 2.9, 12.5, 13.1→13.3
- Farin and Hansford: Chapters 6, 7 & 12; 13.7→13.8

- November 15 - Lecture: Culling, Z-Buffering and Ray Tracing 6 per page
- November 15 - Lecture: Surfaces 6 per page

- November 26 - Assignment 4 Due
- Reading Assignment
- Foley et al.: Chapter 10

- November 29 - Lecture: Subdivision Surfaces and Solid Modeling
- November 29 - Lecture: Solid Models 6 per page

- Reading Assignment
- Foley et al.: 9.5

- December 6 - Lecture: Fractals 6 per page
- December 6 - Lecture: Level Set Models 6 per page
- December 7 - Assignment 5 Due
- December 7 - Extra Credit Assignment Due

File last modified on December 6, 2007.