Hi, I recently started on another project to improve particle systems: Paged Particle Buffers. The basic idea can be found here:
http://wiki.blender.org/index.php/User:Phonybone/Modular_particle_system/Buffer_Management Now i have completed the first 2 steps of 1) encapsulating particle access by use of iterators and access functions (instead of plain pointer arithmetic) 2) converting basic buffer management to make use of pages I can not yet show interesting videos, since i disabled some parts of the particle systems to make the process easier, but i was able to make a few comparisons and evaluations of memory allocation behaviour i'd like to show. One thing i did was create a test case (30000 particles emitted over 3000 frames, lifetime 100 frames with 50% randomness) to demonstrate the significant amount of memory the paged buffer can save. Here's the test result: http://www.pasteall.org/pic/3890 (Note: the paged particles (green curve) lack correct lifetime randomization, that's one of the minor problems ;) ) Another (and maybe more important) improvement over the current system is that the paged buffer allows arbitrarily emitting particles during the simulation, therefore making animated emission rates possible! Here i added a simple "emission rate" property + slider and played around with the emission rate: http://www.pasteall.org/pic/3886 Hope you like it. Cheers phonybone _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
