COMP175-01 - Fall 2008

Lectures: T 6:00-7:15 - Halligan Hall 111A

Lectures/Labs: Th 6:00-7:15 - Halligan Hall 122

Instructor: Alexandre R.J. François
(alex@cs.tufts.edu)

Office: Halligan Hall E011

Office hours: T+Th 5:00-6:00pm

TA: Matthew L. Knowles

E-mail: tuftscomp175ta (at) gmail.com

Office hours: T 4:30-5:45pm

Location: Halligan Hall 120

l2r: alex - aj - jessie - nada - wanyu - gerhard - matt - doria

*Project deliverables due December 18, 2008* (posted 12/03)

Project code and publicity material (120x120 icon and 1 paragraph
summary) are due on December 18. Project websites must be completed
by the same date.

This course explores the fundamentals of computer graphics, including representing digital images, 2D rasterization and anti-aliasing, 3D rendering via ray casting, ray tracing and radiosity, viewing transformations, 3D shape representation, and an introduction to modeling and computer animation. Assignments and projects require a good working knowledge of the C programming language. (From Tufts CS course description)

Prerequisites: Comp 15, Math 13, and Math 46 or consent of instructor.

No required textbook, see resources section for some recommended textbooks and other useful material.

Programming assignments are posted on Thursdays, due the following Thursday by 11:59pm using Provide. The written part is due in class on Thursday.

Programming language: C/C++

Grading: approximately 40% for working code, 40% for quality of the resulting images, 20% for quality of documentation.

There will be one midterm

There will be one individual final project

- Programming assignments: 60%
- Exam: 10%
- Project: 20%
- Class participation, quizzes: 10%

Do:

Ask questions of the Professor and TA

Talk to other students about ideas and approaches

Get ideas from books and online sources

Always cite the source of the ideas you use in your assignments

Do not:

Share code with other students

Use ideas or code from other sources without referencing them

Presenting someone else's ideas or work as your own is a violation of academic integrity, is absolutely unacceptable, and may result in severe disciplinary action for all parties involved. See the Academic Integrity booklet from the Dean of Students' office.

This course makes extensive use of material developed (and graciously provided) by Sarah Frisken.

*Always in motion is the future.* -- Yoda

*Tuesday September 2:*

Welcome, course overview

*Thursday September 4:*

1. Introduction, images, displays, color [pdf]

Assignment 1 posted (due 09/11 at 11:59pm)

*Tuesday September 9:*

2. 2D drawing: lines, midpoint algorithms [pdf]

*Thursday September 11:*

2. 2D drawing: circles
[pdf]

3. Drawing and filling 2D shapes: seed fill
[pdf]

Assignment 1 due at 11:59pm

Assignment 2 posted (due 09/18 at 11:59pm)

*Tuesday September 16:*

4. Raster-based filling of general polygons - fill rules
[pdf]

5. Raster-based filling algorithms - x-intersection array algorithm
[pdf]

*September 16:*

Last day for AS&E students to add classes

*Thursday September 18:*

5. Raster-based filling algorithms - edge list algorithm
[pdf]

Assignment 3 posted (due 10/02 at 11:59pm)

Assignment 2 due at 11:59pm

*Tuesday September 23:*

6. Coloring and texturing polygons
[pdf]

*Thursday September 25:*

7. Aliasing, sampling theory, anti-aliasing
[pdf]

Assignment 4 posted (due 10/16 at 11:59pm)

*Tuesday September 30:*

Points, vectors and matrices
[pdf]

2D transformations
[pdf]

*Thursday October 2:*

2D and 3D transformations
[pdf]

Polygonal models
[pdf]

Assignment 3 due at 11:59pm

*Tuesday October 7:*

Triangular meshes
[pdf]

*October 7:*

Last day for AS&E students (except first-year undergraduates) to drop courses without record of enrollment

Last day for all undergraduates (including first-years) to select pass/fail option

*Thursday October 9:*

Model and view transforms
[pdf]

Camera transforms
[pdf]

*Tuesday October 14:*

Camera transforms
[pdf]

The graphics pipeline
[pdf]

October 14:

Last Date for AS&E students to make up incomplete grades from Spring 2008

*Thursday October 16:*

Review + project ideas

Assignment 4 due at 11:59pm

*Tuesday October 21:*

midterm

*16 - Thursday October 23:*

Interactive graphics (6:45-7:15pm)

Assignment 5 posted (due 10/30 at 11:59pm)

*17 - Tuesday October 28:*

Interactive graphics

Ray tracing
[pdf]

*18 - Thursday October 30:*

Illumination
[pdf]

More ray tracing
[pdf]

Assignment 5 due at 11:59pm

Project proposals finalized

*19 - Tuesday November 4:*

Parametric curves and surfaces
[pdf]

*20 - Thursday November 6:*

Parametric curves and surfaces
[pdf]

An Interactive Introduction to Splines (external) [link]

*21 - Tuesday November 11:*

Veteran's Day - no class

November 12:

Last date for undergraduate first years to drop courses without record of enrollment

*22 - Thursday November 13:*

Tufts CS Seminar (2:50-4:00pm Halligan 111)
[announcement]

Subdivision surfaces
[pdf]

*23 - Tuesday November 18:*

Implicit surfaces
[pdf]

*24 - Thursday November 20:*

Project checkpoint (mid-project demos)

Volume rendering
[pdf]

*25 - Tuesday November 25:*

Animation
[pdf]

*26 - Thursday November 27:*

Thanksgiving - no class

*27 - Tuesday December 2:*

Project presentations and demonstrations on the Visualization Wall in Anderson Hall
[pictures]

*28 - Thursday December 4:*

Course wrap-up

December 8:

Classes end

Last day for AS&E undergraduates to withdraw from courses and receive a grade of W

1. Introduction, images, displays, color
[pdf]

2. 2D drawing: lines, circles
[pdf]

3. Drawing and filling 2D shapes - seed fill [pdf]

4. Raster-based filling of general polygons - fill rules
[pdf]

5. Raster-based filling algorithms
[pdf]

6. Coloring and texturing polygons, procedural textures
[pdf]

7. Aliasing and anti-aliasing
[pdf]

8. Points, vectors and matrices
[pdf]

9. 2D and 3D transformations
[pdf]

10. Polygonal models
[pdf]

11. Model and view transforms
[pdf]

12. Camera transforms
[pdf]

13. The graphics pipeline
[pdf]

14. Ray tracing
[pdf]

15. Illumination
[pdf]

16. Parametric curves and surfaces
[pdf]

17. Subdivision surfaces
[pdf]

18. Implicit surfaces
[pdf]

19. Volume rendering
[pdf]

20. Animation
[pdf]

Assignment 1: Creating and displaying 2D images
[html]

Assignment 2: Drawing 2D lines
[html]

Assignment 3: Filling Polygons and Triangles
[html]

Assignment 4: Anti-aliasing
[html]

Assignment 5: Graphics pipeline - geometry
[html]

Assignment 6: Graphics pipeline - lighting

Note: project descriptions and websites will be finalized in the next few weeks.

Real-time physically-based modeling and rendering of fire
In this project, fire is rendered using a model based on relationships from physics. This requires treating fire as a fluid and numerical solutions to differential equations. Whereas the physical model of fire gives the flames their characteristic flicker, a model of the cone responsivities of the eye provides the characteristic colors. [website] | |

Surface reconstruction of vasculature using marching cubes
The goal of this project is blood vessels visualization, using Marching Cubes surface reconstruction. [website] | |

Real-time music visualization
This project aims to unite human auditory and visual sensory inputs by exploring various graphical representations of sound, and animating the generated imagery in response to audio input. [website] | |

Realistic 3d terrain generation
The goal of this project is to be able to generate three-dimensional terrains, with hills and valleys, and realistic-looking lighting and texture. [website] | |

3D clock using OpenGL
This project used OpenGL to implement a clock that has a 3D shape and can rotate when the user press some key. The clock has a background, which is implemented by upload multiple bmp images to make texture for the clock. There are two 3D clock hands, that can rotate at the same time when the clock rotate. [website] | |

Ray tracing
For this project, I implement ray tracing. In computer graphics, ray tracing is a technique for generating an image by tracing the path of light through pixels in an image plane.The technique is capable of producing a very high degree of photo realism; usually higher than that of typical scan line rendering methods, but at a greater computational cost. And ray tracing is capable of simulating a wide variety of optical effects, such as reflection and refraction, scattering, and chromatic aberration. [website] |

- Buss, 3D Computer Graphics
**Foley, vanDam, Feiner, and Hughes, Computer Graphics Principles and Practice**- Hearn and Baker, Computer Graphics with OpenGL
- Hill, Computer Graphics using OpenGL
- Shirley, Fundamentals of Computer Graphics
- Watt, 3D Computer Graphics

- OpenGL Programming Guide (the Red Book)
- OpenGL Reference Manual (the Blue Book)
- OpenGL: Technical FAQ Wiki
- GLUT: The OpenGL Utility Toolkit
- Tufts Computer Graphics Group's resources page

An Interactive Introduction to Splines (external) [link]

arjf © 2008