$24
Introduction
In this assignment you will create a simple OpenGL 2D application to create a ash animation like the one shown in halloween.mp4 in the resources folder on connex. The animation does not have to necessarily be what is in the video... be creative!
Basic Functionality (80%)
The basics can be implemented in two separate executables (to simplify your life)
the rst uses simple geometry & transformations to create a small animation (start with triangles, later use Bezier)
{ one level of transformation hierarchy (e.g. apping wings)
{ one animation path (e.g. translation/rotation/scale of bat around scene)
the second is for editing Bezier curves (number of vertices and initial layout can be hard-coded). { editor that allows to change Bezier handle positions and tangents.
(drawing text is not required, you can just load a simple texture for it if you want)
Advanced Functionality
Note many operations can either be performed on the CPU or the GPU (CPU/GPU points for the same feature do not cumulate). Other enhancements are possible and will be considered, but it is best to consult the TA/instructor rst!!
Modeling
generate content with convolutions (see sun halo in teaser image) (1% CPU, 2% separable lter, 3% GPU, 5% separable lters on GPU)
rasterize the bezier polygon into a polygon (render the bezier boundary to a framebu er, then use parity check to perform inside/outside on each scanline.) (5%)
triangulate a bezier polygon with trapezoidal decomposition (5%)
use textures with alpha-blending (e.g. the wing is just a textured quad where some of the pixels are just transparent) (2%)
e cient Bezier evaluation (recursive deCastlejau split rule) (2%)
use tessellation shaders (OpenGL4 only) to draw bezier curves e ciently (5%)
E ects
anti-alias each frame of your animation (clearly you cannot use GL MULTISAMPLE) (3% CPU, 5% GPU)
motion blur moving objects (not just global motion blur!) (2%)
Animation
arc-length parameterization of motion trajectories (2%) easy in/out for the animation path (1%)
save your animation as a MOV/AVI
{ just use some screen capture software (1%)
{ dump framebu er as images then load the image sequence as video (2%)
let it snow!! particles, geometry shaders and sprites (5%)
build a system that allows animation key-framing editing (10%)
Software Engineering
code quality (e.g. organization, Object Oriented programming) (1%)
use of git repository (i.e. frequent commits with quality log messages) (1%) software documentation (comments) (1%)
Getting started
Simply pull from the icg git repository and use the assignment2 folder as your starting point. You may post related questions on the GitHub issue tracker... and help each other!!
Suggestion: start the assignment by animating a few simple triangles (e.g. the wing of the bat can be approximated by triangles). Later you can replace these with Bezier curves, polygons and textures.
2