$23.99
Overview. In this assignment you will get a hands-on introduction to procedural animation by creating your own particle system engine. A particle system is a large collection of a small number of shapes which taken together have the visual appearance of some desired phenomena. Here, you will build a simple particle system engine, and showcase its use to create a variety of visual effects.
Requirements. You will need to write code that can produce several different phenomena using particle systems. Simulations of water, fire, and a magic spell/fireworks are required; others may be added for additional credit. Below is a break down of various features and how many points they are worth.
Check-in. This assignment has a mandatory check-in due mid-way through the
assignment. For this, you must turn in a webpage with a video of a ball bouncing on
the floor in a physically realistic fashion.
Required Features
*(15) Ball bouncing on floor
*(15) Water Fountain or Spout Simulation
*(15) Fire Simulation
*(15) Magic Spell or Fireworks Simulation (particles must change color over time)
Strongly Suggested Features
(5) Art contest (see below)
(5) 3D user controlled camera (must allow translation and rotation) (5) 3D implementation
(5) Particle-obstacle interactions
(5) Benchmark-1: 500 particles simulated and rendered at over 20 FPS (5) Video(s) documenting your system and highlights features
Additional Features
(5) Textured sprites for particles (5) Tails on particles
(5) Translucent particles
(10) Continuous Collision Detection (must document trade-offs)
(10) Simulation-driven audio
(10) Real-time user interaction with system (more than start/stop of flow) (10) Multiple interacting particle systems
(10) Benchmark-2: 1,000 particles simulated and rendered at over 30 FPS
More things to simulate
(5) Snow
(15) Smoke Simulation (include textured, translucent particles for full credit)
(35) Galaxy Simulation (particles must attract each other and look nice) (50) Real-time implementation of Genesis Device effect
(100) SPH Fluid Simulation
Advanced Features
(10) Thread-parallel implementation (must document performance gain)
(10) SIMD implementation (must document performance gain)
(10) Benchmark-3: 10,000 particles simulated and rendered at over 30 FPS
(10) Benchmark-4: 100,000 particles simulated and rendered at over 30 FPS
Grading Criteria
Simulations must animate well and look convincing to get full credit. Partially implemented features will receive partial credit. Points past those needed for full credit will count as extra credit, though at a discounted rate (see Grading below). If you do other things you think are cool and worth credit let me know before hand, and be sure to document it in the report.
Art Contest
If you generate a pretty image (even by accident), save it to submit to the class art
contest. A large pool of honorable mentions will be given 5 points, and the grand
winner gets 10 points. All winners will be chosen completely subjectively.
Use of other code and tools
Anything you are getting credit for must be code you wrote for this course. You
must write the code for the simulation yourself! Playing with the particle system function in an existing game engine is useful, but will not count towards this assignment. Likewise, finding working code from the internet may be useful for future personal projects, but to receive a grade for this assignment you must turn in your own simulation code you wrote yourself. External libraries may be used for aspects that are not related to simulation (e.g., rendering, camera motion, video capture) just be sure to document that you used these.
Partners & Groups
You may work in pairs for this assignment. Each pair should turn in only one
assignment. Both people will be given the same grade.
Scoring
Partial credit will be given. Scores computed as follows (points above 100 possible):
-Undergraduate: Grade is √(totalPoints * 100) [e.g., 100 points will be full credit]
-Grad students: Grade is √(totalPoints * 84) [e.g., 120 points will be full credit]
What to turn in
You must make a submission webpage with:
• Images of your particle systems
• A brief description of the features of your implementation
• Code you wrote
• List of the tools/library you used
• Brief write-up explaining difficulties you encountered
• Submission for the art contest (optional)
Remember, if you don’t tell us about it, we can’t give you credit for it.
If you need help creating a webpage, many online resources exist. UMN’s Google
Site: https://sites.google.com/a/umn.edu it’s a great place to start, especially if you
have never made a webpage before.
Hints
-The particle system lecture should get you halfway there
-The differences between fire, smoke, water, and magic can be as easy as changing particle colors and turning off gravity. Implement other features to get additional credit.
-Start early and this should be an easy assignment!