For this assignment, you will re-create various animations demonstrating a combination of toolbox functions and the rendering techniques you've already learned. The motivation for this is to help you become more familiar with toolbox functions as well as give you experience in producing a desired aesthetic.
Below are multiple examples of periodic animations with assigned point values. You are required to complete EITHER:
- One intermediate animation and one hard animation
- Three intermediate animations
- One Duck-Level-hard animation (at the very bottom)
You have three options for implementing these:
- Rasterizer, like homework 1
- Raymarcher / implicit surfaces, like homework 2
- Shadertoy (probably the easiest)
You can also implement different scenes with different methods.
If you'd like to implement any animations that are not listed below, you can make a private post on Piazza and we will decide if they are appropriate for the assignment, and their difficulty classification. Check /r/loadingicon on Reddit for inspiration.
Extra Credit: you can earn extra credit by creating interesting twists e.g. materials and animations that are not in the original reference. Since we are grading reference matching, additional features must be toggleable, either by a GUI option in your webgl site or by a #define statement in your Shadertoy code. This must be described in your writeup. Additionally, some of the references have some attributes that are exceptionally difficult, and do not need to be implemented for full credit; we will note what these are and they can count for extra credit.
You must submit a writeup for this assignment by 11:59 PM on Thursday, Feb. 8th to canvas as a .pdf or .txt. If your projects are hosted on Github you should copy your writeup to a readme.
Writeups must include, for each scene:
- A link to the online implementation
- A link to the reference animation
- Detailed description of techniques used to emulate the reference, for both motion and rendering
- If you implement extra credit, explain what it is and how to toggle it
Each intermediate scene is worth 1/3 credit. Difficult scenes are 2/3 credit. Duck-level scenes are worth 100% credit. Extra credit is at grader discretion and cannot exceed 20 points.
If we cannot view your work online it will receive no credit.
All shaders will be graded by this scheme:
- 65% Reference matching: does this show understanding of the motion, colors, and rendering techniques required to create the animation? This does not have to be pixel-perfect for full credit.
- 20% Writeup completeness
- 15% Performance considerations: motion should be fluid, ideally no less than 30 FPS at Shadertoy-resolution on a gaming laptop. If your shader (without EC) is seriously under-performant there will be a point penalty.
- Convincing materials, rendering, textures
- Motion blur is required, not extra credit
- Smooth blending during separation and joining of blobs is required
- Height variation is required in the extrustions
- Soft shadows required
- Depth of field (screenspace, IQ has examples)
- No text required
good luck, duck!
- Modelling the duck
- Head Bob
- Tail Wag
- Match the movement of the feet
- Shading of the duck
- Fake shadows as circles