Assignment 3: Due November 30, 2018 at 11:59:59 pm

Overview

The purpose of this assignment is to explore animations for computer graphics and make use of the curve rendering we have talked about in class and in the labs. There are two major parts to this assignment.

Part 1:

This part of the assignment is to animate of a set of at least 100 particles that are continuously emitted from an emitter where each particle has its own life time (different from the other particles).

During the life time of each particle, some aspect of the property that is used to render the particle must change. Some examples are:

You must animate at least one property of the particles using the particles' life time.

Part 2:

The second part of this assignment is to animate the position of the particle emitter using a looping C-2 continuous curve we have talked about in class.
You can decide which C-2 curve to implement, but you must clearly define which curve you implement in the header comments of the cpp file containing main().
Since none of the curves we talked about are looping by definition, you will be graded on your method of connecting both ends of the curve. It is likely that we didn't talk about how to connect curve ends together, so you will likely need to research on how to do this.


The emitter must progress from one end of the curve (continuous in parameter space) to the other, then reset to the beginning and continue on. In world-space the emitter will seem to loop indefinitely.

Input/Output Specification

You must implement a curve progression speed that can be incremented and decremented using the '+'/'-' keys on the keyboard.

You must implement at least 3 particle emission rates that can be changed with the number keys on the keyboard.

You must implement a debug renderer for your curve that can be toggle its visibility by pressing 'd' on the keyboard.

Your program can can be called as follows..

eg.

assignment3

Grading rubric

The grading for this assignment is as follows:
5% - Your program compiles without errors or warnings.
5% - Your program brings up an OpenGL window with the specified characteristics.
45% - Particle emission and rendering.
	5% - Particles emit from an emission position.
	5% - Particle emission rate is mapped to the number keys.
	10% - The particles update as expected.
	10% - Particles render as billboarded quads.
	15% - Have their own life time and animate/render some aspect using that life time.
45% - Curve path.
	20% - Curve is defined and calculated correctly.
	5% - Can debug draw the curve (by pressing D).
	10% - The particle emitter animates following the curve as defined.
	10% - The speed of the emitter's position on the curve is changeable by the +/- keys.
All necessary code and data must be tar and zipped into a file with your full name or student number. eg. FirstLast.tar.gz or 123456789.tar.gz

Code Files

No code files beyond what is provided in the labs will be provided for this assignment.