2011年5月29日 星期日

[msd] 的使用方式一

[msd]的開發者是知名pd創作團隊chdh的Nicolas Montgermont在2006所開發的。

[msd]下載網頁

[msd]的主要物件有三種,分別為[msd],[msd2D],[msd3D],這三個物件的差異其實並不大,[msd2D]比[msd]多了Y軸,[msd3D]又比[msd2D]多了Z軸這維度。

使用msd必須宣告mass和link的數量以及大小,他們的連結方式可以自定,最基本的範例如下圖。


我們自定三個mass,並且決定它們的連結方式為mass--mass--mass,以類似火車車廂的方式連結。

所以在pd中我們可以這樣撰寫(如下圖)


一開始先送reset給[msd],接下來我們把三個自定的mass給一樣的命名和參數,參數的意義:

[mass $1 $2 $3 $4(
$1:身分(string)
$2:固定或是可移動(0 or 1)
$3:質量
$4:初始位置

所以[mass M1 1 100 50(的意思為,建立一個名叫M1的mass,他是可以被連動的,並且質量為100,x初始值為50。

並且用link將三個"M1"連結起來,link參數的意義為:

[link $1 $2 $3 $4 $5 $6 $7 $8(

$1:身分 (string)
$2:身分 第一個質量(int)
$3:身分 第二個質量(int)
$4:剛體
$5:阻尼
$6:剛體距離的力量
$7:最小長度的連結
$8:最大長度的連結

所以[link l1 0 1 10 10(的意義為,建立一個連結索引值為0跟1的mass,並且將這個鏈結命名為l1,它的rigidity為10,damping也為10。

連結圖示如下

最後送出[Xmax 100,Xmin 0(限定x軸的最大值100最小值0。

接下來為了讓[msd]運作,我們必須送[bang]去觸發msd,必且選擇你要msd回應什麼?

上圖的patch,[msd]會輸出massesPosL訊息出來。上圖範例輸出的結果會是[massesPosL 50 50 50(,這代表三個m1值都是50。

而[msd]能輸出的訊息包括:

[infosL(,輸出所有訊息
[massesPosL(,用list的方式輸出x軸的值大小。
[massesForcesL(,用list的方式輸出作用於mass的力。

[get massesPos(,條列輸出mass的索引編號,還有x軸大小,如果以上圖範例會得到:
[massesPos 2 50,massesPos 1 50,massesPos 0 50)
[get massesPos $1(,輸出特定mass的x軸值。($1在這範例中,能填的值有0,1,2),如果用[get massesPos 1(,在本範例會得到,[massesPosNo 1 50)。

最後透過送出[posX 0 $1(,這訊息去控制索引值為0的mass,而索引值1,2的mass也會受到連動而改變自己的X軸的值大小。

2011年5月19日 星期四

▌矩形爆炸

這是要投稿Pure Data Convention 2011的作品,目前完成不到一半,並且也還沒跟之前的作品整合起來.....





德國路途真是遙遠阿....

2011年5月17日 星期二

[筆記-46] [pix_opencv]安裝方式

下載 pix_opencv

http://www.hangar.org/wikis/lab/doku.php?id=start:puredata_opencv


pix_opencv for Mac OSX 10.6 and Pd-extended 0.42.5 : pix_opencv-0.2rc7_macosx-10.6_bins.tar

安裝方式

1.到應用程式找到pd並且按右鍵顯示套件內容。

2.解壓縮資料夾後,複製doc資料夾裡面的.pd檔到/Applications/Pd-extended.app/Contents/Resources/doc/5.reference裡面

3.複製extra資料夾的.darwin檔案,並且在/Applications/Pd-extended.app/Contents/Resources/extra/ 這路徑建立一個新資料夾pix_opencv,並且將.darwin檔案都丟到pix_opencv裡面。

4.將下載下來資料夾裡面的example/裡的opencv資料夾,複製丟到/Applications/Pd-extended.app/Contents/Resources/doc/examples

5.打開pd並且執行preference/path,並且載入一個新路逕(如下圖所示)


6.重開pd後就完成安裝,並且可以到help browser (如下圖所示路徑),開啓範例檔使用

2011年5月10日 星期二

[筆記-45] [depth]

[depth]這個物件可以稱為深度開關或者深度測試(也可以稱為z-buffering),在signal-buffer模式下這是非常有用的,因為可以藉此完成繪畫效果。在double-buffered模式下,你大概不會想關掉深度測試,除非你已經控制了每一個[gemhead]算圖的優先順序。
在預設值下,這個物件將會關閉在這物件之下的深度buffering
你可以透過設置初始狀態參數。


在單一buffer的情況下,可以透過[metro]持續給[gemhead]訊號,以及透過[depth]來關掉深度,可以得到持續的繪畫效果。

-------------------------------------------


關掉[depth]功能,z軸有作用。

-------------------------------------------



打開[depth]功能,z軸無作用。

2011年5月9日 星期一

[筆記-44] [GEMglPointSize]




透過[GEMglPointSize]這個opengl的物件,來控制point的大小,這是本來gem沒有的功能。