What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
上一修订版两侧同时换到之后的修订记录
vfx:houdini:vex:functions [2020/05/14 01:46] – [Foreach] codingharevfx:houdini:vex:functions [2020/05/14 01:59] – [NOISE AND RANDOMNESS] codinghare
行 4: 行 4:
 ===== ===== ===== =====
  
-====Arrays==== 
-  * 数组可以通过 ''array[n]'' 的形式访问和修改。 
-  * Houdini VEX 不支持多维数组。 
  
-==Len== + 
-<code vex> + 
-//注意:该函数功能与 Length() 完全不同。 + 
-//功能:返回指定对象的元素个数。 +
-//返回:指定对象的长度,如果是 martix / vector,返回分量的数量。如果是 array,返回元素数量。如果是 string,返回字符的数量。 +
-/* 使用 */ +
-int len(v) //返回对象长度 +
-int len(v[]) //返回数组长度 +
-</code> +
-==Push== +
-<code vex> +
-//功能:向 Array 中添加元素 +
-/* 使用 */ +
-//1.向数组的末尾添加一个元素 +
-push(<type>&array[], <type>value); +
-//2.将两个数组组合为一个数组。目标数组将连接到源数组的末尾: +
-push(<type>&array[], <type>target[]); +
-</code> +
-==Pop== +
-<code vex> +
-//功能:移除数组最后一个元素并返回该元素 +
-//返回:被移除的元素 +
-//下标可以使用负数,-1 代表最后一个元素。 +
-/* 使用 */ +
-<type>pop(<type>&array[]); // 移除并返回最后一个元素 +
-<type> pop(<type>&array[], int index) //移除并返回指定下标元素。 +
-</code> +
-==Removeindex== +
-<code vex> +
-//功能:按指定的 index 删除数组元素 +
-/* 使用 */ +
-<type> removeindex(<type>&array[], int index); +
-</code> +
-====Attribute AND Iintrinsics==== +
-===Attrib=== +
-==point== +
-<code vex> +
-//功能:读取指定的点属性 +
-//返回:返回类型与需要读取的属性相同。返回值指定的点的属性值,如果点不存在则返回 -1。 +
-/* 使用 */ +
-//可以对 intrinsic 属性进行读取 +
-//可以使用 geohandle 或者 path (op:/path) +
-//Point number 可以用@P 循环选定所有点,也可以指定具体的点编号对指定点操作 +
-<type> point(<geometry>geometry, string attribute_name, int pointnumber) +
-//FIXME +
-<type>[] point(<geometry>geometry, string attribute_name, int pointnumber) +
-</code> +
-====Geometry==== +
-===Create=== +
-==Addpoint== +
-<code vex> +
-//功能:为指定的几何体添加点 +
-//返回:函数返回类型为 int,返回对应点的 @ptnum,或者 -1。 +
-/* 使用 */ +
-//在指定的几何体中(通过geohandle决定), 在指定的点(通过@ptnum决定)添加一个点 +
-int  addpoint(int geohandle, int point_number) +
-//给定点的坐标,添加一个点 +
-int  addpoint(int geohandle, vector pos) +
-</code> +
-==Addprim== +
-===Delete=== +
-==Removepoint== +
-<code vex> +
-//功能:删除几何体中指定的点 +
-//返回:函数返回类型为 int  +
-/* 使用 */ +
-//按点的编号(@ptnum)删除指定源中的指定点 +
-removepoint(int input number, int point number); +
-//对删除点后的面的处理方式 +
-//1 为删除任意因删除点造成的坏面,比如封闭的,只有3个顶点的面,或者开放的,只有二个顶点的面 +
-//0 为删除因删除点造成的无效的几何体,比如少于 4 个顶点的四面体,没有顶点的体积等 +
-removepoint(int input_number, int point_number, int method_code); +
-//e.g. 删除当前几何体中的 0 号点 +
-removepoint(0, 0); +
-</code> +
-===Point=== +
-==Nearpoints== +
-<code vex> +
-//功能:寻找并返回所有离目标几何体最近的点(只适用于点到点,参考 xyzdist) +
-//返回:int array,该数组内部包含所有满足要求的点的 @ptnum,包括源点自身在内。 +
-/* 使用 */ +
-//通过指定点的位置和最大搜寻距离寻找点 +
-int [] nearpoints(<geometry>geometry, vector pt, float maxdist) +
-//通过指定点的位置和最大搜寻距离寻找点,限定点的搜寻数量 +
-int [] nearpoints(<geometry>geometry, vector pt, float maxdist, int maxpts) +
-//对指定的 group 应用上述的搜寻方式: +
-int [] nearpoints(<geometry>geometry, string ptgroup, vector pt, float maxdist) +
-int [] nearpoints(<geometry>geometry, string ptgroup, vector pt, float maxdist, int maxpts) +
-</code>+
 ====MEASURE==== ====MEASURE====
-===BoundingBox=== 
-==Getbbox_min / max== 
-<code vex> 
-//功能:返回当前几何体 bounding box 的 min / max 点 
-//返回:函数返回类型为 Vector,为 min / max 的坐标。 
-/* 使用 */ 
-//以 vec 的形式返回当前几何体 Bounding Box 的 min / max 点 
-//这两个点用于定义 Boundingbox(AABB) 
-vector  getbbox_max(geometry) 
-//也可以返回指定 primtive group 的 min / max 
-vector  getbbox_max(geometry, string primgroup) 
-</code> 
-====NOISE AND RANDOMNESS==== 
-==Rand== 
-<code vex> 
-//功能:根据指定的种子产生一个[0,1]的随机数 
-//返回:该函数可以返回 float、vec2、vec3、vec4 的随机数。 
-//所有随机数的范围均在 [0,1] 之间,根据 seed 的不同来决定。 
-//根据操作系统的不同,同一个 seed 也可能导致不同的随机数结果。 
-/* 使用 */ 
-float rand(seed); //返回类型为 float 的随机数 
-//如果返回是 vector,那么每一个分量的随机数都将不同。这种情况下如果需要做uniform scale,那么需要先将 vec 转化为 float: 
-vector pos = 1; 
-float seed = 0; 
-pos *= rand(seed); //random number are differernt in x,y,z 
-pos *= float(rand(seed));// uniformed random number 
  
-</code>+
 ====VOLUME==== ====VOLUME====
 ===Volume=== ===Volume===