In the M&E division at Autodesk we have periodical hackathons where entire groups are given the opportunity to work on projects of our chosing for two-three days. We are then given the opportunity to showcase our work to the entire division and receive feedback from our leadership. I love this, because I get to work together with some really smart people on some interesting ideas.
One of my hackathon projects last year, which I worked on with Kelvin Zelt, was to develop a simple particle system with MCG. Kelvin dubbed it project "Sprinkles". We managed to get a demo to work quite decently by using MCG as-is without any changes. We also found ways to make the core MCG evaluation much faster via lazy evaluation of arrays, but I'll save that for another post.
In the Montreal Autodesk office at 10 Rue Duke, we have been hiring a lot of interns. This program is a huge success, and I encourage students to check out the listings. In fact several recent hires have come from the intern program. On the MCG team over the last year I have gotten to work with Kevin Derler, Marc-Antoine Nadeau, and Remi Cosette-Roberge. It has been a great experience for me, and they seem to have enjoyed it as well!
Recently Remi took the particle project to another level: encapsulating a lot of the behavior in compounds and multi-threading the graph evaluation.
Because this was done using 3ds Max 2016, I thought I would share it with you is as both an inspirational use of MCG, and a tutorial for some advanced concepts such as:
- Parallel pseudo-random number generation - see "RandInt" and "RandFloat"
- Using Ray Trace scene to quickly compute collision
- Caching to manage ray trace sceen
- Using simulation graphs to have predicatable results
- Encapsulating complex behavior in compounds and using functions to describe behavior (e.g. particle construction, destruction, and updating).
This MCG tool is not a real particle system, it is just a geometry objec that it generates a TriMesh that consists camera facing squares with UV coordinates, and vertex colors. Neither Remi or I are particularly good users of 3ds Max (though Remi has more skills than me already) so hopefully someone can share a better example!
Here is the tool and a couple of sample 3ds Max files. You will need 3ds Max 2016, with at least SP1 installed. I hope you find it fun and useful!