CPSC 424
Fundamentals of Computer Graphics

   Fall, 2013.

   Instructor:  David J. Eck.

   Monday, Wednesday, Friday, 3:00--3:55 PM.
   Room Napier 202.
   
   Lab: Tuesday, 10:20--11:45 AM.
   Room Gulick 208.

About CS 424

Computer graphics is simply the art and science of producing and manipulating images on a computer. It is one of the most visible and exciting aspects of computer science.

Computer graphics is a very large and growing field, and this course can only survey some of the important ideas. The course concentrates on three-dimensional graphics, where images are produced by constructing a virtual 3D world that is then projected onto a 2D image. However, we will begin the course with a couple weeks of 2D graphics. We will cover a variety of ways of doing graphics by computer, including:

There is no textbook for this course. Instead, notes will be posted on the course website.


Computer Labs

This course has a required lab component that meets every Tuesday. There will also be a few labs during the regular Friday class period. Most of the labs will involve programming, but there will be several labs in the middle of the semester on the Blender 3D modeling and animation program. The work for each lab will be due at the beginning of the following lab period.


Term Project

The course requires a term project, which is due at the end of the semester. The project includes one of: a ten-to-fifteen page research paper on some topic in computer graphics; a significant graphics programming project; a Blender modeling and animation project; or an exploration of some graphics technology along with a shorter explanatory paper or web page. In addition to the project itself, you are required to do a 20-minute presentation on your work. Presentations will take place during the last week of classes.

You will select a topic for your project by November 1. I would like to avoid having two people do the same topic, so you will need to consult with me and get approval for your project before November 1.

More information on the term project, including some suggestions for possible topics, will be available later in the term.


Tests and Grading

There will be three tests in this course. The first two will be given in class on Monday, September 30 and on Monday, November 4. The third test will be given during the scheduled final exam period (7:00 PM on Tuesday, December 10); however, it will be a one-hour test rather than a three-hour final exam.

Your grade for the course will be determined as followed:

         First Test:    15%
         Second Test:   15%
         Third Test:    15%
         Term Project:  20%
         Labs:          35%

Attendance Policy

Attendance is required. But the attendance policy is not enforced except by admonishment, dirty looks, and possibly public shaming.


Disability Statement from the CTL

Disability Accommodations: If you are a student with a disability for which you may need accommodations, you should self-identify and register for services with the Coordinator of Disability Services at the Center for Teaching and Learning (CTL), and provide documentation of your disability. Disability related accommodations and services generally will not be provided until the registration and documentation process is complete. The guidelines for documenting disabilities can be found at the following website: http://www.hws.edu/disabilities

Please direct questions about this process or Disability Services at HWS to David Silver, Coordinator of Disability Services, at silver@hws.edu or 315-781-3351.


Office Hours, Email, WWW

My office is room 313 in Lansing Hall. My office phone extension is 3398. I am on campus most days, and you are welcome to come in anytime you can find me there. I will announce office hours as soon as my schedule is determined, but note that your office visits are not restricted to my regular office hours.

My email address is eck@hws.edu.

The Web page for this course can be found at http://math.hws.edu/eck/cpsc424/index_f13.html.


Tentative Schedule

Dates Topics Lab
Aug. 26,28,30 Introduction and Java Graphics2D:.
2D transforms in Java Graphics2D.
Sep. 2, 4, 6 Hierarchical Graphics and Scene graphs in Java 2D.
Introduction to JavaScript and HTML <canvas>.
Hierarchical graphics in Java.
Sep. 9, 11, 13 2D graphics on the Web: the canvas API.
Introduction to 3D graphics with old-fashioned OpenGL.
Web graphics with <canvas>
Sep. 16, 18, 22 OpenGL with GLUT and JOGL.
Transformations and Viewing in 3D.
Basic OpenGL Programming.
Sep. 23, 25, 27 Lighting and Materials in OpenGL.
Review for the First Exam.
Cameras, viewing, and normal vectors.
Sep. 30; Oct. 2, 4 Test on Monday, September 30.
Textures.
Light and Material.
Oct. 7, 9, 11 What comes after Version 1.0 of OpenGL?
Blender, a 3D Modeling and animation program.
Textures in OpenGL.
Friday lab: Blender Modeling, Part 1.
Oct. 16, 18 Fall break: No class Monday or Tuesday.
More Blender.
Friday lab: Blender Modeling, Part 2.
Oct. 21, 23, 25 Introduction to Three.js and 3D web graphics. Blender Animation.
Oct. 28, 30; Nov. 1 Friday, Nov. 1: Topics for term projects due.
Three.js, continued.
Three.js I.
Nov. 4, 6, 8 Test on Monday, November 4.
Three.js, continued.
Introduction to WebGL.
Three.js II.
Nov. 11, 13, 15 Modern OpenGL, shaders, and GLSL.
Vertex buffer objects, attributes, etc.
WebGL and Shaders I.
Nov. 18, 20, 22 Modern OpenGL, continued. WebGL and Shaders II.
Nov. 25 Thanksgiving break: no class Nov. 27 and 29.
Finishing up the course.
WebGL and Shaders III.
(Or work on projects?)
Dec. 2, 4, 6 Presentations of term projects. Presentations of term projects.
Dec. 10 Final Exam, Monday December 10, 7:00 PM