CMSC427-0101: Computer Graphics-Fall 2020 reastman
CMSC427-0101: Computer Graphics-Fall 2020 reastman
CMSC427 offers an introduction to 3D computer graphics, focusing on the underlying building blocks and algorithms that enable applications such as 3D computer games, and augmented and virtual reality (AR/VR). The material covers the basics of 3D image generation and 3D modeling, with a focus on interactive applications. We will discuss the representation of 3D geometry, 3D transformations, projections, rasterization, basics of texturing and lighting models, as well as the programming of modern Graphics Processing Units (GPUs). The course exercises deepen the subject with programming projects based on Java and OpenGL. In the programming projects, students will build their own 3D rendering engine step-by-step.
In this course, students acquire the following knowledge and skills:
- Describe and apply the mathematical basics of 3D graphics (coordinate systems, coordinate changes, homogeneous coordinates, matrix operations, transformation matrices for rotation, translation and projection).
- Describe the fundamentals of digital representation and processing of color information, and its relation to the human visual system (tristimulus theory, color spaces, color transformations, gamma correction, and tone mapping). (This is the study of photometry, light as related to the human visual system).
- Describe and apply basic concepts of radiometry and light transport (radiance, irradiance, bidirectional reflectance distribution function (BRDF), and various lighting models). (Radiometry is the physical study of light independent of the human visual system.)
- Describe hardware architecture of GPUs (graphics pipeline, frame buffer, graphics processing unit (GPU), data parallelism, single instruction multiple threads (SIMT) programming model).
- Describe the software architecture of 3D graphics programs.
- Describe and apply data structures for 3D graphics applications (mesh data structures and hierarchical scene graphs).
- Describe and apply special graphics programming techniques (shader programming, texture mapping, bump mapping, shadow mapping).
- Use 3D graphics programming interfaces such as OpenGL and GLSL together with an object-oriented programming language such as Java to develop your own 3D applications.
Course Schedule, Materials, and Online Communication
The course schedule, all materials, and online communication will be managed via the course page on UMD Canvas, the electronic learning management system of UMD. Access to these resources requires login using your campus ID. We will use piazza as the online discussion forum, and you can sign up here: piazza.com/umd/fall2020/cmsc427
The instructor and teaching assistant will be holding office hours, time TBD. Other hours available by appointment. We will also be using Piazza to support questions and discussions.
Workload and Grading
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%.
The course builds on concepts from calculus, linear algebra, and algorithms and data structures. Programming assignments rely on Java. The official requirements are: MATH240; and minimum grade of C- in CMSC420; and permission of CMNS-Computer Science department. Or must be in the Computer Science (Doctoral) or Computer Science (Master's) program. Contact the instructor for further inquiries.
We will follow the guidelines set forth by of the Department of Computer Science (Links to an external site.)and the course related policies of the Office of Undergraduate Studies (Links to an external site.).
Academic Accommodations due to a Disability:
Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Accessibility and Disability Services (ADS) within the first TWO weeks of the semester.
Major Scheduled Grading Events:
The midterm and final exams are defined as Major Scheduled Grading Events. The midterm exam will take place on Thursday, October 22, 2020 (UPDATED).
Any student who needs to be excused for an absence from a single lecture, recitation, or lab due to a medically necessitated absence shall (1) make a reasonable attempt to inform the instructor of his/her illness prior to the class; (2) upon returning to the class, present their instructor with a self-signed note attesting to the date of their illness. Each note must contain an acknowledgment by the student that the information provided is true and correct. Self-documentation may not be used for the Major Scheduled Grading Events.
Submission of Homework Assignments:
Homework that is submitted after an announced deadline is graded with 50% of the original score. Homework that is submitted later than one month after an announced deadline, or after the last course session of the semester, will not receive any credit. Meeting and grading in person with the TA is considered part of the homework assignments.
Projects submitted late will be graded with 10% for the first day late, 30% for three days, and 50% for five days. Failure to meet the TA leads to application of the second late penalty, that is, grading with 30% of the original score.
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.