学生がお正月に悩んでいたらしいのですが、jit.gl.multipleを使って以下のような3次元配置をしたかったんだそうです
それで、2次元配置なら、ヘルプ・パッチにもあるように、
jit.matrix 3 float32 4 4
↓
jit.expr @expr “snorm[0]” “snorm[1]”
ってな感じで位置情報をjit.gl.multipleに送ればいいので、これを3次元に拡張すると、
jit.matrix 3 float32 4 4 4
↓
jit.expr @expr”snorm[0]” “snorm[1]” “snorm[2]”
で良さそうなんだけど、これがうまく行かない。いろいろと試してみたところ、やはり3次元以上のマトリックスに対応していない気配が濃厚。そこで、取りあえずの解決策として考えたのは、1次元配列で位置情報を自前で計算する方法。ディメンションの大きさが異なれば、計算式も修正しなければならないのがイマイチなのですが….(jit.exprまでにマトリックスの大きさを取得して、その3乗根を第2インレットに送るとか?)
jit.matrix 3 float32 64
↓
jit.expr @expr “cell[0]%4 – 1.5” “floor(cell[0]/4)%4 – 1.5” “floor(cell[0]/16) – 1.5”
パッチのダウンロードは以下のリンクからどうぞ。
jitglmultiple-samplepat.zip
後でMaxMSP-MLで尋ねたところ、”jit.gl.multiple only processes 2 dimensional matrices right now.”との返事でした。でも、そんなこと、どこにも書いていないのでは??
ちなみに、jit.exprはとっても便利なので、そのうち2061:Maxオデッセイ補完計画で取り上げようと思ってました。
ピンバック: jit.gl.multipleで3次元マトリックス « akalogue