2011年1月1日土曜日

Quartz Composer / 床に反射した画

動機
床に反射した画ってどうやってつくるんだろ?


調べた
Quartz ComposerのMusic VisualizerのサンプルであるClub Lisa.qtz(/Developer/Library/Quartz Composer/Examples/Music Visualizers/Club Lisa.qtz)のあれを参考にすればよさそう.


やってみた
肝心なところだけ抜き出すとこんな感じだ(と思う).

(CIからつながっている下側のSpriteのY Positionは-1)

CIのコードがこんな感じだった.

kernel vec4 reflection(sampler image, float brightness, float position)
{
vec2 v = samplerCoord(image);
vec2 s = samplerSize(image);

v.y = s.y - v.y;

vec4 pixel = sample(image, v);
float p = 1. - v.y/(position*s.y);
return vec4(pixel * p * brightness);
}



結果



pmd: 'Lat式ミクVer2.3_White.pmd'(Lat様)('VPVP wiki - モデルデータ/VOCALOID関連'より),
vmd: '恋愛サーキュレーション-ミク.vmd '(せっけんP様)('VPVP wiki - モーションデータ/ダンス')より) ,
感謝 )
動画の場合は'Render in Image'で画を作ってくればよいと思うが,ただそれだとY軸方向の移動で足と影がはなれてしまうのでそのあたり,賢くCropしてくれてY軸の位置情報も出力する道具立てが必要か…ちょっとめんどくさい印象.
方針が間違っているのかしら.

0 件のコメント: