CS4451: Computer Graphics

Fall 2002

College of Computing 101

TR 3:05-4:25


What’s New:

1.     Added sample code and links for making movies under “Resources” section.

2.     Updated Grading Policy

3.     Updated section on Current Deadlines  [Last Updated: Sept. 26, 2002;11:15 pm]

4.     A gradefile (in excel spreadsheet format) in the Current Deadlines section

5.     Grouped the OpenGL example code on drawing a 3D sphere with lighting, using gluLookAt( ), and using gluUnproject( ) together under the “Handouts” section.

6.     Added flier for Prof. Fred Brooks talk to the “Handouts” section.

7.     Added an “Announcements/Reminders” section. [Last Updated: Sept. 26, 2002; 11:15 pm]

8.     Added GradeFile and Midterm Grade Discussion links to the “Announcements/Reminders Section”.

9.     Added Project 3 link to “Announcements/Reminders”, “Current Deadlines”, and “Resources”.

10.  Added Project 4 link to “Announcements/Reminders” and “Current Deadlines”

11.  Added Project 2 examples link to “Current Deadlines”

12.  Updated Project 4


Announcements/Reminders

1.     Please find a GradeFile here. It has grades indexed by the last four digits of your Student ID/SSN. The grades are sorted in descending order of the total combined score on the Midterm and Project 1. This should give you some idea of your standing in class relative to other students. [ * indicates no submission]

      Please email Nitesh (nitesh@cc) to clear any discrepancies concerning grades displayed on the webpage.

2.     Mid-term Grade Distribution.

3.     A Distinguished CoC Lecture by Prof. Fred Brooks on Thursday, Sept 26, 3 – 4 PM, in the Student Services Building, Conf Room 117 [attendance is required].

4.     The next Quiz will be in class on Tuesday, Oct 1.

5.     Project 2 grades will not be finished until the week of Oct 23.

6.     Project 3 is assigned Oct 9.  Sample code is in p3.c

7.     Project 2 grading criteria is in a2_grade_descriptions.htm.

8.     Project 2 grades listed by last four digits of SSN are in A2_ssn_grades.htm.

9.     Project 4 is assigned November 4.  Sample code is in mouse.c and README, Makefile, sockets.c, sockets.h, server.c, client.c. [ Updated November 12, 2002 ]

10.  Project 3 grading criteria is in a3-grading-criteria.htm.

11.  Project 3 grades are emailed to individual students on Monday November, 25, 2002.

 

CURRENT DEADLINES FOR PROJECTS AND ASSIGNMENTS

1.     Project 2, part C: Sept. 24, 2:59PM [via email to both the TAs (parry@cc, nitesh@cc) ]

2.     Homework Assignment on Ray Tracing: due Sept. 24, 3 PM   [hardcopy submission in class, or via email to Nitesh (nitesh@cc) -- No email attachments, include submission in the body of the mail. If that doesn’t work for you, please bring hardcopy to class.]

3.     Homework Assignment on Prof. Fred Brooks Talk : due Oct 1, 3 PM  [via email to Nitesh (nitesh@cc) ]

4.     Homework Assignment on Perspective Projection+Transformation (available from the lecture’s slides): due Oct 3, 3 PM [hardcopy submission in class]

5.     Project 2, part D: due Oct 4, 3 PM  [ via email to both the TAs (parry@cc, nitesh@cc) ]

6.     Project 3, part I: due Oct 22, 3 PM [via email to both the TAs (parry@cc, nitesh@cc) ]

7.     Project 3, part II: due Oct 29, 3 PM [via email to both the TAs (parry@cc, nitesh@cc) ]

8.     Project 4, part I: due Nov 7, 3 PM [via email to both the TAs (parry@cc, nitesh@cc) ]

9.     Project 4, part II: due Nov 14, 3PM [via email to both the TAs (parry@cc, nitesh@cc) ]

10.  Project 4, part III: due Nov 21, 3PM [via email to both the TAs (parry@cc, nitesh@cc) ]

11.  Project 4, part IV: due Dec 1, 11:59PM [via email to both the TAs (parry@cc, nitesh@cc) ]

 

 

Grades.xls includes Project 1 and Project 2: part A.

Project 1 Examples

Project 2 Examples

Instructor                                                                           

Jarek Rossignac
jarek@cc.gatech.edu
Office: 256 College of Computing
Office Hours: Thursdays 10-11am (for having a conflict with Thursdays may come on Tuesdays between 5pm and 6pm, but students of CS6491

will have priority).

Teaching Assistants

The teaching assistants are available via office hours and email.  When possible, questions regarding general programming, OpenGL and GLUT, and projects should be directed to Mitch.  Questions regarding homeworks, quizzes, and class material should be directed to Nitesh.

 

Uploaded Image:mitch-frame.jpg

Mitch Parry

parry@cc.gatech.edu
Office Hours: Wednesday and Friday 2-3pm in the CoC Commons or Baird Cluster (through the windows in the Commons opposite the TA office)

 

Nitesh Singh

nitesh@cc.gatech.edu
Office Hours: Mondays 2-4pm in the CoC Commons.

 

Textbooks

Required:

3D Computer Graphics, by Alan Watt

Addison-Wesley, ISBN: 0201398559, 1999 (3rd edition)

 

Additional:

Fundamentals of Computer Graphics, by Peter Shirley

A K Peters Ltd, ISBN 1568811241, June  2002

 

Computer Graphics and Geometric Modeling, by David Salomon

Springer-Verlag, ISBN: 0387986820, 1999

 

Mathematics for Computer Graphics Applications: An Introduction to the Mathematics and Geometry of Cad/Cam, Geometric Modeling, Scientific visualization, by Michael Mortenson

Industrial Pr, ISBN: 083113111X, 1999 (2nd edition)

 

Warping and Morphing of Graphical Objects (with Cdrom), by Jonas Gomes,  Lucia Darsa,  Luiz Velho

Morgan Kaufmann Publishers, ISBN: 1558604642, 1998

 

Subdivision Methods for Geometric Design: A Constructive Approach, by Joe Warren,  Henrik Weimer

Publisher: Morgan Kaufmann, ISBN: 1558604464, 2001

Grading Policy [Updated]

40% Software Projects (10% each or 4% for the first one and 12% for the others, whichever is best for the student)

20% Weekly quizzes and Homeworks

20% Two midterms (in class, closed books, 1 cheat-sheet)

20% Final

Resources

Making Movies:

            Here are some suggestions for how to create movie files from your graphics program.

 

            SGI

If you are programming in C or C++ on a UNIX machine, you can use the dmedia and moviefile libraries.  These libraries only run on SGI machines (SGI lab in CoC).  To help you do this, you can cut-and-paste the code in movie.c into your OpenGL program.  At the bottom of the file there is a sample main program.  Before you draw anything, call createMovie().  Every time you update the framebuffer with a new image, call addMovieFrame().  When the animation is over, call endMovie().  You will have to modify the code in movie.c to fit with your program.  For example the variable ‘win’ does not exist.  It’s really a placeholder for attributes of your window (width and height).  The code is well commented and requires that you add the libraries “-ldmedia –lmoviefile” to your Makefile.  This code generates VERY big movie files.  Once you create one, you will want to compress it with “mediaconvert”.  You can view a movie with “mediaplayer”

 

            Other Operating Systems

If you don’t have access to the SGI cluster, or aren’t too keen on UNIX, you can cut-and-paste movie-win.c into your OpenGL program.  This code will write the contents of the frame buffer to a specified image filename in PPM format.  You will need to make small changes to the code to make it fit with your program.

 

Windows

The next step is converting the PPM files to JPG (PPMs are VERY big).  If you are using windows, you can download Image Converter .EXE 2.0.36 for free from http://download.com.com/3000-2192-10133489.html?tag=lst-0-5 .  You can use it to convert a folder full of PPM files into JPG files.  To combine your JPG images into an AVI movie file you can download Slide Show Movie Maker free from http://download.com.com/3000-2194-8471301.html?tag=lst-0-3 .

 

                        Other Programming Languages

The code in movie-win.c uses the GL function glReadPixels().  There is surely a comparable command in other graphics APIs.  The rest you’ll need to translate to the programming language of your choice.  If you have trouble finding image converters or movie makers, you can always scoot over to a windows machine and follow the above advice for making movies from a series of images.

           

 

Newsgroup (git.cc.class.cs4451b): Announcements, questions, answers.  To access the newsgroup using pine:

logon to gaia.cc.gatech.edu

% pine

 

Choose: L -> Folder List

Choose: News on news.gatech.edu/nntp

'A' -> Add a newsgroup

Enter: git.cc.class.cs4451b

 

Now git.cc.class.cs4451b should appear above.

Choose: git.cc.class.cs4451b

 

Now you are looking at the messages in the newsgroup.

 

To post: You can 'C' = compose or 'R' = reply to the newsgroup.

 

When you compose or reply to the newsgroup it is posted and can be seen by

everyone.

 

Sample code is available for SGI (sample-sgi.tar), Linux (sample-lnx.tar), and Windows (sample-win.zip).  It is intended to help you get started with the homework.  It draws lines, triangles, and polygons of different colors using OpenGL.  For example, to extract, compile, and run the Linux example:

 

% tar -xvf sample-lnx.tar

linux/

linux/Makefile

linux/prog1.c

% cd linux

% make

cc -O -IOOT/include -I/usr/local/include/glut -LD_MSG:info=31:off=31   -o prog1 prog1.c -L/lib -L/usr/local/lib32 -lglut -lGLU -lGL -lm

% ./prog1

The SGI version is analogous.  In windows, use WinZip to extract the files.  Open the .dsw file in Visual C++ (build and run).  If you have trouble with gl.h in windows try using this version instead (gl.h). 

Previous CS 4451 Classes: Summer 2002, Spring 2002, Fall 2001

OpenGL and GLUT:

Setting up OpenGL and GLUT on Windows

OpenGL.org

Older Version of OpenGL redbook

Fast OpenGL and GLUT tutorial

OpenGL.org's GLUT documentation page

GLUT for Win32 page

Handouts and key points for all lectures

1. Please check each Monday and Wednesday before noon, download new material, print it, and bring to class the next day.

http://www.gvu.gatech.edu/~jarek/courses/4451&6491/

 

2. OpenGL tutorial for Sept. 3. Below are the code examples:

      - For an example of how to draw a 3D sphere plus lighting try light.c.

      - If you would rather use gluLookAt() try 3d.c.  This does the same thing as the original sample code only in 3d.

      - For an example for how to use gluUnproject try unproject.c.

 

3. A flier for the CoC Distinguished Lecture by Prof. Fred Brooks.

Schedule

Tu

20_Aug

 

GVC fields, B-splines

 

 

Th

22_Aug

 

Tmeshes and normal estimation

 

 

Tu

27_Aug

 

Tet vol, PMC, intersection with ray

 

 

Th

29_Aug

 

Subdivision surfaces

 

B-splines due

Tu

03_Sep

 

Intersection detection, trimming

 

 

Th

05_Sep

 

Revisions/Discussions

 

 

Tu

10_Sep

 

MIDTERM 1

 

 

Th

12_Sep

 

Sweep, CSG, BSP

 

 

Tu

17_Sep

 

Render Raycasting shadow feelers

 

 

Th

19_Sep

 

OpenGL shading, viewing

 

 

Tu

24_Sep

 

Perspective, clipping scan-conversion

 

 

Th

26_Sep

 

Fred Brooks DLS (location TBD)

 

 

Tu

01_Oct

 

Floor shadows and shadow buffer

 

Subdivision due

Th

03_Oct

 

IBR areas, texture-mapping

 

 

Tu

08_Oct

 

Tour into the picture

 

 

Th

10_Oct

 

Light and perception

 

 

Tu

15_Oct

 

Fall Break

 

 

Th

17_Oct

 

Lightfields

 

 

Tu

22_Oct

 

Point-based rendering

 

 

Th

24_Oct

 

Comparing graphic techniques

 

 

Tu

29_Oct

 

Revisions/Discussions

 

Photo measure due

Th

31_Oct

 

MIDTERM 2

 

 

Tu

05_Nov

 

ANIMATION areas

 

 

Th

07_Nov

 

Scene graph and parametric motion

 

 

Tu

12_Nov

 

Distance and collision

 

 

Th

14_Nov

 

Physic-based simulation

 

 

Tu

19_Nov

 

Trivariate deformations

 

 

Th

21_Nov

 

3D morphing

 

 

Tu

26_Nov

 

Start-up ideas

 

Billiard game due

Tu

03&05_Dec

 

Project presentations