Reference no: EM132395214
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.
Basic Functionality
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)
o one level of transformation hierarchy (e.g. flapping wings)
o one animation bezier 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)
o editor that allows to change Bezier handle positions and tangents
• 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
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)
• triangulate a Bezier polygon with trapezoidal decomposition
• use textures with alpha-blending (e.g. the wing is just a textured quad where some of the pixels are just transparent)
• effcient Bezier evaluation (recursive deCastlejau split rule)
• use tessellation shaders (OpenGL4 only) to draw Bezier curves efficiently
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
• ease-in/out for the animation path
• save your animation as a MOV/AVI * just use some screen capture software * dump framebuffer as images then load the image sequence as video
• let it snow!! particles, geometry shaders and sprites
Software Engineering
• code quality (e.g. organization, Object Oriented programming)
• use of git repository (i.e. frequent commits with quality log messages)
• software documentation (comments)
Note: Coding should be in c++.
Attachment:- flash animation.rar