CIS 736: Computer Graphics

Spring 2000

 

Hours: 3 hours (extended course project option for 4 credit hours: 3 of CIS 736, 1 of CIS 798)

Prerequisite: First undergraduate course in computer graphics (any of CIS 636, ECE 636, or equivalent coursework in interactive graphical interfaces) or basic linear algebra or instructor permission

Textbook: Computer Graphics: Principles and Practice, Second Edition in C, J. D. Foley, A. vanDam, S. K. Feiner, and J. F. Hughes. Addison-Wesley, 1996. ISBN: 0201848406

Venue: Wed 15:30-16:20 (3:30 – 4:20pm), Fri 15:30-17:10 (3:30 – 5:10pm), Room 152 Durland Hall

Instructor: William H. Hsu, Department of Computing and Information Sciences

Office: 213 Nichols Hall        URL: http://www.cis.ksu.edu/~bhsu E-mail: bhsu@cis.ksu.edu

Office phone: (785) 532-6350                Home phone: (785) 539-7180                             

Office hours:

In classroom: before class (2:30-3:30 W, 3:15-3:30 F); after class (4:20-4:40 W, 5:10-5:25 F)

At office: 1-1:30pm, 2:30-3pm Friday; by appointment

Class web page: http://ringil.cis.ksu.edu/Courses/Spring-2000/CIS736/

 

Course Description

 

                This course provides intermediate background in computer graphics for graduate and advanced undergraduate students. The first part of the course will focus on basic principles of graphics display systems (clipping, line drawing, 3D graphics data structures, splines for curve and surface interpolation, and illumination models). The second part of the course will survey fundamental topics in realistic rendering (ray tracing, radiosity, texture and bump mapping), animation, and several advanced topics of interest, including fractals and scientific and information visualization.

 

Course Requirements

 

Homework: 6 programming and written assignments (25%)

Paper reviews: 4 written reviews (1-2 pages) of short (10-15 page) research papers (15%)

Examinations: 1 midterm (15%), 1 final exam (20%)

Computer language(s): C/C++ and Java (either permitted for term programming project); Open GL, other graphics libraries and packages (e.g., Kinetix 3D Studio MAX) to be taught and used

Project: term programming project for all students (25%); additional term paper or project extension option for graduate students and advanced undergraduates

 

Selected reading (on reserve in K-State CIS Library):

 

·          Recommended text: Computer Graphics, Second Edition (C Version), D. D. Hearn and M. P. Baker. Prentice-Hall, 1997. ISBN: 0135309247

·         Readings in Information Visualization: Using Vision to Think, S. K. Card, J. D. MacKinlay (editor), and B. Schneiderman (editor). Morgan Kaufmann, 1999. ISBN: 1558605339

 

Additional bibliography (excerpted in course notes and handouts):

 

·          The Visual Display of Quantitative Information, Reprint Edition, E. R. Tufte. Graphics Press, 1992. ISBN: 096139210X

·          Envisioning Information, E. R. Tufte. Graphics Press, 1990. ISBN: 0961392118

·          Visual Explanations: Images and Quantities, Evidence and Narrative, E. R. Tufte.  Graphics Press, 1997. ISBN: 0961392126

·          3D Computer Graphics, A. Watt. Addison-Wesley, 1993. ISBN: 0201631865

·          Advanced Animation and Rendering Techniques, A. Watt. ACM Press, 1999. ISBN: 0201544121

·          The Fractal Geometry of Nature, B. B. Mandelbrot. W. H. Freeman, 1988.  ISBN: 0716711869

·          Fractals Everywhere, 2nd Edition, M. F. Barnsley. Academic Press, 1993. ISBN: 0120790610

 


Syllabus

 

Lecture

Date

Topic

(Primary) Source

0

January 14

Administrivia; overview of CG

FVD Preface, Chapter 1

1

January 19

Review of basics 1: math foundations

FVD Appendix, 1-4

2

January 21

Review of basics 2: transformations

FVD Appendix, 5-7

3

January 26

Review of basics 3: interfaces

FVD 10

4

January 28

Basic raster graphics

FVD 2-3

5

February 2

Clipping, polygons, z-buffering

FVD 3-4

6

February 4

2D/3D libraries: OpenGL intro/review

FVD 5-6

7

February 9

Projections

FVD 6

8

February 11

Splines: basics, Bezier

FVD 11.1, 11.2.1-11.2.2

9

February 16

Splines: B-splines, NURBS, surfaces

FVD 11.2.3-11.2.10, 11.3

10

February 18

3D graphics data structures

FVD 12.1-12.5

11

February 23

Basic constructive solid geometry (CSG)

FVD 12.6-12.10

12

February 25

Color; visible surface data structures

FVD 13, 15.1-15.2

13

March 1

Visible surface algorithms

FVD 15.3-15.9

14

March 3

Illumination: flat, Gouraud, Phong, etc.

FVD 16

15

March 8

Midterm review

FVD 1-6, 11-13, 15-16

 

March 10

Midterm exam

Focus: 5-6, 11, 15-16

16

March 15

Illumination models: ray tracing

FVD 15.10, 16.12

17

March 17

Illumination models: radiosity

FVD 16.13-16.14

18

March 29

Fractal systems: CG, image processing

FVD 20.3

19

March 31

Mapping, particle, PBM, FS systems

FVD 16.3, 20

20

April 5

Animation: basic methods

FVD 21

21

April 7

Photorealistic CGI/CGA packages

FVD 14

23

April 12

OO CG systems and GUIs, vis overview

FVD 7, 9, 10.1-10.2

24

April 14

Visual display of quantitative info

Tufte, 1992, FVD 9.1-9.4

25

April 19

More on visual display of quant. info

Tufte, 1992, FVD 9.5-9.6

26

April 21

Envisioning information

Tufte, 1990, FVD 10.1

27

April 26

More on envisioning information

Tufte, 1990, FVD 10.2

28

April 28

Visual explanations

Tufte, 1997, FVD 21.1

29

May 3

More on visual explanations

Tufte, 1997, FVD 21.2-3

30

May 5

Future of CG research; final review

FVD 5-7, 9, 11-16, 20-21

 

May 8

FINAL EXAM

Focus: 9, 14-16, 20-21

 

FVD: Computer Graphics, 2nd edition, J. D. Foley, A. vanDam, S. K. Feiner, and J. F. Hughes

HB: Computer Graphics, 2nd edition, D. D. Hearn and M. P. Baker

 

Lightly-shaded entries denote the due date of a written or programming assignment.

Heavily-shaded entries denote the due date of a paper review.

 

Class Resources

 

Web pages

·          Official class page: http://ringil.cis.ksu.edu/Courses/Spring-2000/CIS736

·          Instructor’s home page: http://www.cis.ksu.edu/~bhsu

 

Note: It is the student’s responsibility to be aware of class announcements and materials posted on the official class page, so please check it frequently.

 

Course notes

Required readings, along with reference manuals and tutorials for software used in the course, will be available for purchase (in 2 packets) from the Engineering Copy Center in 14 Seaton Hall.

 

Class web board

·          URL: http://ringil.cis.ksu.edu/Courses/Spring-2000/CIS736/Board

·          Primary purpose: for class discussions (among students and with instructor)

 

Note: Postings on the web board will tend to get a more rapid response from the instructor than e-mail, besides which, they are sometimes of benefit to fellow students.

 

Mailing list

·          Tentative title: CIS736WHH-L@cis.ksu.edu

·          Optional (no course-critical announcements)

·          For research announcements, related job opportunities, etc.

·          Sign up if interested

 

Homework Assignments and Course Project

 

                Homework assignments will be given out 2 to 3 weeks apart, for a total of 6.  Your lowest score will be dropped (see below).  Two of these homeworks will be programming-based, two will be written, and two will require you to run (and possibly modify) an existing library or graphics package using a specification or sample data, and analyze the results.

 

                Type (do not hand-write) homeworks; handwritten solutions are worth 0.8 credit.

 

                For programming assignments and the course project, you are permitted to use your choice of a high-level programming language (C++ and Java are strongly preferred; consult the instructor if you intend to use any other programming language).  You must, however, use a development environment that is available to the CIS department.  Consult the class web page for approved compilers.

 

                The course project proposals will be due on Monday, February 14, 2000 and will count for 20% of the project grade.

 

                For graduate students and advanced undergraduates interested in working on a class project, you may elect an additional 1 hour of credit as a section of CIS 798 (Special Topics in Computer Science) and either turn in a term paper or work on an extension of the course project or a small-scale independent study project.  You may sign up for this option any time before February 14, 2000 (talk to me during office hours or send e-mail).  Suggested project topics and guidelines will be posted on the course web page.  Examples include: an animation project; a photorealistic rendering project; rendering one or more scenes using techniques such as ray tracing and radiosity; an experiment with fractal image synthesis or compression; an in-depth comparison of computer-aided design (CAD) or statistical data visualization techniques studied in the course; or improving an existing illumination model or analyzing it formally.

 

No-Cheating Policy

 

Cheating consists of misrepresenting another’s work or knowledge as your own.  It includes not only copying of test answers, but plagiarism of another person’s written material.  While you are encouraged to discuss class material, homework problems, and projects with your classmates, the work you turn in must be entirely your own.  For homework assignments, this means that if you work together with a fellow student, you should still produce the final, written material from your own notes and individual work, rather than from common notes that you produced together.  You should follow similar guidelines for programming assignments and individual projects; while reuse of previously developed source codes may be permitted in these cases (provided you acknowledge the authors appropriately), you must not use directly use code developed by fellow students.  Please consult the University honor code (http://www.ksu.edu/honor) for further guidelines on ethical conduct, and understand the regulations and penalties for violating them.

 

The codes that you are permitted to use on certain assignments may be limited, beyond the specifications of plagiarism standards.  When in doubt about whether you may use a particular program on a written or programming assignment, consult the instructor first.  My objective is to help you learn as much as possible from the assignments; sometimes this means that I want you to use existing code and sometimes I will prefer for you to develop it yourself, to better understand the techniques.

 

Grading

 

                Credit for the course will be distributed as follows:

 

Component

Quantity

Low Scores

Dropped

Points Each

(Out of 1000)

Value

Homework (Written/Programming Assignments)

6

1

50

25%

Paper Reviews and Commentaries

4

1

50

15%

Midterm Exam (Closed Book)

1

0

150

15%

Course Project (Due May 3, 2000)

1

0

250

25%

Final Exam (Open Book/Notes)

1

0

200

20%

 

                Homework and exams may contain extra credit problems.

 

Late policy: Homeworks are due at 5:00pm on Fridays; you may request an extension to the following Monday if you need one by the due date (but I recommend you do not take this option).  10% credit will be deducted for each day the assignment is late past 11:59pm that Monday.  There will be no additional extensions!

 

                Letter grades will be assigned based on the distribution of raw scores (“curved”). Undergraduate and graduate students will be graded on the same curve.  Acquiring 85% of the possible points, however, guarantees an A; 70%, a B; 55%, a C.  Actual scales may be more generous than this if called for, but are not expected to be.

 

                If you elect to take an additional CIS 798 project option (for 1 hour of credit), your grade for CIS 736 will still be assigned based only on the above components.  The additional project component will be graded separately (as CIS 798) and weighted proportionately.

 

Tentative Schedule for Homeworks

 

1.       Assigned Sunday, January 16, 2000, due Friday, January 28, 2000

2.       Assigned Monday, January 31, 2000, due Friday, February 18, 2000

3.       Assigned Monday, February 21, 2000, due Friday, March 3, 2000

4.       Assigned Monday, March 6, 2000, due Friday, March 31, 2000

5.       Assigned Monday, April 3, 2000, due Friday, April 14, 2000

6.       Assigned Monday, April 17, 2000, due Friday, April 28, 2000

 

Paper Reviews and Commentaries

 

            An important part of learning about computer graphics and visualization systems, whether for research or development applications, is understanding the state of the field and the repercussions of important results.  The readings in this course are designed to give you not only a set of tutorials and references for machine learning tools and techniques, but to demonstrate the subject as a unified whole, and to encourage you to think more deeply about the practical and theoretical issues.

 

                Toward this end, I have selected 4 papers out of those in your (2) course notes packets.  The first 2 of these are in the first packet and the last 2 are in the second.  Before you come to lecture on the dates indicated on the class calendar, you should submit (by e-mail to the instructor) a short review of, and commentary on, the assigned paper.  This commentary need be no longer than 2 pages (though you can go up to 3 pages if you feel you have something meaningful to add).

 

This review is an important part of the course, because it can:

 

·          help you to review and rehearse material from lecture

·          bring to light questions that you may have about the material

·          improve your ability to articulate what you have learned

·          help guide the lecture/discussion

·          help you to think about working on projects (implementations or research) in this field

 

                Here are some guidelines on writing the reviews:

 

1.       Try to be brief and concise.

2.       Concentrate on pointing out the paper’s main strengths and flaws, both in content (key points, accuracy, impact/implications, deficiencies) and in presentation (organization, clarity/density, interest).  Try not to merely summarize the paper.

3.       Some questions to address (typically a couple in each paper):

·         Is the paper of sufficiently broad interest?  What do you think its intended audience is?  To what audience do you think the paper is significant?

·         What makes the paper significant or insignificant?

·         How could the presentation be improved to better point out important implications?

·         Is the paper technically sound?  How so, or in what areas is it not entirely sound?

·         What novel ideas can we pick up (about the topics covered in lecture) from the paper?

4.       Comment on how the paper (or the topic) affects your own work.  How is it relevant (or irrelevant) to you?

5.       How might the research be improved in light of how the field has progressed since it was published?  Some of these papers were catalysts for research in their areas, so it is sometimes infeasible to second-guess their authors; but comment on what could be done better today.

 

Paper reviews are late (worth 0 credit) after midnight of the day of the lecture when they are due (i.e., you must submit them before 12:00am Saturday).

 

Do not plagiarize.  It is relatively easy to detect plagiarism of material from the paper itself, related references, and paper reviews of classmates!  Again, refer to http://www.ksu.edu/honor for regulations and further guidelines on academic honesty.

 

Note to Division of Continuing Education (DCE aka ConEd) Students

 

Be sure to consult the class web page frequently and post to it; feel free to introduce yourself to your on-campus classmates.  Contact the instructor as soon as possible if you are unable to access to any class resources (computer accounts, papers, book chapters) that you require.