Course Web Page - Math 155A - Introduction
to Computer Graphics
Winter 2012 -
Instructor: Sam Buss
- Univ. of California, San Diego
Announcements:
CANCELED DUE TO PNEUMONIA: Final review session:
Tuesday, March 20 at 3:00pm in APM B412.
Final exam:
Wednesday, March 21 at 11:30am.
Final project demos:
Wednesday, March 21, 2:30pm in APM B349.
Final project in-person grading:
In office hours with Professor Buss,
or with Professor Buss or TA Janine LoBue
immediately following the final project demo session.
Or, by email appointment with Professor Buss. MUST be done by
Thursday, March 22.
Overview: This course is an introduction to 3D computer graphics, including both the use of OpenGL programming and the mathematical theory of computer graphics. Topics will include OpenGL drawing primitives, 3D transformations including affine transformations, projection and perspective, Phong lighting, averaging and interpolation, texture mapping, light and color, and Bezier curves. The course will cover both the mathematical theory of graphics and the practical uses of OpenGL and GLUT. OpenGL and GLUT is a cross platform API that works on most common computer environments, including Windows, Macintosh, Unix, Linux.
Prerequisites: Some kind of programming experience, but in any of C or C++ or Java is certainly acceptable. Math 20F (Linear Algebra) is required.
Instructor:
|
Teaching assistant:
Janine LoBue. Office hours: In APM B349. Monday 11-12, Wednesday 2-4, and Thursday 2-3. Email: jlobue@math.ucsd.edu. |
|
Class meetings:
12:00-1:00, Monday-Wednesday-Friday. Solis Hall 111.
The scheduled section times on Tuesdays at 6:00pm are optional, and are
likely to be completely canceled in favor of extra contact time in the
computer lab.
(Subject to student requests and to what works well for the course.)
PC labs: APM basement rooms B349A, B325, B432.
The TA, Janine, will hold office hours in APM B349A.
See above for the
office hour times.
Grading, and presentation of final projects, will take place in the
labs.
Lab Reservations
The computers in APM B349 are reserved
for Math 155A students during the Wednesday 2-4 office hours
(but not the Monday or Thursday hours). This means that,
if there is no other computer available, you may ask
non-Math155A students to vacate a computer for you.
If there are issues,
the reservations can be seen online
at this ACMS web page.
After hours door code: 0654054. (For Math 155A students' use only.)
Grades. Grades will be based on a combination of homework, possibly quizes, a midterm, a final and programming assignments. Your course grade will be based approximately 50% on your programming projects and 50% on your written work. There will be some homework assignments, and possibly some in-class quizes if I decide they are helpful.
There will be about 5-7 programming projects, culminating with an individual final project. You are expected to do your own programming and will not work in teams. Grading of projects will be individualized and one-on-one.
Programming assignments must work on the PC lab computers for grading purposes. If you do your assignment at home, you must port it to the class PC lab computer so that it will run there under Visual C++. (You must do this by the due date of the assignment.) It is also possible to have projects graded at Professor Buss's office hours. For this, please copy (ftp or scp or ssh) your entire project directory to ieng6.ucsd.edu, where your instructor will have access to it. This copy on ieng6 should be made by the due date.
Programming assigments.
Project #0:
Getting started
with OpenGL and Visual C++. Due Tuesday, January 17.
Project #1:
Octahedra project.
Simple geometry and shading, with animation.
Due Wednesday, January 25, midnight.
Project #2:
Solar system project.
Update an animated solar system.
Due Wednesday, February 1, midnight.
Project #3:
Wireframe scene:
"Sombero" and Initials.
Due Wednesday, February 8, midnight.
Addendum on the (sin x)/x shape.
Students' web page project reports.
Project #4:
Materials and lights added your project 3 scene.
Due Wednesday, February 15, midnight.
Students' web page project reports.
Project #5:
Create a scene with a texture map.
Due Wednesday, February 29, midnight.
Final Project:
Create
an individual OpenGL project.
Due Saturday, March 17, midnight.
Students' web page project reports.
Homework assigments. May be handed in during
class, or in the APM basement dropbox..
Homework 1. Due Wednesday, January 25. Regular
Octahedra and Linear and Affine Transformations.
Homework 2. Due Friday, February 17, 3:00pm.
Normals. Interpolation.
Homework answers (PDF, scanned).
Please report any errata to Professor Buss.
Errata:
Problem #3: An answer was given for α=-1, instead of α=-2. At α=-2, the point is 〈-10,6〉
Problem 5. (Typo). The second β should be y.
Problem 8 (c,d). Correct answers are:〈1, 10/9, 1/3〉
and 〈4/3, 5/9, 1/3〉
Homework 3. Due Wednesday, March 14,
5:00pm.
RGB, HSL, non-rational and rational Bezier curves, Bezier patches,
Catmull-Rom splines.
Homework answers (PDF, scanned).
Midterm.
One midterm, Wednesday, February 22, in class.
Topics: Mathematics topics, including (pseudo)OpenGL commands
for transformations.
Midterm review session:
Tuesday, February 21 at 4:00pm in APM 7218.
Study aids: Homeworks 1 and 2. See answers to homework 2 online above.
Materials from past CSE 167 courses
is also available. These include the following from a
2004 course: (not all items in here would be covered by
our midterm):
First,
and second,
and third,
and fourth,
and fifth,
and sixth.
Final exam.
Wednesday, March 21, 11:30am-2:30am. The exam will be
cumulative. The final exam can contain topics from all material covered in class during the quarter,
with the exception of the following: Bezier Curves of Degree 4 or Greater, and Ray Tracing, and Details
of OpenGL Commands other than commands for transformations and matrices.
It can include any other topic covered in class, including OpenGL commands for transformations
and matrices, perspective transformations, Bresenham algorithm,
depth buffer, homogeneous coordinates, linear and bilinear interpolation,
Bezier curves for conic sections, Bezier curves of
degree two or three, Catmull-Rom curves, color, theory of texture maps, normals, parametric surfaces,
Phong lighting, etc., etc. You will not be allowed notes or other materials.
Study aids: In addition to the six items available above as study aids for the midterm, here
are some resources from old courses:
old homework
and its answer sheet,
and an old midterm.
For the old homework, you may ignore the part about Overhauser splines, as this topic will not be on
the final. For the old midterm, please ignore questions #3 and #4, #5c,d as these are topics
(knot insertion and B-splines and derivatives of Bezier curves) we have not covered in our
course.
Handouts.
a.
Getting
started with Microsoft Visual C++ (PDF file).
Also available in in
HTML format.
This is the same as the project #0 assignment.
b.
Instructions on turning in
a web page of your project..
Email announcements. Please be sure to read email sent to your email address as maintained by studentlink.
High tech: If you let me know ahead of time, I am willing to experiment with things like video chat by Skype for office hours. My Skype userid is SamBussSkype.
Textbooks:
(Required) S. Buss, 3D
Computer Graphics: A Mathematical Introduction with OpenGL. Cambridge
Univ. Press, 2003. This book is by your instructor.
So please let me know if you
find typographical mistakes or other errors --- I am paying cash money for any
new mistakes found in the book.
Book web site:
http://math.ucsd.edu/~sbuss/MathCG.
(Recommended) M. Woo et al.,
OpenGL Programming Guide,
any edition. Addison-Wesley. You will not need any of the
advanced features described in the later editions,
so even the first or especially the second or later editions
are fine for the purposes of this course. The first edition
is available online for free, see below for the URL.
The Visual Studio help system also describes the basic
OpenGL commands, but not the GLUT commands. GLUT documentation is
available online, see below for the URL.
OpenGL programming guide, first edition, online at: http://fly.cc.fer.hr/~unreal/theredbook/.
Other Graphics Resources: