CPSC 4050/6050: Introduction to 3D Computer Graphics

Fall 2021
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
Email: jtessen@clemson.edu
Office:McAdams 302
Office Hours: Tue/Thu 10am-12pm, via in-person or zoom. Also by appointment.
TA:Liang Gao
TA Office Hours:
TA Email:liangg@g.clemson.edu
Webpage:https://people.cs.clemson.edu/~jtessen/cpsc4050+6050
Textbook:Eric Lengyel, "Mathematics for 3D Game Programming and Computer Graphics", Third Edition, Cengage Learning, 2012.
VideosLectures 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.
Syllabuspdf

DESCRIPTION

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
pixmaps
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
lines
planes
spheres
Rendering I
ray casting
ray intersection with geometry
a raycasting renderer for planes and spheres
Shading I
lightings
ambient, diffuse and specular reflection
Phong shading model
Geometry II
polygons
polygonal surfaces and data structures
implicit and parametric surface representations
blobbies
quadrics
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
delta-mush
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
Particles
particle clustering
perlin noise
attributes
sprites
Simulation I
Newton's Laws
discrete time stepping
ballistic motion
damped/driven harmonic oscillator
rigid bodies
Simulation II
Fluids - gases
Fluids - liquids
goo
oceans
cloth
Volumes
density
ray marching
rendering equation: radiative transfer
level sets
OpenVDB

OBJECTIVES

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.

SCHEDULE

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 WednesdayFriday Reading
Week 1 Aug 16-20 No class Introduction to course
A short history of computer graphics
video
Review CG HISTORY and CG HISTORY: RHYTHM & HUES links
Week 2 Aug 23-27 3D Vectors, Points, Matrices
video
Basic Geometric shapes:
plane, sphere, triangle, box
video
Ch 2, 3.1, 3.2, 3.3, 5.1, 5.2
Week 3 Aug 30 - Sep 3 OpenGL and GLUT
video
Displaying basic shapes in OpenGL + GLUT
video
OpenGL Programming Guide, GLUT API
Week 4 Sep 6-10 Rays and intersections with shapes
video
Rays and intersections (continued)
video
Project 1 due6.1,6.2
Week 5 Sep 13-17 digital images, pixels, color
video
Pin hole camera
Organization of a basic ray tracer
5.4, 5.5
Week 6 Sep 20-24 Reflection, shading
video
OpenGL display of images
Image file formats
video
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
video
meshes
video
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
video
Monte Carlo path tracing
Acceleration structures
video
Project 3 duech 8
Week 11 Oct 25-29 Image-Based-Lighting
Ambient Occlusion
video
Simulation: particles, fluids, cloth, rigid bodies
video
Week 12 Nov 1-5 Polynomial curves and surfaces
video
EXAM 2 on weeks 7-12
Week 13 Nov 8-12 Industry standards:
obj, alembic, fbx,(b)geo, etc
OpenEXR, OpenImageIO, OpenTimelineIO,
OpenVDB
OpenColorIO, ACES
Universal Scene Description (USD)
Academy Software Foundation (ASWF)
VFX Reference Platform
video
Subdivision surfaces
Week 14 Nov 15-19 FK, IK, Rigging
video
Animation
video
Project 4 due
Week 15 Nov 22-26 Coordinate transforms
Local and global coordinates
Instancing
Scene description
video
THANKSGIVING HOLIDAYCh 4
Week 16 Nov 29 - Dec 3 Volumes, noise
video
Production Pipelines, Departments, ResponsibilitiesProject 5 due
FINAL EXAM on weeks 1-16 December 7, Tuesday, 7-9:30 pm

OTHER TEXTBOOKS

  • 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.

RESOURCES

BRDFs

CG HISTORY

CG HISTORY: RHYTHM & HUES

GRAPHICS OPEN SOURCE PROJECTS


GRADING

The grade will be based on three kinds of evidence:
  1. Five coding projects demonstrating your practical understanding of the implementation of an algorithm(s) (10 points each)
  2. Two written exams during class time (10 points each)
  3. participation in class (10 points)
  4. 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:

  1. Does it work as expected and efficiently? (7)
  2. Is the code clean, organized, demonstrate pride of craftsmanship, and easy to build? (3)
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.

CODING PROJECTS

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

ProjectDue DateDescription

Project 1:

Sep 10 23:59:59

Description

Project 2:

Oct 1 23:59:59

Description Example ppm file

Project 3:

Oct 22 23:59:59

Description

Project 4:

Nov 19 23:59:59

Description

Project 5:

Dec 3 23:59:59

Description


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

username.zip
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:

  1. 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.
  2. Use the linux command, handin, to submit the .zip file.
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.

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

Communications between the students and instructor/TA will be via the following mechanisms:
  1. In-person: before class, after class, office hours. Dont be shy.
  2. 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.
  3. Ensemble: Lectures will be recorded and posted to ensemble.clemson.edu at the URL listed at the top of the syllabus.
  4. 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.
  5. 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.
The primary tools for communications from instructor to students will be Zoom (lectures) and Canvas (announcements, grades).

POLICIES

Conduct Policy

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.

Academic Honesty

"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:

  1. Familiarize yourself with the regulations.
  2. Refuse to assist students who want to cheat.
  3. 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.
  4. 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.
  5. 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 studentaccess@lists.clemson.edu, 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. i

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).

Syllabus Policy

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.
END