2009/07/13

houdini筆記小整理

polygon編輯熱鍵 :

edge模式
f = select forward one additional edge(選到下一個)
r = change the selection direction(換方向)
l = loop forward, following edges until you come back to the start.(選一圈)



expression常用變數部分

Local Variable

$FF = Floating point frame number. (float類型的最好都給這給 尤其當你需要motion blur的時候)
$OS = Operator String. Contains the curent OP`s name(拿標籤的名稱 這用group名稱或在複製物件的時候很好用)
$FPS = fps(分子的時候很常用)
PR, NPR = Primitive number & total number of primitives.
op:|path| /obj/cop2net1/OUT (目前都用在從comp把圖指定到shop)


expression sample

1. Use AttribCreate make partition grp
after group, connect "AttribCreate" give a name"pointnum" then choose Class,
give Value a $PT
After popnet, connect "partion" use rule " trailgrp_`point("../popnet1", "$PT", "pointnum",0)` "
很久沒用了..可能是因為最近沒啥在做分子

2. use op:/ syntex to link image from cop to shop


3. sin($FF*freq)*amp
基礎中的基礎


4. $T*360 = 360°/sec
基礎中的基礎第二彈

5. 0-`npoints("../grid1")-$F`
印象中是用在group的時候....

6. sqrt(1-pow(abs($TX),2))
奇妙的發現~...反正就很妙

7. chramp("profile", $PCT, 0)
$PCT是sweep專用的local variable 這要使用得在面板裡面塞一個ramp 然後名字叫profile(當然也可以自己取啦,上面記得換掉就好 就可以用ramp控制sweep產生的線的粗細了)

8. if($LIFE>0.5, 1-$LIFE, $LIFE)
particle專用 把point接在popnetwork下面 然後再particle>pscale那邊填這個 分子的大小就會隨壽命有 小>大>小 的變化了

9. snoise(($X/2)+$F,($Y/2)+$F,($Z/2)+$F)
忘記哪裡抄來的 用在iso surface的.


最後
我在火星論壇有看到一段Q&A
連結在這 http://bbs.hxsd.com/showthread.php?t=9957082
對我個人沒啥幫助
但未來也許會有~~~

有興趣的可以看看

Houdini scripts Q & A
疑惑1:是不是hscript,和python都可以作为参数里的expression使用;而要进行某一个连续操作(可能是对对象进行编辑,也可能是多 个节点的组合操作)时,需要新建一个digital asset ,然后在里面输入hscript或python代码以完成所需要的操作?
1.---python(hom),Hscript都可以用作expression,HOM会替代Hscript,但是目前HOM里有些功能还没有,比如pointlist,pointneighbours等。
疑 惑2:相对的,在VEX环境下,其实质是将不同模块的节点参数调用,以软件提供的图示化编程介面进行运算。而这个过程,其实也可以在另外的模块环境下,以 新建节点和在节点内输入代码(hscript?或python?)的方式实现的。vex更多的是简便了代码输入的过程?
2.---vex是一种高性能的表达语言,和script(包括Hscript,hom)应该分列不同的行当,速度高于script。vop才是图示化的 编程界面。script和vex都可以建自定义节点(hom:能建SOP,dopsolver;vex能建shader,cop,sop...),vex 是不能建立或删除几何体的,HOM可以,比如建立点,多边形,nurbs曲面等。

疑惑3:所以,在不同的network环境下,存在对另外模块的network进行创建,目的也是为了便于当前环境下对于另外模块参数的调用?

3.---Python script可以在不同的环境下、能cook到的任何通道中直接调用,建立节点、修改节点参数等,Hscript在这方面比较麻烦些,比如要用Hscript建一个节点,得在script SOP下输入语句。

疑惑4:hscript弱于python主要是因为它只能调用已知节点进行组织运算,而python则还可以创建houdini内部不存在的节点,有点像VEX的作用(如moutain节点就是由VEX对grid生成的点进行运算得来的)?
4.---相比Hscript,python script更高效些。

疑惑5:vex,python,hscript的同时存在是为了用户更多的选择?这样看来,的确只需要vex和python就够了(一个直观,一个全能)
高手指教!
5.---Hscript被PY取代后自然也就剩vex和PY了。
谢马甲兄!还有一些小问题,就是和MAYA的mel比较,maya的运行是以调用MEL为基础,那Houdini是否有一个基础语言平台?
如果,我在网上找到的一些非HOUDINI的PYTHON算法源代码(如生成某数学形态的算法),是应该改装后在digital asset 中插入作成节点,还是有其他方法插入?
不知道mel,py在H里应用挺广了,要做节点,直接file->create New OPerator,选Python->geometry operator,然后在code输入代码,