I have a system that generates particles from sources and updates their positions. Currently, I have written a program in OpenGL which calls my GenerateParticles(...) and UpdateParticles(...) and displays my output. One functionality that I would like my system to have is being able to generate n particles per second. In my GenerateParticles(...) and UpdateParticles(...) functions, I accept 2 important parameters: current_time and delta_time. In UpdateParticles(...), I update the position of my particle according to the following formula: new_pos = curr_pos + delta_time*particle_vector. How can I use these parameters and global variables (or other mechanisms) to produce n particles per second?
I have a system that generates particles from sources and updates their positions. Currently,
Share
You need to be careful, the naive way of creating particles will have you creating fractional particles for low values of
n(probably not what you want). Instead create an accumulator variable that gets summed with yourdelta_timevalues each frame. Each frame check it to see how many particles you need to create that frame and subtract the appropriate amounts:Make sure you put some limiting in so that if the time delta is large you don’t create a million particles all at once.