Project: Modeling Global Force and Pressure in a Particle System
- Name: Michael Culek
- Course: Computer Graphics II; 4003-571
- Instructor: Reynold Bailey
- Project URL: http://mxc4873.blogspot.com/
Summary
This will be an attempt to create a particle system that has inter-particle interaction through the use of pressure (density model) and global/local forces on the particles. The end result will have a small applet/interactive demo which will model the behavior of particles based on user defined forces.
Project Objectives
- Become more familiar with DirectX.
- Create a model for creating interactive particle systems that are aware of neighboring particles and forces that are not defined within themselves.
- Get a better understanding for ways to model fluid-like behavior without the overhead cost of a typical collision system.
System and Software
This project will be written entirely on a Windows-based machine through the use of the DirectX11 API. If time permits, I will also attempt to eliminate CPU cycles by offloading calculations to the GPU via DirectCompute.
Components
- The project will involve a standard forward renderer to render the particles, likely with the help of instancing to reduce the draw costs. Particles will be drawn as textured quads using a billboard effect instead of actual spheres to eliminate extra computational costs.
- There will be a GUI system (or some undetermined other way) to allow the end user to add or subtract forces and pressure into the system to watch how particles react. There will likely also be pre-implemented functionality that can be enabled or disabled by the click of a button.
Project Responsibilities
I will be working alone and will take on all responsibilities.
Project Timeline
Weeks 4-5
- Research and gain understanding of particle systems.
- Look into methods of modeling fluid-like behaviors among particles
Weeks 6-7
- Work on implementing a small world in DirectX11
- Add in a particle system to the engine and have them obey simple rules
- Implement a simple GUI system
Weeks 8-9
- Implement advanced particle system with rules to obey and underlying pressure and force system in order to mimic real-world behaviors such as gravity, repulsion, etc.
- Add in ability for user interactions (adding in custom forces, pressures, etc in real time)
Weeks 10-11
- Finalize and polish off (hopefully) working system.
- Prepare for final presentation and add in any pre-designed demos
Final Presentation
I would like to display my project as an interactive demo that users can play with via my laptop; however, depending on the computational power and hardware requirements for the demo, my laptop may not be able to handle it. If this is the case, I will likely record myself playing with features and settings and showing off specific examples of what is possible and play back the recording in place of the interactive demo. During this demo/recording, I will explain what is going on step by step.
After the demo, I will give a short explanation of my findings and method of producing my results (algorithms, equations, and short explanation of the data structures and code I used)