comp175 - fundamentals of computer graphics

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

announcements

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.

course description

content

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.

assignments

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.

exams

There will be one midterm

project

There will be one individual final project

grading

collaboration and academic integrity

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.

acknowledgements

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

fall 2008 schedule

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

lecture notes

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]

assignments

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

projects

Presentations: December 2, 2008, Tufts Viswall, Anderson Hall [pictures]

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

Real-time physically-based modeling and rendering of fire
Adam Raczkowski

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
Doria Jianu

The goal of this project is blood vessels visualization, using Marching Cubes surface reconstruction. [website]

Real-time music visualization
Gerhard Stoeckel

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
Jessica Lowell

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
Nada Attar

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
Wanyu Wang

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]

resources

recommended books

programming

topics

An Interactive Introduction to Splines (external) [link]

arjf © 2008