Instructor: Dr. Zia Khan (my
first name)(at symbol)cs.umd.edu
Day and Time:
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
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:
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
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."
|1/24||NO CLASS WINTER BREAK|
|1/31||L2:Introduction to C++
|A1: Modify HelloWorld2D|
|2/2||NO CLASS Instructor at Meeting|
|2/14||L5:Images, Sampling, and Reconstruction
|2/16||L6:Images, Warping, and Compositing
|2/21||NO CLASS Instructor at Meeting|
|2/23||L7:Introduction to Geometry
|3/2||L9:Geometry Processing and Subdivision Surfaces
|3/7||NO CLASS: Instructor at Meeting|
|3/14||NO CLASS: Snow Day|
|3/21||NO CLASS: Spring Break|
|3/23||NO CLASS: Spring Break|
|3/28||L11: Implicit Representations
|3/30||L12:Geometric Transformations + Scene Graphs [L12:slides]
L13:Rotations + Quarternions [L13:slides]
2D Transformation Game
Camera Transformation Demo
|4/6||L15:Triangle Rasterization and Visibility
|4/11|| L16:Direct Lighting
|4/13||L17:Texture Mapping & UV Parameterization
|4/18||L18:Shadow, Normal, Environment, and Bump Mapping
|4/20||L19:Addressing Scene Complexity
|4/25||L20:Ray Casting + Intersections|
|4/27||L21: Accelerating Intersections
|A5: Ray-Triangle Intersection Acceleration|
|5/4||L23:Animation and Skinning
|5/11||L25:Collisions and Spring Mass Systems
|5/19||Final Exam, Friday, May 19 in CSIC 1122|