Proposal
Real-Time Fire Simulation
We are planning to create real-time rendered fire in OpenGL. Our project will implement fluid simulation using Eulerian discretization and GPU parallelization. We would like to also introduce simulation elements such as smoke generation, polygon collision, wind, and the ability to control properties like heat, etc.
Team Members:
- Chris Zhang, SID 21460930
- Grace Li, SID 26674303
- Yuan Zhou, SID 26323141
Problem Description
We would like to explore the field of 3D fluid simulation since it is applicable to many topics in graphics. Our main concern for this project is how to create a fire simulation that both behaves realistically and is computationally efficient enough to run in real time, making it useful for games and other interactive applications. The main challenges will be modeling and constraining physics calculations to avoid unrealistic scenarios, creating sufficient advection detail to look realistic, making sure that the simulation works with long enough time-steps to be practical, as well as creating an efficient rendering method. Learning how to write efficiently GPU parallelizable code will also be a challenge for us.
Goals and Deliverables
Baseline: Our plan is to create an OpenGL program that can render fire to a fairly realistic extent. In addition to the application itself, we will include short videos and screenshots of a few different simulations.
- Metrics: Our application should run in real-time in at least 10 frames per second for large-scale simulations, and more for smaller-scale simulations. We will compare highest possible frame rate to measure efficiency.
- Questions: Our main question will be what influence each part of our implementation has on the simulation. We will also test how efficient we can make the implementation.
Stretch Goals: In addition to the basic fire simulation, we would like to implement polygon collision and the influence of external forces such as wind. Some other ideas we are exploring including smoke generation and functionality of the fluid as a light source for other shaders.
Schedule
- Week 1 (April 2 - 8)
- OpenGL Application Structure & Voxel Visualization (non-render mode)
- Week 2 (April 9 - 15)
- Working Basic Fluid Motion Functions (Low Detail Sim)
- Week 3 (April 16 - 22)
- Interactivity/User Controls, Working Render
- (Check-In)
- Week 4 (April 23 - 29)
- Improve Advection Detail, Realism
- Week 5 (April 30 - May 4)
- Troubleshooting
Resources
Software:
- OpenGL, C++, GLFW and GLAD for application
- CUDA for GPU parallelization
- GLSL for basic shading on non-fluid components
Literature and Documentation