CPSC 8190: Physically Based Visual Effects

Spring 2023
When: MW 2:30-3:45pm
Where: McAdams 110E and online
Instructor: Jerry Tessendorf
Email: jtessen@clemson.edu
Office:McAdams 302
Office Hours: MWF 10 AM - 12 PM in-person and on zoom (see canvas for zoom link)
... and whenever I am in my office. Drop by. Or make an appointment.
TA:
TA Office Hours:
TA Email:
Webpage:https://people.cs.clemson.edu/~jtessen/cpsc8190
Textbook:No textbook. There are many online materials to work with.
VideosThere is no plan to record the lectures
Syllabuspdf

DESCRIPTION

Below is the planned set of topics. However this course will be flexible, based on student feedback and performance. More topics may be included, or fewer, as needed.

Topics may include

RESOURCES

SUPPLEMENTARY RESOURCES

VOLUMES IN FILM & ONLINE

  • Fellowship of the Ring river
  • XXX avalanche
  • Stealth jet fuel cloud
  • Golden Compass Dust
  • Golden Compass Aurora
  • A-Team clouds
  • Superman Returns & Happy Feet splashes
  • Mummy avalance
  • 2012 pyro
  • Harry Potter X
  • BattleField: Los Angeles
  • Battleship
  • Solaris & Spore
  • pretty much every frame of Avengers Infinity War (hyperbole)

OBJECTIVES

At the completion of the course, students will be able to:

SCHEDULE

Week #Dates Monday Wednesday
Week 1 Jan 9-13 Introduction to volumes and course
review linear algebra
Week 2 Jan 16-20 No Class - MLK Holiday fields in theory and code,
field operations
field transforms
Week 3 Jan 23-27 Implicit functions,
Gradients
Volume rendering
Week 4 Jan 30-Feb 3 Volume rendering & artifacts full and sparse grids, interpolation
Project 1 due
Week 5 Feb 6-10 Lights & deep shadow maps (DSM) Signed Distance Functions
Closest Point Transform
Nearest Point Transform
Week 6 Feb 13-17 Level sets,
Level sets from geometry
Geometry from level sets
Week 7 Feb 20-24 noise
pyroclastic spheres and shapes
noise animation
noise and field stamping
Project 2 due
Week 8 Feb 27 - Mar 3 wisps Terrains
Week 9 Mar 6-10 Vector Fields & Gradients Velocity Fields
Week 10 Mar 13-17 Incompressibility Advection Schemes
Project 3 due
Week 11 Mar 20-24 SPRING BREAK SPRING BREAK
Week 12 Mar 27-31 Characteristic Maps Smoke Simulation
Week 13 Apr 3-7 Gridless Advection Griddless CFD
Project 4 due
Week 14 10-14 Nacelle Mapping Curved Ray Marching
Week 15 Apr 17-21 Meepzoids Level set smoothing
Project 5 due
Week 16 Apr 24-28 Radiative Transfer
Multiple Scattering
Planckian Locus
Finals ???? Project 6 due FILM FESTIVAL

GRADING

There are 6 projects in this class. The first 5 are worth 10 points, and project 6 is worth 20 points. There are also 20 points possible for class participation. There is a total of 90 possible points. The grade is relative to the percentage of 90 points achieved.

Grades: A > 90%; B > 80%; C > 70%; D > 60%; F < 60%

For projects 1-5, the point assignment will be based on the following considerations:

  1. Does it work and the images look good? (3)
  2. Is the code clean, organized, demonstrate pride of craftsmanship, and grokable? (3)
  3. Is the presentation organized and executed well? (2)
  4. Have you handed in the images?(2)

For project 6, the grading considerations are:

  1. Does it work and the images look good? (10)
  2. Have you handed in the images?(10)

PROJECTS

All of the projects involve programming in C++. Work may be done on any computer supporting C++. For reference purposes, students are provided with a "starter kit" with a basic implementation of a volumetric class, which students may use as the basis of their own projects, if they choose. Students must hand in the code and the rendered images they generated for the project. Points are awarded for the act of handing in the images, not for the creative or artist qualities of the images. The code must also be handed in and will be evaluated, but there will be no attempt to compile or execute the code.

The project descriptions are not fully detailed. It is up to the students to identify any ambiguities or issues, and either resolve them or seek guideance from the instructor.

Project 1: Humanoid Avatar
Due date: February 1

Use csg operations (union, intersection, cutout, and shell) and basic implicit shapes to create a figure that is humanoid. Humanoid means it has two legs, two arms, and a head. Highly realistic is nice, but so is highly artistic. Copyrighted and trademarked characters are not allowed. At least 25 implicit shapes must be used, including at least one of each of the basic shapes: sphere, ellipse, torus, cone, box, icosahedron, and steiner patch. Each of the csg operations must be used at least once. The humanoid must have at least 3 distinct colors. Generate a 120 frame render of a turntable, 1920x1080, EXR format. EXTRA CREDIT: up to 5 additional points for visual creativity, as judged purely by the instructor.

Project 2: Levelsets
Due date: February 22

Generate a levelset of the Stanford bunny and one of the Utah teapot. Render 120 frame turntables of each, using key, fill, and rim lights. Combine the teapot, bunny, and your humanoid using CSG operations to (1) remove the lid of the teapot and then (2) have the bunny peaking out of the teapot, so that only its head shows, and finally (3) the combined teapot and bunny are held by your humaoid. Render a 120 frame turntable using key, fill, and rim lights (for demonstration of these lights, see DPA 819 Physically Based Effects/Lighting). The frames should be 1920x1080. You can use density and color grids as you like to speed up rendering. For example, if you sample your humanoid to density and color grids, the rendering will speed up enormously. Just make sure you use sufficiently high resolution in your grids for the humanoid to still look good.

Project 3: Wedges
Due date: March 15

Generate the following three wedges. Each wedge must be at least 500 frames long, 960x540 exr. The density must be lit by one key and one fill light. There must be no emission. Each wedge is based on one guide particle, and each frame is a different setting of the indicated parameters. Use a grid that is at least 500x500x500 in size. The DSM grid can be any size, but be careful about artifacts. 1. Wisp wedge, with 5 million wisp dots in each frame. Parameters to vary: octaves, freq, fjump, clump. 2. Noise wedge. Parameters to vary: octaves, freq, fjump, fade. 3. Pyroclastic wedge. Parameters to vary: octaves, freq, fjump, gamma.

Project 4: Kingdom of the Lost Implicit Function
Due date: April 5

Build a terrain using implicit functions, level sets, noise, and any other volume tools we have discussed. The terrain should have, as a minimum:
  • mountains and valleys
  • a land bridge
  • a cave
  • a statue/monument
  • a volcano caldron
  • smoke emitting from the volcano calderon
You need only one light, overhead, and white only is ok. If you want to add lights and color, please feel free to do so without penalty. Render four views showing the entire scene, as in the examples below. 1920x1080. The examples below have artifacts, and a similar level of artifacts in your images will be acceptable, though not desireable.
For this one assignment, there will be no in-class presentations. Instead, handin your images in the usual fashion. It would be helpful, but not required, to include an image with labels of all of the features you implemented.

There are up to 5 extra credit points for implementing some of the following additional features:

  • a waterfall using wisps
  • grass in a valley
  • flowers in a valley
  • bunnies in the grass/flowers
  • a small indigineous community

There are up to 5 points of extra credit for having both smoke and waterfall, and animating their noise parameters so that they flow and look good, as shown in a 100 frame animation.

The scoring of extra credit points will be a pure judgement call on my part as to how well you implemented any of the features you attempted. If it helps, you can submit additional images that showcase these features.

Project 5: Advected Refinement
Due date: April 19

1. Start with a levelset of the Stanford bunny. Add a level of pyroclastic displacement. Then gridlessly advect the density just a small amount to fluff up the displaced bunny. Render a 120 frame 1920x1080 sequence that starts with the bunny with no displacement or advection, ramps the displacement magnitude up to full value over 60 frames, then ramps advection up to full value over the remaining 60 frames.
2. Start with a levelset of the Stanford bunny. Gridlessly advect just the ears of the bunny, leaving the body untouched. Render a 120 frame 1920X1080 turntable of the density.

Project 6: The Big Final Project
Due date: Final Exam

The final project should be a really spectacular animated scene exactly 360 frames (15 seconds) long @ 24 fps, 1920X1080 resolution, exr format. We will have a Film Festival & VFX quiz. You may work in groups of 1, 2 or 3 to build the final project, but the larger the group the better the quality expected.


PROJECT PRESENTATIONS

The projects are to be handed in via the handin system, described below. The items to be handed in are (1) The collection of images required, and (2) the code you have written and used to generate the images. There will be no attempt to compile and run the code, but it will be graded based on its "cleanliness" and functionality. Please organize your images and code is an easy to understand collection of directories, and zip them all into a single zip file, as described below.

On the day of the final exam, we will have a film festival of all of the project 6 short films. We may also have a VFX trivia quiz. The quiz does not affect your grade, but may affect your knowledge of the VFX industry. The quiz is just for fun.


STARTER KIT

To help launch students into this course, a small "starter kit" is provided here. It contains some C++ code for the base class design of a volume system. This can be used to launch into the class projects. Students are free to use this starter kit in any way that helps them, or not use it all.

PROJECT HAND IN

Assignments and 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 assignment 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.


Previous Student Work

Here are some examples of previous student work in this course.

COMMUNICATIONS

Communications between the students and instructor/TA will be via the following mechanisms:
  1. Zoom: this will be the video conference platform for live lectures and online office hours. During the live lectures, students are highly encouraged to ask questions and challenge the lectures, via direct questioning of the instructor in the video conference, or via asking questions or commenting on the chat. The instructor will monitor the chat and seek to answer any questions during the lecture. Invitations will be generated for each individual zoom session and posted on Canvas.
  2. Ensemble: Lectures will be recorded and posted to ensemble.clemson.edu at the URL listed at the top of the syllabus.
  3. 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.
  4. 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