Particle and Dynamic Animation (Houdini II)
- High School
Using the knowledge gained from experimenting with POPS, I created a multi-layered water fountain that dynamically responded to music.
My goal with this project was to take the advantages of the different methods to render particles and combine them in a way to create a complete water system. There are three main ways to render particles: as points, as a meta surface, and as geometry (or spheres). Much like a water fountain has different layers of particle dynamics (the top spray, the main stream, the falling mist, the splash with the main ground plane surface), the different render methods suit themselves to different parts of this system. There is no single method that solves all. Using meta surfaces to render the super small, fine mist at the top of the fountain doesn't make sense, neither does it make sense to use millions and millions of infinitely small points to render the main core of the stream of the water fountain. By dividing the fountain into different behavior groups, I can easily render each method using a different technique.
This desire also fell easily into my secondary goal of learning Houdini's render layer / render passes system. I knew how to do this type of rendering in Maya and I wanted to know how to do the equivelent thing in Houdini. Also learning how to do a camera matchmove in Houdini was necessary so I could use Houdini as my 3D application along with Maya.
What I Learned/Challenges
- I learned how to efficiently set up Houdini for compositing work using Render Takes and chaining render nodes together for a single and simple render at the end of production.
- I learned more about the different methods to render particles and the advantages and disadvantages of each method.
- It was challenging to build a "simple" procedural network to create the various systems of a water fountain's spray while reducing redundancy and maximizing control.
-When everything was said and done for the deadline of this project, I saw how bad the popping is of the meta_geo particle pass was, and I'd like to go back and recreate that to be more seamless and fluid, using more metaballs.
- I'd really like to go back and select a different music track (or edit how the music is being manipulated inside of Houdini) that will allow for more breaks or ups and downs of the water jet spraying water.
Technical Breakdown/Extra Information
To expedite the creation process of these multiple layers of the water fountain, I used a single POP node that controlled how the overall water fountain behaved. It had all of the forces and controls built into it so that when it was set up, it created a "complete" water fountain. Through expression, I was then able to take this main fountain and break it apart and create only the necessary particles per system. For example, the fine mist at the top of the fountain: using the correct dynamic behavior for that particle system, it creates the mist particles as points (never assigning a surface to it) and deletes any of the unnecessary particles to save space since this grouping of particles are then cached out to disk. For a meta surface (like the main stream), it will create only the particles for the main jet (never creating the mist of fall particles) and then write that to disk as points. Then it will read it back in, assign the meta surface, do necessary modifications to make it smoother, and then write those modifications back out to disk as geometry instead of points. That way all of the "render time" is done at the front end and when it comes to render, it's near instantaneous since there doesn't need to be any calculations for the physical shape of the particles.
This idea is continued into rendering. I have created multiple render passes, each only renders the necessary particle system, and with the render pass, I am able to render using a set-naming convention that makes it easier to read in once I have my render passes. Since I did a relatively complex fountain that has multiple layers of water jets, I needed to composite each grouping of jets first by itself (so that all of the layers of that group of jet would be correct) and then composite the four different jet groups together into a final image. Normally, this would require having four large groups of compositing nodes in Nuke, each group doing the same process to combine each group of particles together. For example, I'd have emitter number one layering the mist on top of the main stream. And then I'd have emitter two also layering the mist on top of the main stream. As well as emitter three would be layering the mist on top of the main stream. So on and so forth, each emitter with more layers than just the mist and the stream. Well, I decided to use Nuke's multiple "View" system to make this easier. The View system is prodominently used for stereo (a left and right eye view), and in the end, it performs a series of operations to each stream of data (the left and the right eye). I used this technique to quickly and neatly combine my four emitters together, since each emitter had the same number of render passes for the water fountain, each being combined in the same manner. So instead of having a left and a right view, I created four views: emitter one, emitter two, emitter, three, and emitter four. And then I layered each of the passes of the mist on top of the stream through one stream of data that is actually applying the same layer manipulation to all four views, or emitter groups. At the end of the Nuke operations, I then seperated the four streams of data out into individual "views" or images, and then layered those completed emitter groups properly. With this technique, I created any number of emitter groups and performed any number of compositing tricks to create a final image, easily with just one stream of operations.
--Include a technical breakdown explaining the project if necessary or other useful/fun pieces of information. Provide source materials, concept designs, screenshots or videos to help better explain what has been done to create the final work.--
This class continued to teach Houdini while focusing heavily on particle and dynamic effects. It dealt with the POPS, DOPS, VOPS, and VEX networks.