Points and Verts and Prims

From cgwiki
Revision as of 17:59, 2 May 2016 by MattEstela (talk | contribs) (Created page with "'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...")
(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?

Short Answer - don't worry about it, just use points

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:

Add single point.gif

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:

Pig to points.gif

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.

Shadesails and verts and prims

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:

Spanex square.jpg

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

Spanex single shape many hooks.jpg

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

Spanex many hooks many shapes.jpg

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

Shadesail plain.jpg

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:

Shadesail annotated.jpg

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:

Construct prims.gif

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

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

Attributes and points and prims

Special mention of normals

Edges and prims

Other primitive types