Hit the little plug icon to the right of the text editor, Houdini scans the vex code, realises you’ve referred to a channel that doesn’t exist yet, and. bookmark_tabs: A collection of code snippets and examples showing syntax and capabilities of VEX language inside SideFX Houdini – jtomori/vex_tutorial. Introduction. For those who tried (or afraid to start) to learn VEX but fail and stop because it was too hard. Here you will learn VEX and some.

Author: Kigalkree Goltibei
Country: Montserrat
Language: English (Spanish)
Genre: Software
Published (Last): 21 June 2004
Pages: 102
PDF File Size: 10.5 Mb
ePub File Size: 6.21 Mb
ISBN: 318-2-80116-884-3
Downloads: 22899
Price: Free* [*Free Regsitration Required]
Uploader: Fehn

VEX uses 32 bit integers. It’s a cool look in itself comment out the line and seebut I wanted branching.

Eg, reading a float array from the 2nd input and storing it in a local vex variable array:. Copies the value of a geometry attribute into a variable and returns a success flag. Returns the default name of the bump plane as it appears in the compositor preferences. This is the main function of the program that is called by mantra. Produces the exact same results as the Houdini expression function of the same name.

VEX language reference

Finally we multiply it against P to apply the rotation per point. If you remember your vector maths, to get the vector between 2 points, you subtract them. So that’s a rotation around the x axis 1,0,0of 0. I realised that’s because we’d already multiplied d by the scaling channel to control the number of waves.

Properties let you set up flexible and powerful hierarchies of rendering, shading, lighting, and camera parameters. This is a vex call that constructs a transformation matrix similar to what a copy sop creates per copy. Houdini then compiles the node network into executable VEX code.

HoudiniVex – cgwiki

What if you make points, and simultaneously try to delete points? After sleeping on it, realised its easier than I expected, and added this to my wrangle:. Again casting your mind back to high school, you can get the midpoint of 2 points by adding, then divide by If you’ve used other programming languages, you might be thinking ‘Ok, but how does Vex know which point to process?


Here’s an even sillier example, where I setup a variable that cycles between 0 and 1, and mulitply that by the rotated vector, which has the effect of sliding the geo circles in this case up and down the boxes.

The last one is really handy, in one line you get to read one value P.


Returns the default name of the normal plane as it appears in the compositor preferences. Generates a uniform unit vector4, given a vector of uniform numbers between 0 and 1. See arrays for more information. I always forget to do this, shout at my wrangles for a bit, then finally remember to stick ‘v’ in front of my attribute names. If you don’t, the operations will start to shear and scale geometry in ways you don’t expect. Artists who aren’t familiar with this function-batching often try to write vex that’ll create points on line 1, delete other points on line 2, set attribs on line 3, read attribs on line 4, delete more houduni on line 5 etc, and be surprised when it doesn’t work.

The CHOP functions can manipulate arbitrary numbers of input channels and process channel data in arbitrary ways. Hit the little plug icon to the right of the text editor, Houdini scans the vex code, realises you’ve referred to a channel that doesn’t exist yet, and makes a channel at the bottom of the wrangle UI named ‘scale’. If you’ve not used point clouds before, you might wonder why they exist, how are they better than doing point or neighbour lookups etc. Takes the value in one range and shifts it to the corresponding value in a new range.

Finds and returns a half-edge with a given source point or with given source and destination points.


A 3×3 matrix and a quaternion are mostly interchangeable, so it makes sense gex some of the functions to create and manipulate them are also interchangeable. Returns 1 if the point specified by the point number is in the group specified by the string.

Fluids Houdinii to set up fluid and ocean simulations. Returns number of elements where an integer or string attribute has a certain value. What if another point, or another points, that are all running in parallel, all happen to want to delete that same point? Pcopen returns a handle so you can refer to the point cloud later, here I store that in variable ‘mypc’. There’s a specific order these are run in, but because I never remember, I try to not write vex that expects deletes to be done before reads, or vice versa.

Eg to set the red channel of each point to the sine houdino double the x position:.

The second line reads the 2nd group groups[1]gets a list of all the primnums in that group, and stores that in an attribute, again to see it working.

I’m not that confident, so I tend to play cautious.

Returns the vertex that precedes the source vertex of a half-edge in its primitive. When I wrote this tutorial I must have been incredibly lucky, and been working with a 1×1 poly with one edge lined up on the x-axis, pretty contrived. Every input will have a correspoinding outname output, just connect the output you want to the next vop. Returns the value of the point attribute for the metaballs if metaball geometry is specified to i3dgen.

Transforms a position from normal device coordinates to the coordinates in the appropriate space. I figured toggling the bypass flag would be enough, but no.