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.
Instructor
Jarek Rossignac
jarek@cc.gatech.edu
Office: 256
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.
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.
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
Older
Version of OpenGL redbook
OpenGL.org's GLUT documentation 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 |
|
|