This demonstrates using the cross product in an expression in prepping normals for copy stamping.
Mathematics and Houdini.
Date Created:Friday February 16th, 2007 06:31 PM
Date Modified:Saturday August 02nd, 2008 01:05 PM


First add normals using a Point SOP.

Then shift the point numbers using a Sort SOP. This shifts the point number 0 to 1, 1 to 2 etc...

Now, using another point SOP, we take the difference of the point position of the shifted points and the original points. This makes it so point 1 will point directly at point 2, and so on.

We now use the cross product on the vector from the pointed normals, and the original normals, and extract the vector 0, 1 or 2 depending on which value we need. We can extract a vector using square braces, for example, putting [0] on the end of a function that returns a vector will return the first component in that vector. 0 is for x, 1 for y, and 2 for z. This value is also normalized between 0 and 1 using the normalize() function.
normalize(
cross(
vector3($NX,$NY,$NZ),
vector3($NX2,$NY2,$NZ2)
)
)[0]

A brief overview of the network.

Downloads:
Download: crossproduct.hip 68 KB
Please login or Click Here to register for downloads
Cross Product by Dan Lynch
is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License
Based on a work at www.3daet.com
Permissions beyond the scope of this license may be available at http://www.3daet.com
