Math 155B - Introduction to
Winter 2005, Course Web page
Instructor: Sam Buss, Univ. of California, San Diego
(old course webpage, no longer being maintained)
STUDENT FINAL PROJECTS: No longer available online:
Exam week's scheduled activities:
* Final project due: Monday midnight.
* Final project grading per sign up sheets. Tuesday 2:00-4:15, Wednesday, 3:30.
* Review session, Tuesday 1:00-2:00 in Solis 110.
* Final exam: Wednesday 11:30-2:30.
* Final project demos: In PC lab, Wednesday 2:30-3:30.
Final exam topics: Cumulative over the whole quarter. There will be a slight extra emphasis on material since the first midterm. The topics as covered in lecture are more indicative of the contents of the final. A few topics where covered better in lecture than in the books, such as shadow maps and shadow volumes. A few were covered less well in lecture, such as the damped least squares method. Two topics that will not be on the final exam are (a) over-relaxation and (b) intersection testing.
Overview: This is the second of two courses providing an introduction to 3D computer graphics, including both using OpenGL and the theory of computer graphics. Topics for Math 155B include: Bezier curves, B-splines, 3D Studio Max, Ray Tracing, Radiosity, Intersection testing, Quaternions, Inverse Kinematics.
Prerequisites: CSE 167 (with Prof. Buss) or consent of the instructor is also required. This is a second course in computer graphics. If you have not taken CSE 167 in Fall 2003 or 2004 from Prof. Buss, you have the necessary prerequisites. Otherwise, you should know the following topics, or be prepared to learn them on your own:
Syllabus: The course will
spend about 3 weeks on Bezier curves and surfaces, and on B-spline
curves. Then about 2 weeks on ray tracing, about 1 week on intesection
testing, about 1 week on radiosity. The course will end with about 2 or
3 weeks on animation (quaternions and inverse kinematics).
There is a calendar showing lecture topics that will be updated as the course proceeds.
Grading: Grading will be based on both
programming assignments and on a midterm and a final exam. It is expected
that your course grade will depend about 50% on your programming projects and
50% on your written exam work. It is not yet decided whether quizzes
and written homework assignments will be collected and graded. Grading of
projects will be individualized and one-on-one.
There will be about 5 programming assignments, culminating with an individual final project. You are expected to do your own programming and will not work in teams (except for limited exceptions in the case of the final project).
Sam Buss, Professor of Mathematics and Computer Science
Email: firstname.lastname@example.org (this is usually the best way to contact me).
Office: APM 6210. Office phone: 534-6455.
Office hours: Monday 9:30-10:30, Wednesday 2:30-3:30, Friday 10:00-11:00
Final exam week office hours: Mon 10-11, 1-2. Tuesday 10-11. Wednesday 9:30-10:30.
I have a PC in my office and can help with programming assignments there.
Please feel free to phone, email, or just stop by, for appointments at other times.
Teaching Assistants: All TA office hours will
probably be held in APM B337/B349 PC lab.
Jefferson Ng: email@example.com
Office hours: In APM B337/B349 PC lab:
Rooms and Times:
Lectures: MWF, 12:00-12:50, Warren Lecture Hall 2112.
PC lab: APM B337, B349, and APM 2444 are all available. Door code: 1206371 -- for Math 155B students only!
Textbook: (Required) S. Buss, 3D Computer Graphics: A Mathematical Introduction with OpenGL. Cambridge Univ. Press, 2003. This book has just appeared and is by your instructor. You can help out by reporting typos: there is a $2 reward to the first finder of each error! Text book web site: http://math.ucsd.edu/~sbuss/MathCG.
Programming projects: Projects must be your own individual work. Although you are allowed to seek help from others, you must design and write your own code. If you receive substantial help from fellow students or from any outside source, you must disclose this at the time your project is being graded. Violations of academic integrity will be treated seriously, and may result in referral to your college.
Project #1: Due Wednesday, January
19. Create a program that draws
Catmull-Rom and Overhauser interpolating Bezier curves.
Project #2: Due Wednesday, January 26. Create a surface using rational Bezier patches.
Project #3: Due Wednesday, February 2 (tentative). Learn rudiments of 3D Studio Max on your own.
Project #4: Due Wednesday, February 16. Implement distributed ray tracing features.
Project #5: Due Monday, February 28. Implement a "trackball" and orienation interpolation using quaternions.
Final Project: Implement an individual final project. Due date: Monday, March 14.
Quizes (if any!): Will be only a small part of the final grade. About 5%. But a great way to preview problems before the midterm and final. Quizzes will be held in the last 15 minutes of lecture. Topics and dates will be pre-announced.
1. Homework #1. Due in class, Monday, January 13. Now available: Handwritten answers in PDF format.
2. Homework #2. Due in class, Monday, February 28. Do Exercises XII.4, 5, 6, 7, 8. On pages 300-301.
There will be one midterm
exam and a final exam.
Midterm: Friday, February 11. Review session: Peterson Hall 104, Wednesday, February 11, 3:00-4:00.
1. Creating a new Visual Studio C++ .NET project.
Email announcements: May be sent to your email address as maintained by studentlink. You should check your email on a regular basis.
The official web site for OpenGL is http://www.opengl.org/. The most useful part is probably the tutorials which can be found by clicking on "Coding Resources" in the top row of buttons.
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 /
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.)
If you have compile time problems with Visual Studio.Net and the "exit( )" prototype in glut.h, I have created an updated copy of glut.h that may fix your problem. You may download it from the textbook's web page with sample OpenGL programs, http://math.ucsd.edu/~sbuss/MathCG/OpenGLsoft, (the link is near the bottom of the page).
Thanks to Jefferson Ng for this: He is
using gcc on a Macintosh and the following command line invokes the gcc
compiler for him:
gcc -framework OpenGL -framework GLUT -framework Foundation Solar.c
Thanks to Justin Nemeth for finding this item. If you are using an older version of Visual Studio.NET the .NET 2003 solution and project files will not work in the lab. You can always manually rebuild the project, and this is not very difficult for the first simple projects for the class. However, if you prefer, there is a utility Visual Studio Converter 2.0 available at http://www.codeproject.com/macro/vsconvert.asp that will automatically convert .NET 2003 files to older versions of .NET. I have not tried this out myself, so please let me know if you have problems with it.
Advertisements: Various people ask to address the class with recruitments, job opportunities, etc. I generally say no, but let them advertise down here.