Points and Verts and Prims

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

'Points points points, it's all Houdini users ever talk about' is what Marcia might say. If you're coming from a Maya background, you might wonder what the fuss is about. You might be extra puzzled when people talk about points vs primitives (prims for short), and even more puzzled when verticies (verts) are thrown into discussion too. What's the deal?

There. Nearly everything in Houdini directly assumes you're working with points, just think in those terms, everything will go fine.

Oh, you wanna know more? Fine.

A point

A point in Houdini is close to the mathematical definition of a point; it's a location in space, with no associated area or dimension. At it's most basic, a point will store its position (@P).

If you're coming from Maya, a point is equivalent to a particle; a standalone position in space. Unlike maya, which keeps particles hidden inside a particleShape node, Houdini treats points as first class citizens. Furthermore, a point can (and often will) store extra attributes, like colour and velocity, and even some attributes that don't make sense in a mathematical context, like normal and scale. How can a dimensionless point have a normal? Or area?

The answer is that while a Houdini point derives from a mathematical point, we're not mathematitians damnit, we can do whatever the hell we want! Referencing back to maya particles, even though a particle is a dimensionless thing, when we render we might want to represent it as a sphere of radius scalePP. Houdini offers similar functionality; if you want to render a point, by default it will render as a sphere of radius 0.1. If you have a @pscale attribute, the radius will use that instead.

Creating points

There's many ways to create a point or points. The add sop is probably the easiest way, tick the toggle next to the first field, and there you go, a point:

The add sop can also be used to convert any poly, nurbs or curve back into points, by using the 'delete geometry but keep the points' toggle:

Some of the basic geometry sops (box, and grid for example) have an option to make points directly. For the others, just use the add 'delete geometry but keep the points' trick.

Why points?

Maya folk usually bristle at all this, wondering what's wrong with vertices, isn't this all semantics? The answer is that by ensuring most of Houdini's tools are compatible with points, it means you're guaranteed everything works with everything. Maya has many low-level components (vertices, curve cv's, particles, lattice points, cluster handles, subdiv points etc), but that means that a tool designed to work with verts may not work with curve cvs or particles. In Houdini, if its a point, it can be manipulated as a point, regardless of how it was created.

Have a look at the work done by this company: http://www.stretchshapes.net/image-gallery-flat-panel-sails/

To setup one of these sails, they have 4 hooks and some stretchy material. They take the material and attach it to each hook, forming a large flat shape:

Other sails have a single piece of material and many hooks:

While other setups have a complicated arrangement of hooks, and many pieces of material:

Here's a close up of one of the corners:

While those guys might call all those things 'pole-top', 'sail corner, 'sail', here's where this too-long analogy kicks back into houdini land, and you gasp in delight:

Now imagine you had this as a kit from Ikea. The instructions might be something like

1. Erect poles 6 poles in 2 rows, 0 1 2 and 3 4 5
2. Take sail 1, attach corner 0 to pole 0, corner 1 to pole 1, corner 2 to pole 3, corner 3 to pole 4.
3. Take sail 2, attach corner 0 to pole 1, corner 1 to pole 2, corner 2 to pole 4, corner 3 to pole 5.

Here's that same setup, in Houdini, with points, verts, prims:

Primitives are solid things, they have shape and area and can be rendered.

Vertices are the corners of primitives, and are 'attached' to points.