« 「Jitterで動体検知して遊ぶ」を高速化してもらいました!その1 | トップページ | MAX/MSP+Jitter 指定したフォルダの映像ファイルをランダム再生 »

2009年7月14日 (火)

「Jitterで動体検知して遊ぶ」を高速化してもらいました!その2

前回に引き続きhttp://adsr.jp/のmasato221さんが作ってくれたものを解読していきます。
今回はjit.gl.multipleを使ったバージョンで、さらに処理が速く、効率化されてます。

jitter_rx8_multi

●描画オブジェクトの生成
「jit.gl.multiple」はjit.glオブジェクトを繰り返し描画することができます。
やりたいのは●を敷き詰めることなので、jit.gl.gridshapeで●を作っておきます。

jit.gl.gridshape sample @shape circle @depth_enable 1 @automatic 0 @blend_enable 1 @blend_mode 6 1 @dim 10 10 @name pixel @texture tex1 @tex_map 3 @tex_plane_s 0.5 0. 0. 0.5 @tex_plane_t 0. 0.5 0. 0.5

@name pixel
「pixel」という名前をつけています。
「jit.gl.multiple」で繰り返すオブジェクトを指定するための名前です。

読み込んだ映像をテクスチャとして使うための設定もしています。
@texture tex1
「tex1」という名前がついたテクスチャを使うようにします。

@tex_map 3
@tex_plane_s 0.5 0. 0. 0.5
@tex_plane_t 0. 0.5 0. 0.5
この3つはテクスチャの適用方法になると思うんだけど、まだ理解はできず。
tex_plane_sとかはデフォルト値でいいような気がしてしまうけど、なんでこういう値になるのか。。
まあそのうち理解できるはず。

●映像の読み込み
1)jit.qt.movie 20 15 @unique 1
普通に読み込みます。

2)jit.slide @slide_up 4 @slide_down 8
Matrixが滑らかに変化するようにします。

3)jit.gl.texture sample @name tex1
テクスチャを作成します。「tex1」という名前にします。

●動体検知
「jit.matrix 3 float32 20 15」まで前回のと同様です。

●描画
1)jit.expr @expr \"snorm[0]*in[1]*1.33\" \"snorm[1]*-1.*in[1]\" \"0\"
X,Y,Z値を計算します。Zは0で、X,Yは前回と同じ計算です。

2)jit.expr @expr \"(in[0]+(in[1]/50))\"
scale値を計算します。
in[0]は動体検知の結果。動きが大きい部分=白に近い=値が大きいほど描画する●が大きくなります。
in[1]は右のインレットからの入力値。

3)jit.matrix 1 char 20 15付近
これは「jit.gl.multiple」のテクスチャの初期設定みたいなもの?
ディメンション値が変わったとき(最初も含む)に実行されて、全てのセルを1にして出力します。

4)jit.gl.multiple sample 3 @targetname pixel @glparams position scale texture

「3」はプレーン数かな?

@targetname pixel
繰り返し描画するオブジェクトの名前を指定します。

@glparams position scale texture
インレットで受け取るパラメータ。
この指定で第1インレットがposition、第2がscale、第3インレットがtextureになります。
描画する●たちのpositionとscaleの値をMatrixで受け取ることで描画します。
textureのほうは・・・なんだろう?テクスチャとなるMatrixと同じディメンション数のMatrixを渡してあげればいいっぽいけども。このMatrixの中身分だけ描画が繰り返される気がする。


こんな感じでまだ完全に理解できてるわけではないです。
それでもmasato221さんに作ってもらったのを見る前と今とでは全然違う。
「jit.gl.multiple」もよく分かんないからいいやって思ってたけど、今なら全然使える気がする。。
ほんとmasato221さんありがとうございました~。

今回のやつは会社のエントランスに設置してみる予定です。
他にもいろいろ作る予定。WEBカメラだけじゃなくてセンサーも使ってみたい。やっとGainerを使う日が来るかも。
会社のサイトとの連動も考えてます。

とりあえずローカルにある映像を順番に再生するのをやりたいのだが・・・

|

« 「Jitterで動体検知して遊ぶ」を高速化してもらいました!その1 | トップページ | MAX/MSP+Jitter 指定したフォルダの映像ファイルをランダム再生 »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: 「Jitterで動体検知して遊ぶ」を高速化してもらいました!その2:

« 「Jitterで動体検知して遊ぶ」を高速化してもらいました!その1 | トップページ | MAX/MSP+Jitter 指定したフォルダの映像ファイルをランダム再生 »