Instructor: Dr. Roger D. Eastman (first initial last name)(at symbol)cs.umd.edu
Day and Time:
Location: Computer Science Instructional Center (CSIC) Room 1121
Instructor Office Hours: MW 1-4 pm, T/Th 9-12 am, and by appointment.
Teaching Assistant: Patrick Owen, powen12 at terpmail dot umd dot edu
TA Office Hours: T/Th 12:00-1:45 PM, W 10:00-12:00 PM
TA Office Hours Location: A.V. Williams 4101
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. Video source: Fully CGI video "The Third & The Seventh" by Alex Roman
The link for the class schedule is at the bottom of the page: Class schedule and initial presentations. On the schedule are first day presentations for an idea of course content.
There will be no required textbook. Notes will will be distributed to supplement lectures. Recommended textbooks, for which readings will be posted, are:
Linear algebra (MATH 240) and data structures (CMSC 420). You should be able to program with simple data structures, solve simple polynomials and handle the basics of linear and vector algebra, including differential calculus and trigonometry. We will review required math techniques. A major theme of the course is connecting mathematical concepts with their implementation in programs.
We will use Java and OpenGL for labs and projects, including the Java based programming system Processing (processing.org). If you are interested and able to support yourself in another language (such as C++ with QT) check with the instructor.
Assignments in the class will include written homeworks, lightweight programming labs, and three major projects. Exams will count for 30% points, labs and projects for 45% and homework for 25%.
Homeworks are due at the start of class and not accepted late, but the low grade will be dropped and all student will have one pass to hand in a homework one class period late. Labs and projects will be typically due by by midnight of the due date, with a 15% penalty if two days late, and 20% for each day past that.
Grades will be available on grades.cs.
Feel free to drop in during office hours, or for short questions at other times (I’m in class all T/Th afternoon, and generally not in on Fridays). If the stated office hours don’t work then check with me on alternative times. Making appointments by email can be useful. I will respond to email questions on the class, but not to directly assist on assignments, certainly not at the last minute. We will use Piazza for general assignment questions.
We've created a CMSC427 Fall 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:
The web has many useful references for computer graphics principles and systems, as well as a number of open sources software libraries and applications. Some we will use, some you may simply find interesting.
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. Unless otherwise specified in an assignment, all work should be your own. You can check with classmates on the specifications of problems on assignments, so you understand what is required, but solving the problem should your sole work. If you get outside help from others, web information, books, cite your sources. Representing others’ work as your own is clear plagiarism and will be dealt with under university policies.
Setting up your personal computers for class programming assignments can be a challenge in graphics, given the frequent complexity of the libraries and hardware involved. Getting assistance from in or outside the class on getting vanilla, starter lab and project code installed and running is NOT cheating for the purposes of this class. How to configure graphics libraries is not a graded part of this class.
When appropriate, for items not listed here we will go by campus policies as set at http://www.ugst.umd.edu/courserelatedpolicies.html
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."
|Week 1: 8/29||L1: Intro and parametric curves (PC)
|Hw1:Graphics Resume docx (due 8/31)
Hw1:Graphics Resume pdf (due 8/31)
|8/31||L2:Polylines and polgyons
[Polyglines] [Processing] [GLprimitives]
[ProcessingSketches] [GLPrimSketches] [Reading: Pearson intro]
|Hw2 Parametric curves (due 9/5))
Lab0 Generative art (due 9/7)
|Week 2: 9/5||L3: Vectors |
[Handouts] [Line Intersection1] [Line Intersection2]
|9/7||L4: Meshes in 3D
|Hw3 Vector (due 9/11))
Lab1 Validating Polygons (due 9/19)
|Week 3: 9/12||L5: Meshes continued
NEW[FrameForCurve] [SurfaceNormal] [MeshFromSurface]
|Dot Product Exercises (NOT due)
|Week 4: 9/19||L7: Transforms and perspective
|9/21||l8: Transforms and OpenGL pipeline
|Dot Product Exercises solutions
|Week 5: 9/26||L9: Rasterization|
|9/28||L10: Basics of shading
[Intro to Shading]
|Lab3 Camera (due 10/10)
MicroLab: OpenGL(try by 10/3)
Hw4 Transformations (due 10/3))
|Week 6: 10/3||L11: Shading II
|10/5||L12: Shading and review|
[Camera examples] [Diffuse shading notes]
[Camera motion notes]
Quiz 1 prep
|Week 7: 10/10||L13: Quiz 1 + shading||Quiz 1 prep SOLUTIONS|
|10/12||L14: Modeling revisited||
Lab 4 DUE Thursday Oct. 19th
HelixFly.pde (for Lab 4)
Hw5 DUE Tuesday Oct. 17th
Quiz 1 solutions
|Week 8: 10/17||L15: Scene modeling (SM) I
RobotArms.pde (for lecture)
|10/19||L16: OpenGL and JOGL
OpenGL Shader Programming
OpenGL/JOGL Notes (A)
Lab5 (due TBD)
|Week 9: 10/24||L17: Scene modeling, culling
Quick notes: culling and texture
Midterm practice AA
|Week 10: 10/31||L19: Advanced rendering (AR)
|11/2||L20: Advanced rendering: Texture
|Week 11: 11/7||L21: Advanced rendering: Global
Project 1 shaders
|11/9||L22: Advanced rendering|
|Week 12: 11/14|| L23: Advanced rendering Concepts
Advanced local shading
|11/16||L24: Advanced rendering in OpenGL
|Week 13: 11/21||L25: 3D Data capture
3D data capture
|11/28||L26: Advanced modeling: curves
Parametric curve PPT
Notes on parametric curves
Bezier curve in Processing
|12/30||L27: Advanced modeling: surfaces
Parametric surfaces PPT
Hw 6 curves
Lab 6 Frenet
Lab 7 3D capture
|Week 15: 12/5||L28: Advanced modeling: fractals
Parametric surfaces PPT
|12/7||L29: Review for final! |
Final prep Version 1
| Hw 6 SOLUTIONS CORRECTED 12/18
|12/19||Final Exam, Tuesday, Dec 19 in CSIC 1121
Time 10:30 AM - 12:30 PM
Practice final solutions