投稿者: mirrorboy
jit.gen / jit.gl.gridshape / jit.gl.plato を使った3Dオブジェクトのモーフィング : #jitter #maxmsp
jit.gl.multiple と jit.gen を使って、 jit.gl オブジェクトを複数個描画 #maxmsp #jitter #gen
jitterを使う上で避けては通れない、matrixとjit.gl.multiple(と、たぶん jit.meshも)を、そろそろ本腰入れて使って見ようと思いテストしてみました。jit.gl.videoplaneの動画をjit.genによるjit.matrixとjit.gl.multipleで大量に描画しています。
パッチ
multiple の @targetname で複数個描画したいオブジェクト(今回は、jit.gl.videoplane)を名前で指定する必要があります。また、描画するオブジェクトのアトリビュートで @automatic 0 にしておかないと、コイツが別途描画されてしまいます。
jit.gen code
メモ – jitterのパーティクルについて
jitterでパーティクル処理をするためには、個々のオブジェクトの状態をmatrixで保存するようですね。jit.genを使えばパーティクルを軽量かつ大量に描けるようです。ただjit.gen自体は、jit.gl.pixと違ってGPU処理では無く、CPU処理のコードにコンパイルされるので、jit.shivaなどのデフォルトのパーティクルオブジェクトと比較して、パフォーマンスがどうなのかは今度検証してみたいです。
jit.gl.pix を jit.gl.lua 内で利用する
[javascript]
autowatch = 1
gc = 1
local mov = jit.new("jit.qt.movie",this.drawto)
mov.adapt = 1;
mov:read("bball.mov");
local frame = jit.matrix();
local plane = jit.new("jit.gl.videoplane",this.drawto);
local pix = jit.new("jit.gl.pix",this.drawto)
pix.gen = "aer.line.genjit"; — readでは無く、genでファイルを読み込みます。
function draw()
mov:matrixcalc(frame.name,frame.name)
pix:jit_matrix({frame.name})
pix:draw()
plane:jit_gl_texture(pix.out_name)
plane:draw();
end
[/javascript]
jit.gl 系のレンダリング結果をSyphonへ送るサンプル : #jitter #max6 #maxmsp
jit.gl.render の最終出力をSyphonに送る場合に、jit.gl.node へ描画して @capture 1 をする方法でやっていましたが激重だったので、改善方法が無いかとCycling74のフォーラムを徘徊していたら、jit.gl.textureを使う方法を見つけました。
解説
- jit.gl.texture を作成 @name で syphontex などと名付けておく
- 3Dオブジェクト等をjit.gl.render にてレンダリング
- to_texture “テクスチャ名” メッセージをjit.gl.render へ送り、jit.gl.textureに最終画像をレンダリング
- jit.gl.texture に bang を送り jit_gl_texture メッセージを第1インレットから出力
- jit.gl.syphonserver へ テクスチャを送る
注意点
2のステップは、飛ばせなかったです。Syphonに最終レンダリングを送りたいだけでも、必ずサンプルにもある jit.window のようなレンダリング先を用意しておく必要があります。
MadMapper へ
jit.gl.render のレンダリング結果を MadMapper で 表示できました!







