CSE 167: Introduction to Computer Graphics

Winter 2006

Announcements | Staff | Schedule | Calendar | Projects | Grading | Resources | WebCT


2006-02-20 The due date for Project #6 HAS BEEN MOVED! It is now due Tuesday 02/28/2006.
2006-01-31 There will be a discussion section this Friday from 4-5 in HSS 1330 (the usual lecture room). We will go over Project 4 in detail. Be there!
2006-01-31 We have a discussion board on WebCT. Check it out
2006-01-28 The grading policy for individual assignments has been updated. Check the Grading section below
2006-01-22 Turnin instructions have been updated; they now inculde a special section on what modifications you should make to your project archive if you implement any Bells & Whistles.
2006-01-13 Instructions on how to turn in assignments have been posted in the projects section below. Be sure to follow these instructions for project 1.
2006-01-09 Welcome to CSE 167! Check here often for course announcements.

Course Staff

Instructor Ronen Barzel (ronen@graphics.ucsd.edu )
Office Hours:
2104 CS Building (EBU3B)
Tuesdays: 9:45-10:45am, or by appointment
Thursdays: 10:45-11:45am, or by appointment

Alex Kozlowski ( kman@graphics.ucsd.edu )

Cameron Chrisman (cchrisman@cs.ucsd.edu )

**Please Include CSE167 somewhere in the subject line of your e-mails**

Weekly Schedule

Lectures Time: Tues/Thurs 8:00am - 9:20am :(
Location: HSS 1330
Lab Hours Alex: M 10-12pm & 1-2pm, Tu 1-2pm,
Cameron: M 12-1pm, Tu 9:30-11:00am F 4-5pm
Location: 240 CSE Building


Below is a tentative calendar for the quarter, and may be subject to change.

Lecture Date Topic Projects Reading
1 Tue 1/10 Introduction/Linear Algebra Reivew (pdf)   Buss: 1-16, 319-331
2 Thu 1/12 Geometry and Homogeneous Coordinates (pdf)   Buss: 17-36
3 Tue 1/17 Hierarchical Transforms / Geometric Calculations (pdf) Project 1 due by 11:59pm Buss: 34-46
4 Thu 1/19 TA Lecture: Projects (pdf)    
5 Tue 1/24 Models, Hierarchical Modeling / Scene Graphs (pdf) Project 2 due by 11:59pm  
6 Thu 1/26 Camera Perspective, Viewing, and Culling (pdf)   Buss: 155-172
7 Tue 1/31 Cubic Curves (pdf) Project 3 due by 11:59pm Buss: 173-180
8 Thu 2/2 Piecewise-cubic curves, Curved Surfaces (pdf)   Buss: 46-58
9 Tue 2/7 Clipping & Scan Conversion, Midterm Review (pdf)   Buss: 58-66
10 Thu 2/9 --Midterm-- [midterm with answers: (doc) (pdf)] Project 4 due Friday, February 10th, by 11:59pm  
11 Tue 2/14 Lighting (pdf) Project 5 due Wednesday, February 15th, by 11:59pm Buss: 67-87 (opt: 87-98), 146-154
12 Thu 2/16 Texture Mapping (pdf)   Buss: 126-145
13 Tue 2/21 Shadow Mapping, Ray Tracing I (pdf)   Buss: 233-270
14 Thu 2/23 Ray Tracing II, Antialiasing (pdf)   Buss: 126-145
15 Tue 2/28 Final Project Discussion (pdf) Project 6 due by 11:59pm
16 Thu 3/2 Guest lecture!
Games Development: Scene Management for Real Time Performance (pdf)
Steve Rotenberg (formerly of Angel Studios)
17 Tue 3/7 My own "Guest" lecture
Computer Cinematography: The Toy Story Lighting Model (pdf)
Ronen Barzel (formerly of Pixar Animation Studios)
18 Thu 3/9 Guest lecture!
Software Development For Special Effects
Daniel Maskit (Digital Domain)
19 Tue 3/14 Guest lecture!
Matthias Zwicker (now of UCSD)
20 Thu 3/16 Review (pdf)
Final Thu 3/23 [final with answers: (doc) (pdf)] Final project due March 20-21 by signup  

Projects & Homework

Project 1: Matrices and Solar System Simulation

Project 2: Hierarchical Transformations with the Matrix Stack

Project 3: Models and Scenegraphs

Project 4: Camera Transformations and Frustum Culling

Project 5: Bezier Curves and Patches

Project 6: Scan Conversion

Final Project

Getting Started

For all of the projects in this course, we will be using the OpenGL and GLUT libraries. To get a GLUT application started in Visual Studio on Windows, check out Text & Other Resources below. This requires that the glut libraries (.lib) and the glut headers (.h) are installed. Your 167 accounts for the lab computers all have glut installed.

Instructions for turning in assignments.


Project Grading

  • new grading policy for projects:  0-4, plus .5 or 1 for B&W
    • 0 = nothing done or less than half even attempted
    • 1 = partial attempt
    • 2 = partly works but major things missing or wrong
    • 3 = works but minor things missing or wrong
    • 4 = works exactly as specified
    • 4.5 = plus simple B&W
    • 5 = plus complex B&W
  • for some projects you will be required to give a demo to the TA during lab hours.
  • the TAs will offer comments and suggestions about the design and  quality of the code, but these do not affect your grade.
  • each project will include suggested "Bells and Whistles" --  these are fun things to explore and play with and impress your  friends and the TAs.  We'll give your project a 1/2 point bonus for  interesting Bells and Whistles (our suggestions or your own  explorations).  But make sure the project works fully before adding  any B&Ws.

Course Breakdown*

     6% Project 1
     6% Project 2
     9% Project 3
     9% Project 4
     9% Project 5
     9% Project 6
     16% Final Project
     16% Midterm
     20% Final

Final Grade Formula*

     >= 90%  A
     >= 80%  B
     >= 65%  C
     >= 50%  D

*This is an initial estimate, and may be subject to change.


Texts & Other Resources

Required Text: S. Buss, 3D Computer Graphics: A Mathematical Introduction with OpenGL.  Cambridge Univ. Press, 2003. 
Book web site: http://math.ucsd.edu/~sbuss/MathCG .

Recommended Text: M. Woo et al., OpenGL Programming Guide, 4th  Edition. Addison-Wesley, 1999.

  • The textbook's web site at http://math.ucsd.edu/~sbuss/MathCG has a number of sample OpenGL programs illustrating basic features and usages of OpenGL.

  • GLUT 3.7:   The GLUT libraries provide an accessible set of routines for using the OpenGL API.  All of the Math 155 / CSE 167 homework projects will use GLUT.  The necessary GLUT files are already installed on the PC lab computers, but they are also available for download from the web.   If you are using a PC at home, you may need to download the GLUT .h, .dll and .lib files. The GLUT homepage is at  http://www.xmission.com/~nate/glut.html or at http://www.sgi.com/software/opengl/glut.html .    The first site has exactly what you need for Math 155AB / CSE 167 and is more up-to-date. The second site is somewhat more comprehensive however.
        Documentation for the GLUT API is available in HTML , Postscript and PDF formats.  This documentation may not include all the features of GLUT: advanced features can be understood by examining the source code for GLUT.

  • Older editions of the OpenGL programming guide are available online for free!!!    You can find the first edition at http://fly.cc.fer.hr/~unreal/theredbook/ , as well as many other locations.    The second edition has been posted online in the past, but its location seems to change frequently and this year I could not find it on google. (Perhaps it is not actually permitted to post it online?  Please let me know if you find it at a legitimate online location.)

  • You may find some of the information at older CSE 167 websites useful.