What & How & Why

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
vfx:houdini:hscript:expressions [2017/08/31 05:55] – [Noise] haregyvfx:houdini:hscript:expressions [2021/11/11 08:07] (当前版本) codinghare
行 1: 行 1:
-====Hscript 常用函数==== +======Hscript 常用函数====== 
-参考:[[http://www.sidefx.com/docs/houdini/expressions/_index|Expression functions]] +常用的 Hscripts 函数用法
-\\ +
-<wrap em>我均包含大量个人理解内容,存在一定偏差如果您发现错误,请留言提出,谢谢!</wrap>\\ +
-===== =====+
 \\ \\
 +----
 +
 ====Primitive 相关==== ====Primitive 相关====
-\\+
 ===PrimUV=== ===PrimUV===
-\\+
 ''primuv'' 可以用于提取几何体的 UV 坐标中某一点的属性。通常的写法如下: ''primuv'' 可以用于提取几何体的 UV 坐标中某一点的属性。通常的写法如下:
-<code>+<code vex>
 primuv(surface_node, prim_num, attrib_name, attrib_index, u, v) primuv(surface_node, prim_num, attrib_name, attrib_index, u, v)
 </code> </code>
行 20: 行 19:
    
 具体的例子: 具体的例子:
-<code>+<code vex>
 primuv("/obj/geo1/tube1", 0, "Cd", 1, 0.7, 0.3) primuv("/obj/geo1/tube1", 0, "Cd", 1, 0.7, 0.3)
 </code> </code>
行 27: 行 26:
 \\ \\
 需要注意的是,如果 //Primitive// 是 //Polygon// 或者 //Mesh//,''u'' 和 ''v'' 表示的实际上是 //Vertex// 的编号,或者行列。 需要注意的是,如果 //Primitive// 是 //Polygon// 或者 //Mesh//,''u'' 和 ''v'' 表示的实际上是 //Vertex// 的编号,或者行列。
-\\ +
-\\+
 ==PrimUV Tips== ==PrimUV Tips==
-\\+
   * 使用 ''primuv'' 读取曲线某一点的位置:''v'' 值恒为 ''0'',只需要读取对应 ''u'' 位置处的 ''P'' 属性即可。如果 ''u'' 值使用标准化的面编号 ''@primnum / (@numprim - 1)'' 表示,可以使每个面在曲线上平均分布,再利用 ''@time'' 对 ''u'' 进行额外的变量操作,可以得到面随着曲线的路径运动的动画。   * 使用 ''primuv'' 读取曲线某一点的位置:''v'' 值恒为 ''0'',只需要读取对应 ''u'' 位置处的 ''P'' 属性即可。如果 ''u'' 值使用标准化的面编号 ''@primnum / (@numprim - 1)'' 表示,可以使每个面在曲线上平均分布,再利用 ''@time'' 对 ''u'' 进行额外的变量操作,可以得到面随着曲线的路径运动的动画。
-\\ +
-\\+
 ====工具函数==== ====工具函数====
-\\+
 ===Clamp=== ===Clamp===
-\\+
 ''clamp'' 用于为接收的变量指定上限和下限。它接收 ''3'' 个 ''float'' 变量,返回一个 ''float'' 变量。其使用实例如下: ''clamp'' 用于为接收的变量指定上限和下限。它接收 ''3'' 个 ''float'' 变量,返回一个 ''float'' 变量。其使用实例如下:
  
-<code>+<code vex>
 clamp(@primnum / (@numprim - 1) + @time - 1, 0, 1) clamp(@primnum / (@numprim - 1) + @time - 1, 0, 1)
 </code> </code>
 上述代码将开头的表达式得到的结果限制到了 ''0'' 到 ''1'' 的范围内。 上述代码将开头的表达式得到的结果限制到了 ''0'' 到 ''1'' 的范围内。
-\\ +
-\\+
 ===Noise=== ===Noise===
-\\+
 ''noise'' 函数会根据几何体的 //Lattice// 产生一个 3D 的 //Noise//。该函数可以用于添加变化到几何体上,比如添加 ''P'' 属性的 //Noise// 可以产生凹凸不平的效果。其使用实例如下: ''noise'' 函数会根据几何体的 //Lattice// 产生一个 3D 的 //Noise//。该函数可以用于添加变化到几何体上,比如添加 ''P'' 属性的 //Noise// 可以产生凹凸不平的效果。其使用实例如下:
-<code>+<code vex>
 noise($TX, $TY, $TZ) noise($TX, $TY, $TZ)
 </code> </code>
 \\ \\
-\\ +需要注意的是,''noise'' 函数要求变量值不能是离散的;也就是说,''noise''** 不能使用整型数据**。 
-需要注意的是,''noise'' 函数要求变量值不能是离散的;也就是说,''noise'' 不能使用整型数据。 + 
-\\ +====参考文章==== 
-\\+  * [[http://www.sidefx.com/docs/houdini/expressions/_index|Expression functions]]