mattv

mattv

About Me

Connect

LOCATION
Not Specified
WEBSITE

Houdini Skills

Availability

Not Specified

Recent Forum Posts

Where is the h12 pyrofx shader? March 25, 2013, 12:48 p.m.

When you create a shelf-tool Pyro effect such as “billowy smoke” where is the shader? According to the help docs on http://www.sidefx.com/docs/houdini12.0/nodes/shop/pyro [sidefx.com] it says that “ (The tools on the Pyro FX shelf tab apply customized Pyro materials to the simulations they create with the proper settings already turned on.) ”

However the shop network is empty when I looked, so it's not really clear to me where it is. Kind of a noob question, but any help here would be appreciated. Thanks!

mesure angle between 3 points Jan. 4, 2013, 3:52 p.m.

I'm not really a math guy, so here's my artists explanation.

The first thing you want to do is get the two vectors that form the edges of the angle you are measuring. A vector can be found by subtracting one points position from another one. The direction the vector is pointing is dependent on the subtraction order of operations. So for example:

A - B points from B to A.
B - A points from A to B.

When doing this for points in 3D space you need to subtract all of the X/Y/Z positions to get a 3D vector. So that looks like this:

Bx - Ax
By - Ay
Bz - Az

Then you make a vector out of those 3 floats. This is pretty easy in Houdini because you can add a float vector 3 parameter to just about any node. After this you can plug in these vectors into the formula above. You have to account for Houdini's syntax which can be a little weird, so I've attached an example .hip file where I'm finding the angle between the edges 0->1 and 0->2

Here is some explanation of the syntax used in my example. Look at the “measure_angle” node to see the values and formulas.

point(“../single_triangle”, 1, “P”, 0) - point(“../single_triangle”, 0, “P”, 0)
This subtracts the X position of point 1 from the X position of point 0. You can read more about point() here http://www.sidefx.com/docs/houdini12.0/expressions/point [sidefx.com]. I do this for X, Y and Z in my example to get the vectors from 0->1 and 0->2.

acos(dot(normalize(vector3(ch(“vec_p0_p1x”), ch(“vec_p0_p1y”), ch(“vec_p0_p1z”))), normalize(vector3(ch(“vec_p0_p2x”), ch(“vec_p0_p2y”), ch(“vec_p0_p2z”)))))
This looks like a lot, but what I've done is what sanostol posted above, acos(dot(v1, v2)) where v1 and v2 are normalized vectors. I'm referencing the channels where I stored the output of the vectors to make the expression smaller and easier to read.

Wood Splinter Dec. 4, 2012, 2:27 p.m.

sl0throp
While you can find sequence importers for both .bgeo and .obj for Maya it is slow and clunky- a much better option would be to use .FBX or Alembic which works really well in most cases. You should use an attributePromote to promote your points to vertices with a facetSop to give the geometry good normals. You can change your normals in Maya but usually have to unlock them.

If your mesh came in from Maya originally though, I'm guessing a facetSop is going to mess up all the original normals, correct?