

The two most important areas for simulations, especially for pyro and flip, are source and collision – spend time on both and the simulation will yield interesting results. It's often easy to jump in to building complex velocity and or control fields but in practice they can often lead to simulations that both look and feel overworked. Simplicity is a good starting point for simulations This is easier to follow for an artist picking up the scene and much of the functionality once written in wrangles is now available in SOPs - It will save time and allow the early answering of the important questions to do with beats, timing and framing of the effect.ġ0. Never underestimate the power of simplicityīefore delving into wrangles, python SOPs or custom microsolvers try using existing SOPs to build out your initial network. Work in Houdini scale such as using mocap biped1 as scale reference.ĩ. Test render with image backgrounds to get more accurate look when composited. Use point deform to move the proxy collision.

Simplify the collision geometries using polyreduce or convert to VDBs then convert back to geometries. Adjust the attribute display type (colour, marker etc) by pressing D and going to the Visualize tab. You can visualise any geometry attribute by clicking on the "i" while hovering over a node and clicking on the attribute name. For example, this can be useful if you need to have a pattern wrapped around the 3D surface: Transform the geometry to its UVs, create your pattern and use poly extrude and Boolean to have it be the same outline as the original UV island and wrap it back onto the 3D geometry using xyzdist() in VEX. It is often much easier to transform your model's geometry to its UVs in world space and work on it as a flat surface than on a curving polygonal shape in 3D space. Utilise a model's UVs to do complex surface operations This will save you a lot of headaches down the line where an upstream change might not work well with your dependencies.ģ.

Set up a sim with source and timings that makes it look like it is. Make your setups as independent and modular as possibleĭon't cross-reference data from one stream into another and try to avoid having one sim dependent on another. In ROPs you can use this to render a limited subset of objects like myObject.Ģ. You can use ranges in your groups and ROPs to dynamically insert conditionals for group and object names.įor example: will grab all geometry with the "name" attribute containing both "piece" and "Piece" with everything that comes behind the underscore. Dynamically insert conditionals for group and object names Timothy has been teaching in various capacities, most recently at Anomalia (Czechia), at Pluralsight (City Generation with Python in Houdini), as Houdini tutor for MOPA (Arles, France) and has also done a number of Master Classes, for Bournemouth University and Staffordshire University.1. He studied digital effects at Bournemouth University and game art at the Utrecht School of Art and Technology.
#HOUDINI VEX SHADER VOLUME SERIES#
Timothy has worked on the cities for the Yorktown sequence for Star Trek: Beyond, did a variety of FX on Pirates of The Caribbean: Dead Men Tell No Tales and Birds of Paradise, and more recently worked on streaming/TV series such as Locke and Key, Vigil, The Rig, Cursed, Jack Ryan and more, and has worked on a number of commercials projects, both doing FX and building procedural modelling tools, for clients like Honda, Seat, Dyson, Argos and others. Timothy is currently a Lead FX TD at MISC Studios in London, having worked at Goodbye Kansas, Framestore, MPC, Electric Theatre Collective, and at Double Negative before.
