Instructor: Dr. Zia Khan (my
first name)(at symbol)cs.umd.edu
Day and Time:
Tuesday 3:30pm-4:45pm
Thursday 3:30pm-4:45pm
Location: Computer Science Instructional Center (CSIC) Room 1122
Instructor Office Hours: By appointment and will schedule based on demand.
Teaching Assistant: Javran Cheng, javran(at)cs.umd.edu
TA Office Hours: Tuesday/Thursday 1pm-3:30pm
TA Office Hours Location: AVW 4103
piazza
An introduction to the principles of computer graphics. Includes an introduction to graphics displays and systems. Introduction to the mathematics of affine and projective transformations, perspective, curve and surface modeling, algorithms for hidden-surface removal, color models, methods for modeling illumination, shading, and reflection. Image source: Secret Life of Pets by Universal Pictures and Illumination Entertainment.
For the assignments, you'll need to have Qt 5.7.x or newer installed. Please follow this document with instructions for Windows, Mac OSX, and Linux InstallingQtCMSC427.pdf. Do not try to build it from source. Use one of the pre-built packages with OpenGL support for your compiler. We will be using the submit server at submit.cs unless otherwise specified.
Written assignments are to be done alone.
We've created a CMSC427 Spring 2017 Piazza Page. Feel free to discuss homework and ask questions. We'll try to reply as quickly as possible. Also, please make sure you follow proper netiquette. Any comments or answers must be on topic, polite, and respectful of others. For more information on proper netiquette, I encourage everyone to read the following resources:
I've adapted a simple OpenGL program from the book Foundations
of 3d Graphics. You can download it here:
CMSC427_HelloWorld2D.zip
You can use this program to see if your graphics card can handle the
assignments (your card supports shaders). What you should see a little square
with a picture of a squirrel that stretches left and right. If you click on
the window and drag left and right with the mouse button held down, you should
be able to control this stretching. You can also learn more about the version
of OpenGL your graphics card supports by using GLview
If you see nothing on the window, please see how to use the computers in
McKeldin Library in the InstallingQtCMSC427.pdf
document.
The grade distribution is below
15% written questions (based on lecture material and readings)
40% programming assignments
20% midterm
25% final
Grades will be available on grades.cs.
Programming assignments will be done in pairs. Note that you and your partner are the only people that can collaborate on your code, you must give proper attribution for any ideas/code taken from the textbooks or the web. It's allowable to talk to other students about ideas and approaches, but not code. You can get support code from example programs from the web or the text book. In all of these cases, you must reference your sources (web, other student, textbook, etc). You cannot share your code with another student (not in your group) or use ideas/code without attribution. Where possible, you must use the Qt OpenGL Helper and Math Classes.
You will loose 5% per day the assignment is late unless granted special permission by the instructor.
Please read the UMDCP attendance policy. Please do email me if you find yourself falling behind in class. I’m here to help.
Maintaining your reputation is critical in business and in science. Please read the UMDCP academic integrity policy. There is a lot of OpenGL source code on the web. Please do not just cut and paste this code into your assignments. Please do not post your assignments online. To help prevent copying and pasting, you will be required to use the OpenGL helper classes in the Qt Library unless otherwise instructed.
I encourage you to provide me with input and feedback during the semester. At the end of the semester, you'll be asked provide formal evaluations at www.courseevalum.umd.edu. Your evaluations will be used to improve the class in following years.
The schedule will be updated frequently over the semester.Please check back regularly. TBD designates "to be determined."
Date | Lecture | Assignment |
---|---|---|
Week 1 | ||
1/24 | NO CLASS WINTER BREAK | |
1/26 | L1:Course Introduction [L1:slides] |
|
Week 2 | ||
1/31 | L2:Introduction to C++ [L2:slides] |
A1: Modify HelloWorld2D |
2/2 | NO CLASS Instructor at Meeting | |
Week 3 | ||
2/7 | L3: HelloWorld2D/OpenGL [L3:slides] CMSC427_minimalGL_2D_twoTriangles.zip CMSC427_HelloWorld2D.zip |
|
2/9 | L4:Color [L4:slides] |
|
Week 4 | ||
2/14 | L5:Images, Sampling, and Reconstruction [L5:slides] |
A2:Image Processing |
2/16 | L6:Images, Warping, and Compositing [L6:slides] |
|
Week 5 | ||
2/21 | NO CLASS Instructor at Meeting | |
2/23 | L7:Introduction to Geometry [L7:slides] |
|
Week 6 | ||
2/28 | L8:Triangle Meshes [L8:slides] |
|
3/2 | L9:Geometry Processing and Subdivision Surfaces [L9:slides] |
A3:Mesh Processing |
Week 7 | ||
3/7 | NO CLASS: Instructor at Meeting | |
3/9 | L10:Parametric Representations [L10:slides] |
|
Week 8 | ||
3/14 | NO CLASS: Snow Day | |
3/16 | MIDTERM EXAM | |
Week 9 | ||
3/21 | NO CLASS: Spring Break | |
3/23 | NO CLASS: Spring Break | |
Week 10 | ||
3/28 | L11: Implicit Representations [L11:slides] |
|
3/30 | L12:Geometric Transformations + Scene Graphs [L12:slides] L13:Rotations + Quarternions [L13:slides] 2D Transformation Game |
|
Week 11 | ||
4/4 | L14:Viewing Camera Transformation Demo wireframe.zip |
A4:Materials, Textures, and Transformations |
4/6 | L15:Triangle Rasterization and Visibility [L15:slides] |
|
Week 12 | ||
4/11 | L16:Direct Lighting [L16:slides] CMSC427_minimalGL_3D.zip |
|
4/13 | L17:Texture Mapping & UV Parameterization [L17:slides] |
|
Week 13 | ||
4/18 | L18:Shadow, Normal, Environment, and Bump Mapping [L18:slides] |
|
4/20 | L19:Addressing Scene Complexity [L19:slides] |
|
Week 14 | ||
4/25 | L20:Ray Casting + Intersections [L20:slides] | |
4/27 | L21: Accelerating Intersections [L21:slides] |
A5: Ray-Triangle Intersection Acceleration |
Week 15 | ||
5/2 | L22:Global Illumination [L22:slides] |
|
5/4 | L23:Animation and Skinning [L23:slides] |
|
Week 16 | ||
5/9 | L24:Particle Systems [L24:slides] |
|
5/11 | L25:Collisions and Spring Mass Systems [L25:slides] |
|
Finals Week | ||
5/19 | Final Exam, Friday, May 19 in CSIC 1122 |