[Houdini]Expression & VEX Notes
keywords: Houdini, Expression, VEX
Basic Notes
How to view VEX source code of VOP:
How to change point position:
Run Over: Points
.
vector pos = @P;
if(pos.x < -3.5)
{
@P = set(@P.x, @P.y + 5, @P.z);
}
How to remove points on polygon:
Run Over: Points
.
if(@P.x < 250 && @P.z < 250 && @P.y > 250)
{
removepoint(0, @ptnum);
}
How to remove primitive:
Run Over: Primitives
.
if(@Frame > 5 && @P.z >10)
{
removeprim(0, @primnum, 1);
}
How to add and set customized variables for points, vertices or primitives.
//add and set
i@my_var = 1;
//get
printf("%d\n", i@my_var);
How to set transform of primitives:
Run Over: Primitives
or Points
.
float scale = 1.5;
matrix transform = getpackedtransform(0, @primnum);
scale(transform, set(scale, scale, scale));
setpackedtransform(0, @primnum, transform);
Origin:
https://www.sidefx.com/forum/topic/72876/
How to rotate a point around another point alone a specifical axis:
1st way:
float angle = -90;
vector4 rot = quaternion(radians(angle), {1, 0, 0});
@P = qrotate(rot, @P + set(0, -500, -500));
2nd way:
matrix mat = maketransform(set(0, 1, 0), set(0, 0, -1), set(0, -tile_size, tile_size));
@P *= mat;
How to move a point alone normal:
@P += @N * chf('dist');
Points Computation
Snap an object to another precedurally
int pt = nearpoint ( 1, @P );
vector p = point ( 1, "P", pt );
@dist = distance2 ( @P, p );
i@nearpt = pt;
Sort by dist attribute.
Move wrangle code:
int pt = point ( 1, "nearpt", 0 );
vector p0 = point ( 1, "P", 0 );
vector p1 = point ( 2, "P", pt );
@P += p1 - p0;
Origin:
https://www.sidefx.com/forum/topic/82344/
Documents
HOUDINI help
https://www.sidefx.com/docs/houdini19.5/
Using VEX expressions
https://www.sidefx.com/docs/houdini/vex/snippets.html
Parameter expressions
https://www.sidefx.com/docs/houdini/network/expressions.html
Popular Built-in VEX Attributes (Global Variables)
https://stephanosterburg.gitbook.io/scrapbook/untitled/popular-built-in-vex-attributes-global-variables
Tutorials
The Nature of Vex.
https://www.mixtrn.com/nature-of-vex
Blogs
【Houdini】 表达式与VEX变量
https://www.yuelili.com/houdini-expression-and-vex-variable/
VEX Attribute Glossary
https://wiki.johnkunz.com/index.php?title=VEX_Attribute_Glossary
https://www.johnkunz.com/vex
Houdini: Remove Outside Pieces Using Python
https://yudaitamamura.artstation.com/blog
houdini attributes cheatsheet
https://gist.github.com/iinfin/2caf4e2ccb2545477670e88ddacee1e2
Personal Notes (Tricks)
Killian Timsit
https://gist.github.com/killiantimsit
VEX for artists
https://github.com/kiryha/Houdini/wiki/vex-for-artists
“How can I be substantial if I do not cast a shadow? I must have a dark side also If I am to be whole.” ― C.G. Jung, Modern Man in Search of a Soul