CPSC 4050/6050: Introduction to 3D Computer Graphics
|Section(s):|| 6050: 001,843; 4050: 001 |
|When:|| MW 4:00-5:15 |
|Where:|| McAdams 114; In-person lectures, recorded and posted to ensemble |
|Instructor:|| Jerry Tessendorf|
|Office Hours:|| Tue/Thu 10am-12pm, via in-person or zoom. Also by appointment. |
| || |
|TA Office Hours:|
| || |
|Textbook:||Eric Lengyel, "Mathematics for 3D Game Programming and Computer Graphics", Third Edition, Cengage Learning, 2012.|
|Videos||Lectures are recorded and located here: https://ensemble.clemson.edu/Playlist/f8F2Dxr7 |
NOTE: Ensemble playlists are quirky. Some videos published to a playlist dont show up in it, and some playlist items are duplicated. As the semester progresses, links for individual lectures will be added to this webpage.
A broad introduction to 3D computer graphics theory and practice. The representation, generation, manipulation, and rendering of 3D objects in a computer graphics environment. Topics may include
- The pillars of 3D computer graphics
- modeling geometry
- light and shade geometry
- viewing 3D world
- sampling 3D world
- Points, Vectors and Vector Algebra
- what is a vector?
- geometric interpretation of a vector
- additive operations
- dot product
- cross product
- solving geometric problems with vector algebra
- Storage and display of Images
- greyscale and RGB color
- color systems and color spaces
- ACES and OpenColorIO
- color displays and output devices
- LUTS (http://www.redsharknews.com/post/item/2966-the-beginners-guide-to-luts)
- image file formats and libraries
- conversion between formats
- OpenEXR and OpenImageIO
- OpenGL routines
- Geometry I
- Rendering I
- ray casting
- ray intersection with geometry
- a raycasting renderer for planes and spheres
- Shading I
- ambient, diffuse and specular reflection
- Phong shading model
- Geometry II
- polygonal surfaces and data structures
- implicit and parametric surface representations
- Rendering II
- global vs. local illumination
- rendering equation
- recursive raytracing as a solution
- accelerated raycasting
- Matrices and matrix algebra
- matrix representation
- matrix-vector multiplication
- the 2D and 3D affine transforms
- Coordinate systems and camera models
- coordinate system transformations
- representations for rotations
- camera models
- Rigging and Animating Geometry
- rigging concepts
- weighting models
- keyframe animation
- procedural animation
- pose space deformation
- Rendering III
- screen space vs. object space renderers
- projection systems, orthographic and perspective
- homogeneous coordinates
- scan conversion (rasterization)
- Geometry III
- scene graphs and hierarchical modeling
- Open Scene Graph
- OBJ file format
- alembic file format
- Shading II
- bidirectional reflectance distribution function
- procedural shading
- texture maps and antialiasing
- Open Shading Language
- Geometry IV
- polynomial representation of parametric curves
- piecewise cubic curves
- biparametric surfaces
- subdivision surfaces
- Rendering IV
- ambient occlusion
- image based lighting
- path tracing
- photon mapping
- particle clustering
- perlin noise
- Simulation I
- Newton's Laws
- discrete time stepping
- ballistic motion
- damped/driven harmonic oscillator
- rigid bodies
- Simulation II
- Fluids - gases
- Fluids - liquids
- ray marching
- rendering equation: radiative transfer
- level sets
This course is designed to train students in the basic principles of 3D Computer Graphics, so that they will be able to
Students attend lectures, read, discuss, and complete quizzes. They also complete a several programming projects designed to expand their practical knowledge of the field of 3D graphics.
- understand the internal workings of commercial systems for the rendering of digital images from 3D models
- write their own software for 3D modeling and rendering
- use 3D graphics API's
- undertake creative work and research in 3D graphics
Below is the intended schedule for the semester, and is subject to change to adapt to unexpected circumstances. Any changes will be updated in this schedule.
| ||Monday ||Wednesday||Friday ||Reading |
|Week 1 Aug 16-20 || No class ||Introduction to course|
A short history of computer graphics
|Review CG HISTORY and CG HISTORY: RHYTHM & HUES links|
|Week 2 Aug 23-27 ||3D Vectors, Points, Matrices |
|Basic Geometric shapes:|
plane, sphere, triangle, box
|Ch 2, 3.1, 3.2, 3.3, 5.1, 5.2|
|Week 3 Aug 30 - Sep 3 ||OpenGL and GLUT|
|Displaying basic shapes in OpenGL + GLUT|
|OpenGL Programming Guide, GLUT API|
|Week 4 Sep 6-10 ||Rays and intersections with shapes |
|Rays and intersections (continued)|
|Project 1 due||6.1,6.2|
|Week 5 Sep 13-17 || digital images, pixels, color |
|Pin hole camera|
Organization of a basic ray tracer
|Week 6 Sep 20-24 || Reflection, shading |
|OpenGL display of images |
Image file formats
| ||7.1, 6.3, 6.4, 7.3, 7.4, 7.7|
|Week 7 Sep 27 - Oct 1 ||Polygons, texture coordinates, vertex normals, obj files |
|Project 2 due|
|Week 8 Oct 4-8 ||Review for exam and project 3. ||EXAM 1 on weeks 1-6|
|Week 9 Oct 11-15 || FALL BREAK || Intro to Volumes. video |
|Week 10 Oct 18-22 ||Global Illumination |
The rendering equation
|Monte Carlo path tracing|
|Project 3 due||ch 8|
|Week 11 Oct 25-29 || Image-Based-Lighting |
| Simulation: particles, fluids, cloth, rigid bodies|
|Week 12 Nov 1-5 || Polynomial curves and surfaces |
|EXAM 2 on weeks 7-12|
|Week 13 Nov 8-12 ||Industry standards: |
obj, alembic, fbx,(b)geo, etc
OpenEXR, OpenImageIO, OpenTimelineIO,
Universal Scene Description (USD)
Academy Software Foundation (ASWF)
VFX Reference Platform
|Week 14 Nov 15-19 ||FK, IK, Rigging |
| Project 4 due|
|Week 15 Nov 22-26 ||Coordinate transforms |
Local and global coordinates
|THANKSGIVING HOLIDAY||Ch 4|
|Week 16 Nov 29 - Dec 3 ||Volumes, noise |
|Production Pipelines, Departments, Responsibilities||Project 5 due|
|FINAL EXAM on weeks 1-16 || December 7, Tuesday, 7-9:30 pm || ||
- John F. Hughes, Andries Van Dam, Morgan McGuire, David F. Sklar, James D. Foley, Steven K. Feiner, Kurt Akeley, Computer Graphics Principles and Practice, Third Edition, Addison-Wedley, 2014
- Steve Marschner and Peter Shirley, Fundamentals of Computer Graphics, Fourth Edition, CRC Press, 2016.
- David Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, Steven Worley, Texturing and Modeling A Procedural Approach, Third Edition, Morgan Kaufmann, 2003.
- Jules Bloomenthal, ed., Introduction to Implicit Surfaces, Morgan Kaufmann, 1997.
CG HISTORY: RHYTHM & HUES
GRAPHICS OPEN SOURCE PROJECTS
The grade will be based on three kinds of evidence:
- Five coding projects demonstrating your practical understanding of the implementation of an algorithm(s) (10 points each)
- Two written exams during class time (10 points each)
- participation in class (10 points)
- final exam (20 points)
The total maximum points is 100.
The grade is relative to the percentage of 100 points achieved.
Grades: A > 90%; B > 80%; C > 70%; D > 60%; F < 60%
For each coding project, the allocation of the 10 points will be based on the following considerations:
Each project has a due date, and there is no opportunity to hand them in late.
If you are having trouble completing them, you are encouraged to come to office hours and share your problems with the instructor and/or TA. If the due date and time is approaching, you are better off handing in material that is incomplete or not working, than handing in nothing at all. Partial credit can be given for incomplete/incorrect work, but no credit can be given when nothing is handed in.
- Does it work as expected and efficiently? (7)
- Is the code clean, organized, demonstrate pride of craftsmanship, and easy to build? (3)
All of the coding projects involve programming in C++. Work may be done on any computer supporting C++, but the grade will be based on my ability to compile and run your code on a School of Computing linux computer. For reference purposes, students are provided with a "starter kit" with a basic implementation of particle motion and display, which students may use as the basis of their own assignments, if they choose. The starter kit is here
PROJECT HAND IN
Projects will be handed in using the School of Computing handin mechanism https://handin.cs.clemson.edu/. The assignment needs to be encapulsated in a zip file before it is submitted. The zip file should have the very specific name
where username is YOUR username. For example, if I submit project 2, it should be in a zip file named jtessen.zip.
IT IS VERY IMPORTANT THAT YOU CAREFULLY FOLLOW THIS REQUIREMENTS. FAILURE TO DO SO WILL COST YOU POINTS. DONT MESS UP ON THE SMALL STUFF. Documentation exists on the website.
You have several choices in how you submit the assignment:
Remember that you can submit to handin as many times as you like until the expiration date of the assignment. Only the last submitted version will be graded. So it is safe to submit an incomplete assignment early, just to make sure that the submission process functions, then later do it again for the version of the assignment you actually want a grade on.
- Use a browser to log into the Webhandin website, handin.cs.clemson.edu, and submit the .zip file of the assignment. This can be done from any computer.
- Use the linux command, handin, to submit the .zip file.
IT IS YOUR RESPONSIBILITY TO ENSURE THAT YOUR ASSIGNMENT MAKES ITS WAY TO THE HANDIN SYSTEM, REGARDLESS OF THE PERFORMANCE OF THE TOOLS PROVIDED. YOU CAN DOUBLE CHECK WITH WEBHANDIN TO VERIFY THE SUCCESS OF YOUR UPLOAD.
Keep in mind that it is safe to hand in an assignment/project more than once before the deadline. The last submission will be the one that is graded. Handing in a partially completed assignment early is a good way to make sure that you understand the technical steps to do it, and if an unexpected crisis happens and you miss the deadline, then at least you have submitted something that gives you partial credit.
IF YOU WAIT UNTIL THE LAST POSSIBLE MOMENT BEFORE THE DEADLINE TO SUBMIT SOMETHING, HAVE UNEXPECTED TROUBLE, AND MISS THE DEADLINE BY SECONDS, YOUR APPEAL FOR MERCY WILL NOT BE SUCCESSFUL. PLAYING CHICKEN WITH YOUR GRADE IS NOT A WINNING STRATEGY.
Communications between the students and instructor/TA will be via the following mechanisms:
The primary tools for communications from instructor to students will be Zoom (lectures) and Canvas (announcements, grades).
- In-person: before class, after class, office hours. Dont be shy.
- Zoom: this will be the video conference platform for live lectures and online office hours. During lectures, students are highly encouraged to ask questions and challenge the lectures. Zoom invitations will be posted on Canvas.
- Ensemble: Lectures will be recorded and posted to ensemble.clemson.edu at the URL listed at the top of the syllabus.
- Canvas: Announcements for the class will be posted to canvas, including the Zoom meeting invitations. Canvas will also be the location where assignment grades are posted.
- Email: This mechanism is available as a means of having one-on-one conversations if needed. In unforeseen circumstances, announcements to the class may be posted via email.
Students are expected to be courteous and respectful in all interactions with fellow class members, TAs, and the instructor (whether this interaction occurs online, during class, or outside of class). Student misconduct will not be tolerated. Student misconduct includes, but not limited to, arguing with an instructor or TA about course policies, being rude or disrespectful towards a fellow class member or an instructor, sleeping in class, disrupting class, using a computer or other device during class without authorization from the instructor, showing up to class late or leaving class early without permission from the instructor, and refusing to follow course policies or instructions stated by an instructor.
The instructor and TAs have the right to assign seats or to ask students to move to another seat if they feel it is necessary, and refusing to sit in an assigned seat will also be considered as an act of student misconduct. NO tobacco products or electronic cigarettes are allowed to be used during class or labs, including cigarettes, cigars, chewing tobacco, dip, etc. For the first case of student misconduct, students may have points deducted from their Quiz grades or their final grade might be lowered by one full letter grade (i.e. an A becomes a B, B becomes a C, etc.) at the instructor's discretion. In extreme cases, or if the misconduct persists, a grade of F will be assigned to the student, and the student will not be allowed to attend class thereafter.
"As members of the Clemson University community, we have inherited Thomas Green Clemson's vision of this institution as a high seminary of learning. Fundamental to this vision is a mutual commitment to truthfulness, honor, and responsibility, without which we cannot earn the trust and respect of others. Furthermore, we recognize that academic dishonesty detracts from the value of a Clemson degree. Therefore, we shall not tolerate lying, cheating, or stealing in any form."
When, in the opinion of a course instructor, there is evidence that a student has committed an act of academic dishonesty, the instructor must make a formal written charge of academic dishonesty, including a description of the misconduct to Dr. Jeff Appling, Associate Dean of Undergraduate Studies. The reporting instructor may, at his/her discretion, inform each involved student privately of the nature of the alleged charge. In cases of plagiarism (I.B.2.) instructors may use the Plagiarism Resolution Form available from the Office of Undergraduate Studies.
Steps to help prevent academic dishonesty are:
- Familiarize yourself with the regulations.
- Refuse to assist students who want to cheat.
- Protect your work! Do not allow anyone to copy any part of your work, and report anyone who tries to copy from you to the instructor or TA.
- Do not copy any code from any unauthorized source. An unauthorized source includes, but not limited to, any webpage, online source, document, book, or person not affiliated with our course.
- If you have any doubt about what constitutes academic dishonesty, ask your instructor before you turn in an assignment.
Furthermore, selling, posting, or giving away course content such as slides, notes, or any information about exams, quizzes, assignments, projects, or lectures is considered an act of academic dishonesty (unauthorized assistance) unless you have written permission from the instructor. All work submitted for grades should be your own work, and you cannot copy, paraphrase, or modify any work from any source not explicitly permitted by the instructor. The instructor has the right to run programs to detect evidence of unauthorized assistance (usually in the form of copying from another person or unauthorized source) in any assignment submitted by a student in this semester, previous semesters, or future semesters. Cheating has severe consequences, please do your own work!
Class Accommodation and Accessibility
Clemson University values the diversity of our student body as a strength and a critical component of our dynamic community. Students with disabilities or temporary injuries/conditions may require accommodations due to barriers in the structure of facilities, course design, technology used for curricular purposes, or other campus resources. Students who experience a barrier to full access to a class should let the professor know, and make an appointment to meet with a staff member in Student Accessibility Services as soon as possible. You can make an appointment by calling 864- 656-6848, by emailing email@example.com, or by visiting Suite 239 in the Academic Success Center building. Appointments are strongly encouraged, drop-ins will be seen if possible, but there could be a significant wait due to scheduled appointments. Students who receive Academic Access Letters are strongly encouraged to request, obtain and present these to their professors as early in the semester as possible so that accommodations can be made in a timely manner. It is the student's responsibility to follow this process each semester. You can access further information here: http://www.clemson.edu/campus-life/campus-services/sds/.
Inclement Weather Policy
If a class is cancelled due to inclement weather, the instructor will make alternative arrangements for submitting work that was due that day. Usually the work will be due the next class, unless specified otherwise.
Academic Continuity Plan for this course
Clemson has developed an Academic Continuity Plan for academic operations. Should university administration officially determine that the physical classroom facility is not available to conduct classes in, class will be conducted in a virtual (online) format. The University issues official disruption notifications through email /www /text notification/Social Media.
When notified, students will use Clemson Canvas to find important information about the class. Teachers will also provide students with information on what to do in this case.
Late Instructor Policy
If the instructor or a lab instructor is late to class or labs, then students should wait at least 15 minutes and check the course announcements before leaving.
Clemson University Title IX (Sexual Harassment)
Clemson University is committed to a policy of equal opportunity for all persons and does not discriminate on the basis of race, color, religion, sex, sexual orientation, gender, pregnancy, national origin, age, disability, veteran's status, genetic information or protected activity in employment, educational programs and activities, admissions and financial aid. This includes a prohibition against sexual harassment and sexual violence as mandated by Title IX of the Education Amendments of 1972.
This policy is located at http://www.clemson.edu/campus-life/campus-services/access/title-ix/. Ms. Alesia Smith is the Clemson University Title IX Coordinator and the Executive Director of Equity Compliance. Her office is located at 110 Holtzendorff Hall, 864.656.3181 (voice) or 864.656.0899 (TDD).
Students are responsible for learning and following all policies stated in this syllabus. This course syllabus is a general plan for the course; deviations announced to the class by the instructor may be necessary. Tentative course schedule will be frequently updated.