DMS 423/523: Programming Graphics 1
Fall 2007

Course Info

When: Tuesday/Thursday 2:00 - 3:50 pm
Where: CFA 242

Instructor: Dave Pape
e-mail: depape at buffalo.edu
Office: CFA 250
Office hours: Wed 12-1pm; Tues/Thurs 1-2pm

Website: http://resumbrae.com/ub/dms423/

Course Description

This production course introduces students to the concepts and practice of programming 2-D and 3-D computer graphics using OpenGL. The major focus is on developing the skills needed to create interactive, real-time CG experiences. Students write their own code to create customized computer tools and visuals and learn the fundamentals of graphics.

Upon completing this course, a student should have an understanding of basic computer graphics technical concepts - e.g., be able to describe the different types of geometric transformations, define what a normal vector is and what it's used for, understand how a texture image is applied to a shape, etc. The student should also be comfortable with using programming and mathematics (trigonometry, interpolation, vectors) to build and control a graphical scene.

Textbook

There is no single required text. Rather, students should choose one of the following texts, based on their background and programming experience:

Useful websites:

Topics

The major topics that we will cover are:

  • Color
  • Geometry (shapes)
  • Transformations
  • Projections
  • Lighting
  • Texturing
  • Sound
  • Math



Draft Schedule

Aug 28/30 Introduction
Sep 4/6 Images, frame buffer
Sep 11 Geometry, coordinate systems
Sep 20/22 Transformations
Sep 25/27 More transformations, 3D coordinates
Oct 2/4 Depth cues
Oct 9/11 Math
Oct 16/18 Interaction
Oct 23/25 Texturing
Oct 30/Nov 1 Lighting
Nov 6/8 Motion math
Nov 13/15 Sound
Nov 20 Alpha
Nov 27/29 PD
Dec 4/6 Special topics TBD

Grading

You are allowed up to two free absences; after that, each absence will cost you 2% of your overall grade. A significant fraction of class time is going to be spent doing hands-on work, applying the concepts that have been covered in lecture; regular attendance will be vital to actually learning these concepts.

Assignments will be given in class, and due in class one week later. Late assignments are penalized one letter grade per 24 hour period that they're late. One that's more than 72 hours late will not earn any points.

Assignments will be graded first on whether they accomplish what was required, using the techniques specified, and second on code quality. It is important that code be clear and understandable, both so that you can work on it, and so that others can make use of it in the future.

All assignments and projects must be your own work. Work is to be done individually - do not share code with, write code for, or copy code from other students. This applies to all assignments while they are outstanding - i.e., until everyone's program has been turned in and graded. A first violation of this policy will result in failure of the assignment; repeated violations will result in failure of the course. See below for further official warnings about plagiarism.

Other details

E-mail

I will send any e-mail relating to this course to your official buffalo.edu address. Be sure that you check this address. Do not ask me to send e-mail to another address instead - if you don't want to use the buffalo.edu mail system, forward your mail from there to whatever system you do use.

Also, be warned that mail from free services like Hotmail or Yahoo has a strong chance of being caught by spam filters. Hence, I recommend not sending me e-mail from such an address, if you want to be certain that I'll receive it.

Lab Fee

For the Fall 2006 semester, all DMS production courses carry a lab fee of $100 per course.

Students with Disabilities

If you have a disability (physical, learning or psychological) which may make it difficult for you to carry out the course work as outlined, and/or requires accomodations such as recruiting note takers, readers, or extended time on exams and assignments, please contact the Office of Disability Services, 25 Capen Hall, 645-2608, and also your instructor during the first two weeks of class. ODS will provide you with information and will review appropriate arrangements for reasonable accomodations.

Plagiarism

Plagiarism is literary theft and a betrayal of trust. The term is derived from the Latin word for kidnapper and refers to the act of signing one's own name to words, phrases, or ideas which are the literary property of another. Plagiarism comes in many forms, all to be avoided: outright copying, or paraphrase, or a mosaic or disguised use of words and phrases from an unacknowledged source. To avoid plagiarism, make it your habit to put quotation marks around words and phrases, or to isolate and indent longer passages, that you are using from someone else's writing. And be sure to cite the source, in a footnote or endnote, or within parentheses in your text. The penalties for plagiarism can be severe: from an F for the particular assignment, to an F for the course, to referral of the case to the Dean of Undergraduate Education for administrative judgment. If you are unsure about how to use and document sources, please consult with your instructor.

Warning

If you are planning a student production which involves using any prop which could be interpreted to be a weapon [toy gun, BB gun, knife, etc.] and you are planning to shoot on the UB campus or any other public place, you must obtain written permission from Campus Security or the equivalent authority before you shoot. If you do not, you will face serious problems including possible expulsion from the university.