Particle-based fire simulation using transform feedback and geometry shaders