Houdini JoyOfVex 教程04

04

Chramp(樣條映射控制面板/斜坡控制/梯度控制)

chramp應該是channel ramp的縮寫,不知道該怎麼翻譯好- -,這裏就譯爲樣條控制了,或許叫斜坡控制好點?(PB_zz says)

樣條控制是一個在視覺上更直觀的操縱數據方式。相信你在PS等軟件中都見過類似的UI面板。
或者類似於Blender的顏色漸變,在我看來,不如教程多句柄曲線控制,qwq。

使用Chramp函數創建UI面板,你可以得到一個樣條控制方框,方框的x軸y軸的數值範圍都是0~1(超過範圍的值會被裁剪,下面會繼續說這個裁剪)。你可以點擊圖像用點來編輯它。

在你的代碼中,你提供x軸的值給chramp函數,chramp函數根據你調的樣條形態,返回當x值爲某某時對應的y值。例如默認樣條圖像是y=x的一條直線,你輸入啥值,就得到啥值。
如果你要讓數值反過來對應,也就是y=-x+1。則把樣條如圖反向傾斜即可。
你還可以手動加點,做個簡單的sin函數波紋樣條。
或者把樣條調的支離破碎醜不拉幾,有一種隨機的效果。
Chramp and waves(chramp和波紋)

首先寫出下面的代碼:

float d = length(@P);
d *= ch('scale');
@P.y = chramp('myramp',d); //d作爲x軸變量傳入

類似ch函數創建UI一樣,chramp函數也是類似寫法,後邊的括號裏多了個變量x需要傳入,這裏我們傳入d。調整scale的大小,觀察grid模型的變化,你會發現,當傳入的d值超出01時,它會將d值自動一段一段地重新映射到01再進行計算,所以你會看到重複的一段一段相同的形狀。(譯者注:這是chramp的一個隱性特徵,所以它並不是clamp函數那樣的一刀切,超出範圍統一最大最小值。而是超出範圍後再用你的樣條圖像重複映射。)

接下來就是爲師(PB_zz)的showtime了!反轉樣條,並多添加幾個點,改變樣條形狀。手動拉出一個簡易不精確的sin波紋形狀。現在調整scale滑竿,看看效果。

添加time時間屬性到代碼裏,做一點令人窒息的操作,波紋就能隨時間變化而產生動畫了:

float d = length(@P);
d *= ch('scale');
d -= @Time;
@P.y = chramp('myramp',d);
@P.y *= ch('height');

我們把grid先切成一半(在最下方添加個clip節點),改變scale和height滑竿的數值,你就可以調整ramp重複的頻率。你可以任意改變樣條,讓它變爲三角鋸齒波紋等等形狀。

請注意!我相信你用了這種樣條控制一段時間後,會感到挺不爽的,它不像其他軟件裏的UI一樣好用。它不讓你看到01範圍之外的東西,只有01的映射;沒有樣條預設;並且你不能輕鬆複製黏貼樣條;將曲線上的點改爲線性(Linear)以外的類型(Interpolation)可能會使映射數值產生莫名顫動;還有其他一百萬個惱人的問題,但是它仍然很cooooooooool~…

(PB_zz:Cool個屁,就不能改的更好用點嗎- -)

因爲樣條圖像調成線性的效果比較好,所以你就調成線性吧…把傳入變量改成sin等生成的數值,這樣效果好:

float d = length(@P);
d *= ch('scale');
d += @Time;
d = sin(d);
d = fit(d,-1,1,0,1);//建議使用fit將變量值映射爲0~1再傳入
@P.y = chramp('myramp',d);
@P.y *= ch('height');

是噠,沒錯!既然你只吃0-1,那我們就用fit或其他函數把變量值映射爲0-1再餵給你吃咯,這樣效果就自適應到整個平面上了!實際上,vex的很多函數都是最好用這種方式傳入0~1範圍的值,這叫做數值歸一化或規範化(normalized values)。特別是對於vectors向量數據來說這是很重要的。
而有些時候數值歸一化到0-1,你可以理解成是映射爲0%~100%,以百分比形式進行比例計算更方便,大家統一一下,就沒什麼單位問題。

好了,到目前爲止,本節基本都是PB_zz的文檔,至於我怎麼不加入我的思考呢?其實是因爲這個chramp雖然很強,但是用法也簡單,大家自己調調就能熟悉啦,過多的介紹不過無益,對於學習者來說,自己試纔是最好的學習方法。
(好了,我爲我的懶做出的理由就是上面這段。我的天哪,摘抄多方面,幹嘛帶腦子?手動滑稽)
不過我也要提醒一點,除了我們用vex添加chramp,很多節點也是有chramp的,比如PolyExtrude 的p面板下,點擊spineControl就能看到曲線控制的ramp了。
我用blender的ramp(顏色漸變或者曲線RBG)比較多,所以在下面貼一張ramp的小應用以供參考

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章