1. Houdini Learning
Preview

UI

Nodes

Hotkeys

Parameters

Learning Houdini 😱

As a 3D Generalist with fascination in tool development and programming, I have been slowly transitioning into a Technical Artist. My background in 3D started with a passion for character development, which has been sort of a thorn lingering in me to tell you the truth. I say thorn, because while 3D character art is something I desired to do, there was also this interest in other areas of development that intrigued me strongly. One side of me wanted to be a character artist, the other side is wanting to explore different areas of the pipeline. I suppose it doesn't have to be one way or the other, but as it is I do consider myself as a 3D Generalist. After a decade later, the idea of being a Technical Artist seems to align really well with where I am going as a 3D artist. So, I've decided to transition into this role, not saying it will be easy, but given my interests I believe this would be a step in the right direction coming from my role as a 3D Generalist. So where should I start? I have heard that Houdini is a great tool for a Technical Artist. Especially for tooling and pipeline solutions. In this blog I wanted to share my first Houdini project.

To get started, obviously I needed Houdini. Thankfully Houdini has an apprentice version, which is free and restricted in a few areas such as commercial use, file export, rendering watermarks, but for the most part the tools to learn Houdini's environment are available. To get started though, we can at-least learn my way around Houdini, and stay in its environment. Getting to know the interface is the first step of learning a new software. Which may also prove as a challenge. I think once I get comfortable navigating the UI in Houdini, I'll be able to get my feet grounded in this environment and pick out the different fruits here. The nodes panel is the most intimidating, and I'm sure many share this feeling. Not only in Houdini, but other DCCs as well.

NOTE: The image gallery sequences from left to right. So the top left image would be referred to as image 1. Next image is image 2, and so on.

Basics

To pan around the viewport in Houdini we press+hold alt and click+hold the middle-mouse button(scroller).
To rotate we press+hold "alt" click+hold the left-mouse button.
To zoom in and out we press+hold "alt" with click+hold right-mouse button.

Viewport Operations

We can perform different operations in the viewport by pressing C.
This displays a pie menu shown below.

Houdini viewport add pie menu.

We can change display type in the viewport by pressing V.

Houdini viewport shading pie menu.

When adding a new object in the viewport, we press the C key and select create, then we can add a box for an example. You can also press Tab and type in the name of the node you are looking for. Everything in Houdini is pretty much a node. After selecting the box, we'll see a preview of where we want to place it in the viewport. To place it at the origin, we press Enter. There's also the headers at the top of the UI, where we can navigate and select different operations do perform. Whatever we do in the viewport, a node will be added in respect to the operation performed. Below is a basic overview of the different panels in Houdini.

Houdini viewport overview

First project: SideFX H21 Foundations

Modeling a cup

For my first project in Houdini, I am following along an introduction to Houdini tutorial by Robert Magee on Side FX. This project includes modeling a cup in Houdini, creating a distributor for spheres to scatter on the distributed points, simulation, lighting, rendering, materials and textures. It's a great intro to Houdini tutorial, and easy to follow along, but I suppose that also depends on your familiarity of the 3D fundamentals.


Below shows the different node levels of the cup I modeled following along the tutorial. Modeling in Houdini is the same as other 3D DCCs, in terms of terminology and functionality of the operations. The biggest strength here in Houdini is its "non-destructive" or "collapsing" procedural work-flow. Essentially, everything in Houdini is procedural, which gives it a huge advantage over other 3D packages. You can see the node tree on the right side, which makes up the cup model.

Working With The Networks View

This is the final build of the cup and the node tree representing its different stages of development. For the most part, modeling the cup was a familiar process with standard operations. The learning curve here, again, is getting familiar with the UI; the different parameters and fields. The tutorial also showed us how we can work within the network view. We can group nodes together by creating a layout frame around the selected by pressing Shift + O. We can also create a notes frame with Shift + P within the Networks View panel. Another neat way to make notes on a specific node is to hover over the node, then on the left side there is an i icon. Clicking on this will open a window with information regarding the node. At the bottom of it there is a Node Comment section. Once adding a comment, we have to enable it to show next to the node. There are a few Display Flags on a node, and these can be used for debugging as well. At the bottom of the node tree for the cup, we added a Null node. This is used as a global display for the entire node tree. The way I am understanding this is, if we continue to build on this cup, we can set Null nodes at different points of our node tree and through these nodes we can display certain groups of the node tree, which is very helpful.

To organize any nodes that are misaligned a certain direction, we can press and hold A + left-mouse hold, then drag to the direction you want to align the selected nodes. Use Y + left-mouse hold to enable scissor and cut connections. J + left-mouse hold to connect node(s). You can click and drag over multiple nodes to the direction they should connect. Finally, you can organize the network even more by adding connection points on the connection lines between nodes by pressing alt hold + left-mouse click on the lines.

In this I was shown how we can use the Switch node to have a variation of the cup model running through the model's node tree. Using a switch node, we can switch from one to the other through incrementing integers with index 0 being the first version, 1 being the second and so on.

Cup model node tree

Seeing the node tree is one thing, but the process is another. Above the node panel by default is the parameters panel. Here we have the different attributes belonging to a certain operation or function, where we can tweak and edit. As a beginner in Houdini, the parameters can also look a bit intimidating, especially sitting on top of the nodes panel. These are technical things that I think I will wrap my head around in time as I continue learning Houdini. This goes for any software really.

The nice thing is I have some experience working in similar environments such as Blender's geometry nodes panel.Panels such as the properties/attributes will always have a plethora of parameters to get familiar with, so I think this area of the UI is something I'll also get used to in time.

Aside from the standard operations I did to block-out the geometry into a shape of a cup, the thing that stood out to me the most here is the Match Size node. When we want to add a new object to the viewport, we select the object we want either from the header or pressing the C key. We can then press Enter and the object will be placed at the origin. However the object ends up sitting centered with half of it below the grid plane. So to make the object sit on top of the grid plane, we use the Match Size node.

In the Match Size node we set the JustifyY parameter to Min, and we can also set X and Z to None. Doing this will place the object it is applied to at the top of the grid plane.


Making gumballs

The second element to this project was distributing spheres across a box object, using the scatter node to distribute the points. First we needed an object to scatter the points over. In the H21 Foundations tutorial, we used a box and increased the height. Here we are also using the Match Size node to set the box at the top of the grid level. Then we offset it in the Y axes to 3 so that it floats above the cup. Then we had to use the Copy to Points node to instance the sphere at each point. We also want to make sure to check the Pack and Instance field. I think this enables each sphere to be treated as a primitive/geometry. This is a similar operation to Blender's instance node and using the realize instance node to register instances as a geometry. Below shows the starting setup for the gumballs.

In the screenshot of the parameters panel, there is a Target Points field, which includes the value range from 0-7. We actually set this to 0, or leave the field empty, so that all points are considered. Leaving the range here, would result in only the points from index 0-7 to have the sphere instanced over.


Another great node to work with in these sort of scenarios is the Randomize Attribute node. Through this node we can randomize the colors of each sphere and also randomize the scale of each sphere. This tutorial introduced me to two attribute names or call tags I suppose we could call it. "Cd" and "pscale". Last few steps for this was adding the simulation node called RBD Button Solver. We then added a File Cache node to cache the simulation, and a USD File Export node to export the gumballs as a USD file.


Solaris Desktop

In the fourth part of the H21 Foundations tutorial, we started working with lights and cameras. I'm going to go a bit more in depth with this section, because it was a lot for me to absorb. In this tutorial, I was introduced to the different layouts that are setups for specific scenarios, such as lighting and rendering. In Houdini, these are called Desktops. Once the Solaris desktop loads up, we have the option to switch the background color under the background tab. Press D while hovering over the Viewport to open the display menu. Again this is optional. To get started with our scene in solaris, we needed to add an Scene Import node. This allows us to import our cup object. The first image below includes the parameter settings we applied to the Scene Import node. At the right-most of the Object field, we can assign the cup object by clicking on the button and selecting the cup object, then click on the Accept Pattern. Doing this adds the object to the scene graph as well.

The next element we wanted to add was a plane to render the object on. Here we used the Grid node. We can add this under our geo node graph by adjust the Import Path Prefix to /geo/$OS. After adding our ground plane, we went inside its geometry level, and added a UV Project node. If the grid seems flipped, we can adjust the direction in the URange and the VRange.

Here we switch back and forth between obj and stage as the nodes we see in the nodes panel also reflect the network we are in.

NOTE: The Networks View appears empty at first here because we should be seeing the stage network, rather than the object network we were working with earlier to build the cup and simulation.


Setting Up Materials

At this point we have the ground plane setup with the UV Project, we need to be back in the object level. In the Stage network and Solaris desktop, we added a Merge node and linked both the cup and ground nodes to this. This allows me to view both nodes. Now it is time to add the material nodes. Here we added a Quick Surface Material node. We need two here, so we can duplicate the first one by selecting it and pressing Alt hold + left-mouse click. To get these nodes in our network, we added another Merge node beneath the first one that merged the cup and ground nodes. We can link up the materials then the last one to the Merge node. This doesn't assign the materials to the object, but only adding it to the network tree to use. To assign the materials, we need to use a Material Linker node. With the node selected, we can drop the materials we created and merged into the Rules panel. Then we select the object from the right side of the parameters, and drop it in the geometry field of the materials. Now the materials are assigned to the objects.

This process was pretty different for me coming from Blender, 3Ds Max, and Maya.


Lights & Camera

In fourth part of this course, we also added a camera and some lights. To add a camera, we can add it from the headers or press Tab, then search for Camera. When we add the camera, Houdini automatically adds it based on the perspective view position. We can move the camera around to reposition by manipulating the gizmo controls found on the Toolbar bar on the left side of the Viewport View. You can also lock the camera so that when you navigate, it'll be through the camera view. The Lock Camera tool can be found on the right Toolbar of the viewport. Next thing we added are lights. For my scene, I added a Point Light and an Dome Light to give me a global lighting. We add these the same way as everything else. Something different to me that Houdini does is when you add a light object, like the Point Light, the Viewport View will be looking through the light as it did with the camera.(See image 3) I suppose this allows us to position the light object and also setup where the light will be directing from using the Shadow mode. You can find this mode at the top-left of the viewport. Before enabling it, we can switch our view back to the camera. Which is located at the top-right corner of the viewport.

After switching back to our camera view, we can then enable the Shadow mode located at the top-left corner of the viewport.(see image 4). In this mode, we first click on the cup object, press Shift(hold) and click on the ground object, specifically the direction we want the light to be facing while focusing on the cup object. When done correctly we see something similar to images 5 & 6. When we see the distance line, we can adjust the distance of the light by pressing and holding Ctrl + left-mouse button; dragging to adjust the distance. We can adjust the intensity of the light by pressing and holding Ctrl + Shift + left-mouse button drag. Of course, we can also adjsut these settings in the light's parameters. Now we should see the camera and light nodes under our Material Linker node.

With our camera and lights in the scene now, we can switch the Perspective View to Karma XPU or Karma CPU. The XPU version uses a combination of GPU + CPU, and the CPU version is just that.

Navigate the camera with the gizmo.

Creating content

🖋️