In this assignment you will create a simple OpenGL 2D application to create a flash animation. The animation does not have to necessarily be what is in the video.

computer science

Description

In this assignment you will create a simple OpenGL 2D application to create a flash animation. The animation does not have to necessarily be what is in the video.

The basics can be separated into two different executables (to simplify your life)

  • the first uses simple geometry and transformations to create a small animation (start with triangles, later use Bezier)
    • one level of transformation hierarchy (e.g. flapping wings) (25%)
    • one animation bezier path (e.g. translation/rotation/scale of bat around scene) (35%)
  • 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 (25%)
  • drawing text is not required, but you can just load simple texture for it

Start the assignment by animating a few simple triangles (e.g. the wing of the bat can be approximated by triangles). Later on you can replace these with Bezier curves, polygons and textures.

Advanced Functionality (2%-63%)

Note many operations can either be performed on the CPU or the GPU (CPU/GPU points for the same feature do not accumulate).

Modeling

  • generate content with convolutions (see sun halo in teaser image) (1% CPU, 2% separable filter, 3% GPU, 4% separable filters on GPU)
  • rasterize the Bezier polygon into a polygon (render the Bezier boundary to a frame buffer, then use parity check to perform inside/outside on each scan-line) (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) (5%)
  • effcient Bezier evaluation (recursive deCastlejau split rule) (5%)
  • use tessellation shaders (OpenGL4 only) to draw Bezier curves efficiently (5%)

Effects

  • anti-alias each frame of your animation (clearly you cannot use GL_MULTISAMPLE) (4% CPU, 6% GPU)

Animation

  • arc-length parameterization of motion trajectories (2%)
  • ease-in/out for the animation path (1%)
  • save your animation as a MOV/AVI * just use some screen capture software (2%) * dump framebuffer as images then load the image sequence as video (5%)
  • let it snow!! particles, geometry shaders and sprites (10%)

Software Engineering

  • code quality (e.g. organization, Object Oriented programming) (5%)


Related Questions in computer science category