Character Art Vs. Houdini - 003 - Copy to Points!

In this third entry, I want to talk about another one of my top two most-used nodes since I started learning Houdini.

The Copy to Points node is pretty straightforward in its most basic form: you plug in the mesh you want to copy and then plug in the points where you want the geometry to be placed.




To properly discuss Copy to Points, we first need to talk a little about points. As far as I know, points are a context unique to Houdini. At first, you might think of points as being the same as vertices, but they’re not exactly the same.

In geometry, which is what I use most, points and vertices share the same position, so when you move a point, you’re also moving the vertex with it. I know it sounds confusing at first, but you get used to it.

You can also store information on points and different information on vertices, but I won’t delve too deeply into that now to avoid further confusion.

What’s important—at least for the Copy to Points node—is that you store orientation and scale information on the points. When you copy geometry to those points, the size and orientation of the geometry follow the data stored on the points.

This is incredibly useful, as you can use things like masks or noise to randomize the orientation or scale of the geometries or make them follow specific patterns.

This can get pretty complex, involving things like painting flow maps or using curvature to control size, which might be a topic for another post—it’s a fun subject to explore.

For this post, I want to show you a quick and fun way to add a mesh to points and make it have random scale and rotation.

This is a simple setup I like to use often. I start with the Extract Borders node to get a curve around the border of the mesh. Then, I use the Resample node to ensure the spacing between the points is uniform. In this case, the Resample node also controls how many meshes are placed along the border since the meshes are copied to these points.

Next is the Orient Along Curve node, which ensures that the orientation of the meshes follows the curve correctly—this is a super useful node. To give it a more organic look, I added two Randomize nodes: one for scale and one for orientation. The effects are subtle, but they go a long way in making the result look more dynamic and natural.

For the border meshes, I used the same rope setup I showed in the last post, but applied it to a circle.

This same setup can be used as an InsertMesh Curve Brush in ZBrush, drawing a curve on the surface or creating your own curves in other ways, but with all the added benefits of a procedural workflow.

Another cool feature we can add is a random mesh picker. This allows us to have multiple inputs on the Copy to Points node, creating even greater variation and giving the result a more realistic look.

In this case, I just added three different color inputs to make it easier to see.

This is just one use for the Copy to Points node, but it’s one of the most valuable tools for me in Houdini. I’ll likely revisit it in future blog posts with more examples.

Thank you for reading! See you in the next one!