I really like how you've articulated your entire process. This was a very enriching read. A Well deserved feature!
Great article! Thanks for the awesome read.
Wow, this is so cool! Nice job!
Previously, Olaf Finkbeiner wrote an article for a German print magazine in which he reviewed the new features and improvements brought with Banshee, version 17 of Houdini. Today, we gladly present you its translation in English.
Banshee is the nickname for version 17 of Houdini and refers to a Scottish or Irish ghost woman who washes blood-smeared clothes or armor and is a harbinger of imminent death. Anyone who hears her singing dies. The new Houdini version, however, is not all that scary, and many of the new features are fun and (not only for Houdini standards) artist-friendly, so accessible and almost intuitive to set up.
H17 Banshee: Special Effects Sensationalism
Before you tell me that I praise Houdini too much: in parts, H17 feels like an open beta – especially the plug-in for the 3ds Max engine is unreliable and not really rich in features. If you look into the Daily Build changelog, you can see that it is still almost daily updated. After all, SideFX is transparent in this regard, and even errors reported in the forum are often fixed within days. Vellum, the new physics solver, has received quite a few fixes and real improvements over the three weeks since it was released. H17 was probably “knitted with a little hot needle” as we say in Germany, meaning here not everything went to plan during the development. You can also see that when you look at the Dynamics Development (DOPs) in the changelog. This is already visible before 17.0.352 (the release).
Houdini is very different from other DCC packages that get a fix every few months – you know which packages I mean. With Houdini, there are Daily Builds, and those who want to work straight after release with H17 have to get involved in the beta-Feeling, in order to enjoy the fixes. In any case, I would wait a bit longer in a larger or even sharp pipeline before using it. Although it is certainly already usable in most parts depending on what you do. (Update: the first updated Production Build 17.0.416 was released on the 28th of November 2018 and many things are fixed now). What is also annoying, is the sometimes missing or very techy documentation. But webinars and masterclasses will usually follow later on Vimeo, and there will be example scenes. A notable exception is the terrain tools, here a step-by-step tutorial (wow!) and two masterclasses are already available.
Going by the reactions in the Houdini forums, Vellum is the innovation, which appeals most to the play instinct of the users. Vellum (parchment) is a multiphysics solver, so it’s simulating different material properties: cloth, ropes, hair, soft bodies, and grains. The special thing is that they are simulated simultaneously and on top of each other and the object reacts to all the forces (gravitation, wind, etc.). Vellum also supports Plasticity or persistent bending. For example, someone runs through grass, and the grass stays crushed after the foot is lifted. Or easier to imagine: dents in sheet metal being hit.
Vellum was implemented in OpenCL and is usually calculated on the GPU. The CPU can be used as a fallback, with my computer the simulation took about 10 times longer. The actual motivation of SideFX was, at first, to develop a solution for Cloth. However, it soon became clear that more is possible. Vellum uses position based Dynamics or more precisely XPBD (more here in the Siggraph Paper or as a video below).
XPBD has as a special feature that it produces sort of similar results no matter how many iterations are calculated. It’s also a pretty simple calculation and therefore also suitable for real-time applications (e.g., games). The disadvantage, however, is that it is physically not so realistic, but in many cases completely sufficient and credible. One of the applied tricks to simulate large quantities of grains is to simulate until the grains almost come to a halt. From there on they sleep and they will then only act as a collision object.
As with the terrains nodes, the vellum nodes have several in- and outputs. Exactly there are three: one for the geometry, one for the constraints network and one for the collision geometry. Prior to H17, the setup of constraints networks was always quite difficult and complicated to learn. Vellum has presets, and at least the basic settings work out of the box. Moreover, constraints can also be painted on objects. For example, places where it should stick more or less. Houdini is not known for its ease of use but obviously, SideFX wants to change that. Vellum is no black box and can be extended or modified by technical artists as it is typical for Houdini. It’s also nice that SOPs or DOPs can take place, which makes it very accessible.
Vellum has also been integrated seamlessly in the Hair tools.
Vellum in short: the obligatory flags in the wind, knots, ropes, balloons, gummy bears and hair simulations will be supported.
Vellum was a lot of fun for me. I did not have much time to try everything new in Houdini. I thought, let’s try to create a knot, and that was much easier than initially assumed. For reading, learning, and setup, not even an hour was needed.
The new detangle function is a side product of Vellum. Detangle ensures that there are no Cloth self-intersections. But curves can be detangled too. In the spaghetti example, there are 300 tubes of varying thickness each with 100 sections, which are detangled against each other and primarily against the table. It only takes about 1 minute for the 300,000 grains making up the spaghetti, acknowledging it is not 100% perfect in terms of the overlap between the spaghetti, but good enough. For the procedural modeling of cables, spaghetti and plant roots Detangle is the tool of choice. It can not only be used for ropes, but it also works for surfaces and points. At the end of the Vellum setup, a post-process node will often be found. This is primarily used for the visualization and analysis of bending, bending stress, strain ratio, strain distance, strain stress. Modifications of the Geo (Smoothing, Subdivision, Detangle, and Thicken (Cloth Thickness)) can be applied during the post process without having to search a long time for extra nodes.
Character Animation Toolkit / Crowds / Hair
Special FX is known to be a priority for Houdini – and according to SideFX, the Character Toolkit is second in line. A lot has happened in terms of character animation.
- The Character Picker and the Pose Library are implemented in Python and can, therefore, be adapted to your characters need. It is not easy, but very powerful.
- Crowds tools have also evolved a lot, especially secondary FX is now much easier to implement: each agent in the crowd can get individual cloth or hair simulations. For this, the new agent Unpack Node is included. The timeline has also received a massive update, that was urgently needed and has now arrived.
- Pose Space Deformation (PSD) brought enhancement to character rigging. A simple automatic facial rig complements the whole development. I’m not a character specialist, rather the opposite, so I’m all for it adding ease of use here.
- At this point, it makes sense to mention hair. Hair can now be combed much faster. And in the OpenGL Viewport, you can see much better how the hair reacts. Clumping can now be clumped again, this is called recursive hair clumping. So strands can now have smaller strands again. And the physics simulation of hair is supported by Vellum. SideFX is also developing more and more tools for Game Developers and the hair cards that are typical for games can now be created automatically. Basically, every clump is turned into a hair card.
Broken Glass Everywhere
The motto is: help the user with more high-level tools that make it easier to break things with the new soft constraints, convex decomposition, a material-based destruction setup, and the auto-generated constraint system. In particular, the automatically-generated constraint systems make the creation of destruction setups much easier, which used to be hell before. Material-based destruction currently features concrete, wood and glass typical fracture structures. The corresponding constraints are also generated. The spider-web-like patterns known from breaking glass can be adjusted and points can be set where the glass was hit. Concrete looks good, too. The wood is ok and will be sufficient in many cases, but here I would have hoped for a bit more. Soft constraints bend until they break, and do not snap back. Convex decomposition is needed as the Bullet Solver can work much faster with convex bodies. A concave body is cut into convex parts, which are then glued together again with very strong constraints. The whole setup, therefore, simulates much faster.
Houdini is often criticized for not being a poly-modeler because that’s sort of basic 3D software functionality. But it is not easy to develop a good poly-modeler and also combining procedural and manual poly-modeling techniques. But even here Houdini has learned a few new tricks. New tools include interactive meshing, alignment, better construction plane, snap to angles – as far as the gizmos are concerned – and new hotkeys for the viewports. Poly Extrude was added, it is a good start for an interactive poly modeling workflow.
What annoys germans: the hotkeys are optimized for US keyboards and arranged on the German keyboard very awkwardly. This can, of course, be customized and does not bother anybody using US keyboard layouts anyway. Coming back to the criticism: for Houdini, there are almost no commercial plug-ins available – for other Digital Content Creation packages, there are some in bulk. I wonder why? Are the other packages missing so many features and Houdini is not? At this point, it is also good to mention that the viewport or gizmos and manipulators are now accessible via Python. This allows SideFX and the ambitious Houdini technical artist to develop tools that enable user input, meaning interactive work. Currently, the possibilities are limited to the gizmos contained in Houdini. One of the first tools done by a user was Bezier Spline Editing Tool. So, this the foundation for developing new interactive tools for modeling.
Trace SOP 2.0
The Trace SOP is one of the possible connections between COP (compositing in Houdini) and SOPs in Houdini. The trace SOP is not 100% new and existed before, but the functionality was very limited. If you are provided with templates, logos or maps as bitmaps, you can convert them directly in Houdini into 2D splines. Even something similar to tracking in moving pictures is possible in a certain way. But it’s usually about outlines, not points. One of the problems of the old Trace SOP was objects with holes, such as letters. These holes are now recognized and converted properly. Trace is a feature expected in Adobe Illustrator or Corel Draw. Having them it in Houdini as a function is very useful.
Winding Number / Graph Color
Winding Number and Graph Color make the trace SOP possible – these low-level mathematical functions are a welcome addition. And I would imagine that, for example, somebody who wants to analyze maps and develop tools to do so, will be pleased to find these functions in Houdini.
Volume sourcing has been redesigned and is now point-based and much faster. So far, it has been necessary, especially with animated source geometries, to cache them first. You should probably still do the caching most of the time, but for other reasons. Colored Smoke is now also implemented out of the box. A click on the shelf tool that smokes in color.
Time Is Running Out: the Retime SOP
A real highlight is the Retime SOP which makes it possible to retime simulation data (ie fluids, RBD and even volumes) turning them slower or faster. Retime effectively interpolates the animation, which not only simplifies the art direction of simulations but can also save simulation computation time.
Erosion is the alpha and omega of generating terrains and has been completely redesigned for H17. Clearly the biggest weakness in H16, which has now been quite satisfactory improved by SideFX. The erosions are now detailed and calculated tolerably quick. Here, too, OpenCL has arrived (which was already the case in H16), and the erosion is calculated on the graphics card. For me, that works up to about 8K resolution, because the 8 Gbyte RAM (GTX 1070) are no longer sufficient (6K still works). If the RAM on the GPU is not large enough, the OpenCL calculation must be done on the CPU as a fallback. In the Preferences (Miscellaneous), change the type to CPU and restart Houdini. It’s not exactly practical, but ok. But since also Vellum uses OpenCL too, this will also be calculated on the CPU, so better remember to reset that when the terrain maps are written to disk.
Houdini Erosion 2.0 is implemented as an animation, eroding a bit more every frame. At 8K on my computer, it took about 8 minutes per frame. In a test with a 2K terrain, even my GTX 1070 was about ten times faster than my CPU i7-5820k (6 Core 4 GHz). Apart from the fact that erosion calculations are now faster, there are now also more parameters to play around with. The masking of individual parameters is now possible and much more. Erosion 2.0 has really improved.
Flow Fields Forever
Flow Fields can be calculated based on a Height Field – one of my favorite features in other terrain generating software that is now also available in Houdini. In doing so, a map is generated which estimates the flow of water but without eroding the map. The maps are calculated very fast and they will also contain a direction vector. That is extra cool.
Mask by Occlusion
Masking areas of terrains is an essential feature that has been extended by the Mask by Occlusion feature in H17. This creates a mask representing where the terrain is hollow or indented, for example, a valley or river bed. This is accomplished by defining a maximum field of view and sending rays in random directions and counting how many times the rays hit the terrain.
Finally, Scatter 2.0. For distributing objects on the terrain has also improved a lot. Almost any thinkable rule for distributing rocks, plants on the terrain can be set. The creation of complex ecosystems is possible which is anything but easy and requires a lot of brains. Grass grows less under trees and where there are rocks, no tree will stand. One tree species grows in upper regions, the other in a valley. Reeds grow near the water and so on. Houdini distributes points with an orient attribute, which represents the orientation, and a tag attribute, i.e. a name/label. The orient attribute can also be oriented to the normal or slope of the terrain whatever makes sense for the scattered object. In addition, objects can now be distributed directly, i.e. without the extra Copy to Points nodes. This is mainly useful for masking purposes.
The UV tools already got a bigger update in H16, but that did not quite fit, and H17 goes much further. The packer packs even more tightly and can be adjusted manually. The game tools complement Game Dev specific workflows. Watch out! While UV editing is still not fun, it is a lot less annoying and automated workflows are possible in many cases. The UV Layout Node also got a second input used to specify an area within which to pack. If you need non-square layouts or want to arrange the objects mapping placement sorted on the map you will use that second input. It’s extra cool that 3D objects can be laid out in a 2D, e.g. Word Clouds can be created easily.
The Whitewater Solver has been redesigned from the ground up. The foam on the water is simulated more realistically, forms patterns and behaves like a liquid. Particle-Based Fluids are implemented in OpenCL and therefore also calculated on the graphics card. The Particle-Based Fluids Node can also be used outside the Ocean and Water tools for simpler fluids and can be combined with Vellum (see above). In addition, the narrowband water is now four times faster.
Mantra / USD / Rendering
At first glance, as far as Mantra is concerned, there is not much to report, unfortunately. What’s new is the NVIDIA Optix Denoiser, the Light Path Expressions, and multiple global illumination lights at the same time. Data Windows for Deep EXR and Alembic Layering have also been added. Improvements for SSS sampling, the space consumption when rendering so-called Packed Primitives and Acceleration Motion Blur by object have been implemented. I will say nothing about the Optix Denoiser now because that would be more Optix review and not Houdini, but well, Optix is nice. Better than no Denoiser, and for previews, it is definitely good.
Light Path Expressions are worth a few words. This is Houdini’s version of OSL Light Path Expressions (LPE) with adjustments for Houdinis Mantra renderer. LPEs are very handy and make it possible to create rendering AOVs without having to specify them beforehand in the shader. For example, an LPE cam looks like this: “LPE: c. + L” and this would output the Indirect Diffuse Pass. In addition, tags can be used on objects and in materials of the scene. If you only want to render a beauty pass, you do not need LPE at all. But, if you want to create a special look in compositing and need Render Passes, it is now much more comfortable to set this up. Houdini renders not only images but also Alembic files are rendered. This is true for FBX as well and maybe soon for Pixar’s USD (Universal Scene Description), but more on that later. Same as Mantra, the Alembic export requires an Alembic ROP, which now understands layers. The export of the Alembic Scene or in particular the structure can now be adjusted, depending on how a pipeline demands it.
Did I forget something else? Oh yes, the Multiple Global Illumination Layer. You can now use multiple GI lights at the same time. In the process, the other light sources are split over the GI lights, creating a GI Path per light or light group. For example, the Environment HDR gets a Path and the remaining Lights get another. Pixar USD is already included or already planned in H17. It is not yet unlocked in H17 and is not advertised by SideFX. Varomix has a tutorial on how to compile and integrate it on Linux (see the video below). USD and Hydra (the Pixar viewport) will be a game changer for Houdini in my opinion – but let’s see. SideFX is also working hard on Project Solaris, which will be Houdini’s new rendering and lighting architecture. I think that Renderman 22 then will be finally supported in Houdini. This is all connected somehow, but that’s another story that will take place in about 6 months, I hope.
The Engine for 3ds Max
Unfortunately, I could not try it because I did not have 3ds Max at hand. From the forums, I can report that it works in principle, but it is also easy to crash 3ds Max. It is a good starting point. There is a lot to keep in mind when creating the HDAs (Houdini Digital Assets) – and currently, only polygon geometries are supported, while volumes are still missing. Nonetheless, it is one of my highlight features, as it connects to my 3D past. For Max users, especially if they make less than $ 100,000 in revenue per year, it should be very attractive, as they can add a plugin factory to their plug-in collection. The Houdini Mesher alone is certainly welcome.
POPing Fluids & POP Fluids before Meshing in the Houdini Viewport:
In addition to Hollywood FX, SideFX Houdini is establishing itself in the field of game development. This is not really new and started years ago. About 3 years ago the Game Dev Tools were launched. They are developed by SideFx technical artists (Luiz Kruel, Mike Lyndon, and Paul Ambrosiussen) who create high-level tools and workflows that can not only be used in this area.
- Skinning Converter. Converts mesh animations to bone-based animations for game engines.
- LOD Create (new in H17) Automated creation of level-of-detail representations of geometries, but also simplifying materials.
- Physics Painter (big update in H17). Used to throw one objects on others and paint with objects, so to speak, followed by a rigid body animation. What is new is that now not only one object is thrown around, but many at once, a whole bucket full.
- Viewport shader (new in H17). Flow maps can now be viewed as an animation in the viewport. This can be adapted with a little effort exactly to the behavior of the respective game engine. So you do not always have to go back and forth between Houdini and the engine when using Houdini to create the maps. And there are also new tools for creating the flow maps. Motion Vector Sheets, sprite animations of explosions, for example, can also be displayed. Announced but not available yet are an Imposter Shader and a Vertex animation viewport shader.
- Reality Capture Plug-in. Connects the Reality Capture photogrammetry software with Houdini to support texture baking and geometry simplification.
- Map Box Node (new H17). A provider of map material that combines satellite imagery and Open Street Map (OSM) data (www.mapbox.com). You need an account and, depending on the area of application, a license. The special feature is to have height maps, texture and OpenStreet map data combined together. The roads as curves from OSM are already placed on the Height Field. This feature is still in beta but has worked well for me.
- RBD/Fracturing (Update in H17). If you want to break something without much setup time, you can use this Game Tool to create a simple Rigid Body setup with a few mouse clicks. A little art direction is also possible. It’s more about mass than class. But if you need to quickly destroy hundreds of assets this tool will do the job just nicely.
- Hair Cards. Generates the usual hair cards for games. Each clump is converted into a card. The tool is better than nothing, but probably just a start, waiting for user reactions and input.
Last But Not Least
- The Renaming Nodes Tool was implemented in Python and can be very helpful if you want to clean up your own chaos.
- All primitives (Box, Tube, Grid, etc.) now have POS / ROT / Scale parameters, which is nice and tries to eliminate one of the annoying Houdini inconsistencies. Unfortunately, now the order of the parameters is not always the same.
- Unified Noise is now normalized and produces values between 0 and 1. The Noise Node attribute is also new which is very handy but does not produce values between 0 and 1. Again, a Houdini-typical inconsistency.
- Planar Patch from Curves is one of the features I used right away. Here, curves are filled with triangulated pattern. This also applies to curves that run around each other which is very convenient. Implemented mainly for cloth, but also useful in many other use cases.
- GLTF, the JPEG of the 3D world, so to speak, is now also supported. It allows efficient exchange of assets between applications.
Going back to criticism from the beginning, I’ll say that Houdini 17 is full of innovations that will be further developed together with the users. The SideFX Houdini philosophy is very different from other DCC packages, you might like it or not. Users and pipelines just have to get involved and adjust. I am an indie license user myself, and for $400 for 2 years, I get more here than anywhere else. That’s what made it possible for me to learn Houdini and work with it in the first place. Now, I would not want to exchange Houdini for anything else.
Olaf Finkbeiner, 3D Professional & Houdini Artist
Olaf Finkbeiner (born in 1968) works as a senior consultant in the automotive sector. He also has many years of experience in 3D visualization. After years of practice, mainly with 3ds Max and MentalRay, he found his new 3D software and renderer home in Houdini and Mantra.