Stumbled across a informative video about what it takes to scale your web app with django the other evening.
Setting up passes for your render can be a pain especially if you want per light bundle exports. Houdini does not support this by default (as far as I know) and making a tool that does this has always been something I wanted to do. Recently I achieved that result using SOHO (Script Output of Houdini Object) and a custom version of the Mantra node.
Today I just want to explain it, later I will upload a completed version of it to our git.
I started with the wanting to achieve a few things when creating a version of the Mantra node.
- Automatic Per Light Exports
- Per Light Exports that respect bundle groupings.
- Allow for the AOVs to be dumped into another file.
- Allow it to work with a Vanilla Mantra node.
Luckily 1 and 3 were already almost complete as Houdini Supports per like exports and dumping AOVs to another file. The problems really like with 2 and 4. Exporting a pass per light is possible, exporting a pass per light bundle is not. This has surprised me as I love light bundles because it allows me to group a bunch of lights under "KEY" or "FILL" and expecially in a large scene with 10+ lights I do not want a pass for each light per component as that could mean 20-50 different layers and that is a little much to manage.
Create Custom Render Parameters and use SOHO to export predefined passes during IFD Generation.
First I needed to define some passes. I did this inside of a yaml file. In there I defined a number of attributes per pass including whether it supported light exports.
Next I created the Custom SOHO Parameters. There is not a lot of documentation on this but its as simple as create a file that defines from render properties. I have to do this because when the IFD generation occurs on render parms are attainable (easily) .
Finally, I had to create a IFD hook that ran after the default plane generation, during this hook I also set it up so it exports out AOVs (seperated into DATA and LIGHTING) to a different file. I just prefer that workflow. Addtionaly I take this moment to group the lights by their light bundles. If the light does not have a bundle just my a layer with its own name. This ensure that bundle groups will be respected but they can be mixed with non-bundled lights.
Ever wonder how ILM creates the magical explosions, dust, and volumetric? What makes there system tick? Plume. ILM has always been, what I consider, the embodiment of what FX is, the combination of art, technology, and passion. Plume is proof that when Engineers and Artists get together they can create some amazing works and why I believe studios and artist should look to the RND Teams to create the tools they need/want.
Creating Debris is an essential part of being an Houdini Artist. Learn to create efficient debris simulations in this weeks quick tip for Houdini! We will explore three method to instancing and stamping debris geometry onto our particle sims! We will use some simple expressions and little bit of Pack Primitives to improve the performance of copying our debris to our particles.
Sometimes we just do not have time to create our directories and having nuke error on the farm or when rendering locally can be a real headache. Todays Tip is about Creating Automatic Directories in Nuke using Python. We setup a environment where the write path is create automatically at render time! This is designed to work locally or on a server farm!