Houdini VEX(二)創(chuàng)建屬性

前言:我們可以通過attribute wrangle節(jié)點進行書寫vex代碼

  1. 首先創(chuàng)建一個box姜贡,選中該節(jié)點按i進入
  2. 創(chuàng)建attribute wrangle節(jié)點赛不,連到box節(jié)點


  3. 選中attribute wrangle節(jié)點栖茉,然后按P打開參數(shù)面板纹笼,在紅色區(qū)域輸入vex代碼:


  4. 你也可以鼠標(biāo)點擊紅色區(qū)域,按ALT+E打開vex代碼編輯器:



一孝常、方法一:通過變量創(chuàng)建屬性

  1. 創(chuàng)建Houdini常用屬性時可以不指定類型旗们,如@N不用寫成v@N
  • 寫法:
@+名字//如法線:@N
  1. 常用屬性
Houdini有許多浮點型的常用屬性,如@pscale,@width,以下是除浮點以外的其他類型

vector @P构灸,@accel上渴,@center,@dPdx喜颁,@dPDz稠氮,@Cd,@N半开,@scale隔披,@force,@rest寂拆,@torque锹锰,@up,@uv漓库,@v

vector4 @backtrack,@orient园蝠,@rot

int @id渺蒿,@ix,@iy彪薛,@iz茂装,@nextid怠蹂,@pstate,@resx少态,@resz城侧,@ptnum,@vtxnum彼妻,@primnum嫌佑,@numpt,@numvtx侨歉,@numprim屋摇,@group_*

string @name,@instance

  1. 簡寫可以賦初值幽邓,賦值時炮温,大括號{}里面不能有變量
@N = {0,1,0}//不能寫成@N = {0,@P.y,0}
  1. 如果想賦值變量,需要用set函數(shù)
@N = set(0,@P.y,0)
  1. 創(chuàng)建屬性時牵舵,如果@符號前不指定類型柒啤,則默認(rèn)是浮點
@foo 等價于 f@foo
  1. 簡寫方式
  • 寫法:
    縮寫數(shù)據(jù)類型+@+名字

  • 例子:

i@id     =8;
f@width =1.0;
u@xy ={0.3,0.9};
v@w =set(@width,$PI,0.5);
p@point = {0,0,0,1};
2@scale_2d ={ {2,0},   {0,2} };
3@scale ={2,0,0,   0,2,0,   0,0,2};
4@trans ={1,0,0,0,   0,1,0,0,   0,0,1,0,   0,0,0,1};
s@path = "op:/obj/geo1/pack1";
  1. 數(shù)組的簡寫方式
  • 寫法:
    縮寫數(shù)據(jù)類型+[]+@+名字
  • 例子:
i[]@pointcloud ={0,1,2};
f[]@len =arrary(1,@Time,@width);
3[]@rotation;
s[]@letters ={'H','i'};

  • 簡寫可以賦初值,非簡寫不能賦初值
//簡寫
i@id     =8;
//非簡寫
int @id =8;//錯誤
  • 非簡寫不能有算式畸颅,簡寫可以
float @mass = 1/area;//錯誤
  • 非簡寫不能用函數(shù)担巩,簡寫可以
vector @up = set(0,1,0);//錯誤

二、方法二:通過函數(shù)來創(chuàng)建屬性

  1. 將attribute wrangle節(jié)點的Run Over選項修改為Detail(only once)--只運行一次重斑,因為我們創(chuàng)建屬性只需要創(chuàng)建一次就夠了


  2. 添加屬性方法:

1)addpointattrib/addvertexattrib/addprimattrib/adddetailattrib(參數(shù)1兵睛,參數(shù)2,參數(shù)3)窥浪;

  • 添加位置點屬性/添加幾號面幾號頂點屬性/添加面屬性/添加整體屬性
  • 參數(shù)1:你要添加到第幾個輸入端
  • 參數(shù)2:屬性的名字
  • 參數(shù)3:屬性的值
  • 例子:
addpointattrib(0,"Cd",{0,0,0});
addvertexattrib(0,"Cd",{0,0,0});
addprimattrib(0,"Cd",{0,0,0});
adddetailattrib(0,"Cd",{0,0,0});
  1. 修改屬性方法:
    1)setpointattrib/setprimattrib(參數(shù)1祖很,參數(shù)2,參數(shù)3漾脂,參數(shù)4);
  • 設(shè)置位置點屬性/設(shè)置面屬性
  • 參數(shù)1:你要獲取到第幾個輸入端
  • 參數(shù)2:屬性的名字
  • 參數(shù)3:你要設(shè)置幾號點/面
  • 參數(shù)4:屬性的值
  • 例子:
setpointattrib(0,"Cd",3,{1,0,0});
setprimattrib(0,"Cd",3,{1,0,0});

2)setvertexattrib(參數(shù)1假颇,參數(shù)2,參數(shù)3骨稿,參數(shù)4笨鸡,參數(shù)5);

  • 設(shè)置幾號面的幾號頂點
  • 參數(shù)1:你要獲取到第幾個輸入端
  • 參數(shù)2:屬性的名字
  • 參數(shù)3:你要設(shè)置幾號面
  • 參數(shù)4:你要設(shè)置(參數(shù)3的值)號面的幾號頂點
  • 參數(shù)5:屬性的值
  • 例子:
setvertexattrib(0,"Cd",3,3,{1,0,0});

3)setdetailattrib(參數(shù)1,參數(shù)2坦冠,參數(shù)3);

  • 設(shè)置整體幾何體的整體的屬性
  • 參數(shù)1:你要獲取到第幾個輸入端
  • 參數(shù)2:屬性的名字
  • 參數(shù)3:屬性的值
  • 例子:
setdetailattrib(0,"Cd",{1,0,0});

三形耗、查看屬性:

  1. 首先


  2. 通過這四個按鍵,分別查不同級別的數(shù)據(jù)
  1. 我們輸入以下vex代碼:


  2. 我們查了下頂點辙浑,和setvertexattrib(0,"Cd",3,3,{1,0,0})相對應(yīng)


  • 貌似位置點的找不出變化的值激涤,可能是被覆蓋了?

四判呕、Attributes to Create


  1. 只允許創(chuàng)建指定屬性倦踢,默認(rèn) * 允許所有屬性創(chuàng)建
  2. 可以防止因為打字錯誤而創(chuàng)建出錯誤的屬性
  3. 測試:
    1)首先新建一個attribute wrangle節(jié)點:



    2)輸入指定屬性:



    3)輸入vex語句:

    4)查看屬性:在attribute wrangle節(jié)點上送滞,長按鼠標(biāo)中鍵:
  • 可以發(fā)現(xiàn)我們創(chuàng)建的小寫cd屬性沒有創(chuàng)建出來,但是被指定的屬性卻可以被創(chuàng)建

五辱挥、簡寫與非簡寫在用途上的區(qū)別:

  1. 簡寫屬性:無論屬性存在與否犁嗅,都創(chuàng)建并賦值
  2. 非簡寫屬性:如果屬性已存在,不會覆蓋掉原屬性值晤碘;否則褂微,創(chuàng)建并賦值
  3. 一般用簡寫形式創(chuàng)建屬性,除非你需要上述功能
  4. 例子:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哼蛆,一起剝皮案震驚了整個濱河市蕊梧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌腮介,老刑警劉巖肥矢,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異叠洗,居然都是意外死亡甘改,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門灭抑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來十艾,“玉大人,你說我怎么就攤上這事腾节⊥担” “怎么了?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵案腺,是天一觀的道長庆冕。 經(jīng)常有香客問我,道長劈榨,這世上最難降的妖魔是什么访递? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮同辣,結(jié)果婚禮上拷姿,老公的妹妹穿的比我還像新娘。我一直安慰自己旱函,他們只是感情好响巢,可當(dāng)我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著棒妨,像睡著了一般抵乓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天灾炭,我揣著相機與錄音,去河邊找鬼颅眶。 笑死蜈出,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的涛酗。 我是一名探鬼主播铡原,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼商叹!你這毒婦竟也來了燕刻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤剖笙,失蹤者是張志新(化名)和其女友劉穎卵洗,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弥咪,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡过蹂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了聚至。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酷勺。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扳躬,靈堂內(nèi)的尸體忽然破棺而出脆诉,到底是詐尸還是另有隱情,我是刑警寧澤贷币,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布击胜,位于F島的核電站,受9級特大地震影響片择,放射性物質(zhì)發(fā)生泄漏潜的。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一字管、第九天 我趴在偏房一處隱蔽的房頂上張望啰挪。 院中可真熱鬧,春花似錦嘲叔、人聲如沸亡呵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锰什。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汁胆,已是汗流浹背梭姓。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嫩码,地道東北人誉尖。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像铸题,于是被迫代替她去往敵國和親铡恕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內(nèi)容