Syllabus

Amazon logo Help support MIT OpenCourseWare by shopping at Amazon.com! MIT OpenCourseWare offers direct links to Amazon.com to purchase the books cited in this course. Click on the book titles and purchase the book from Amazon.com, and MIT OpenCourseWare will receive up to 10% of all purchases you make. Your support will enable MIT to continue offering open access to MIT courses.

Textbook

The following book is recommended, but not required:

Shirley, Peter. Fundamentals of Computer Graphics. 1st ed. A. K. Peters Ltd., July 2002. ISBN: 1568811241.

What the Course is About

The primary goal of 6.837 is to introduce many important data structures and algorithms that are useful for presenting data visually on a computer. 6.837 does not cover the use of graphics design applications such as Photoshop® and AutoCAD®. In short, 6.837 is a programming class. The goal of this class is to provide you with sufficient background to write computer graphics applications.

What You Need to Know Before Taking

Everyone taking 6.837 should have taken courses in, or reasonable exposure to, basic calculus, linear algebra (e.g. 18.06), and algorithms (e.g. 6.046J). Programming assignments will be done in C++, so familiarity with this or syntactically similar programming languages (Java®, or Pascal) will be an asset. A review session for C++ will be given in Lecture 1.

Grading

ACTIVITIES PERCENTAGES
Assignments 40%
Quizzes 1 and 2 20%
Team Project 40%


Course Overview

  • Ray Tracing
    • Course overview
    • Ray casting overview
    • Ray casting - primitive intersections
    • Transformation
    • Hierarchy
    • Local illumination and shading
    • Recursive ray tracing
    • Acceleration structures
  •  Animation, Modeling, and Image-based Rendering (IBR)
    • Curves and surfaces
    • Animation with keyframes
    • Animation with physics and PDE's
    • Image-based rendering

  • Pipeline
    • Pipeline basics
    • Perspective and transformations
    • Line rasterization
    • Polygon rasterization
    • Clipping
    • Visibility

  • Advanced Topics
    • Rendering equation and Monte Carlo methods
    • Radiosity
    • Colors
    • Antialiasing
    • Texture mapping
    • Procedural textures
    • Shadows
    • Graphics hardware