数ヶ月前に作ってTwitterでつぶやいたきりまとめてなかったネタ.
慶應の日吉キャンパスがある日吉駅.
日吉駅前には謎の銀色で球形のオブジェがあり,待ち合わせなどに利用されている.
このオブジェを見るたびに,「これどう見てもリファレンス球だろ…」と思っていた.
リファレンス球というのは,映画などで実写にCG合成するときに使うものである.
CGを合成したいシーンに銀とか白の球を置いておいて,カメラで撮影する.
そうするとシーンの環境光の情報を手軽に取得できる.
そしてCGをレンダリングするときに環境光の情報を反映させてやれば,
そのシーンに馴染んだCG合成ができるというわけ.
普通はリファレンス球に映った画像を加工して利用するのであるが,
今回は日吉オブジェ(以下銀玉)の材質をそのままテクスチャとして適当なCGに貼りつける.
そうすると銀玉を好きな形に変形させるARができてしまう.
使ったのは例によってOpenCVとOpenGL.
OpenCVで画像中の球の部分をcv::getRectSubPixで切り取ってリサイズしておく.
まだ球の部分を指定するのは今は手動で行っているが,ハフ変換を使って自動化すると良いと思う.
OpenGLでその画像をテクスチャとして読み込んで,スフィアマッピングすれば完成.
スフィアマッピングのやり方は床井先生のページを参考に.
http://marina.sys.wakayama-u.ac.jp/~tokoi/?date=20050107
リファレンス球にするのは日吉の銀玉だけじゃなく,球形だったら何でも良い.
最近何かと話題の某テレビ局の丸いのをリファレンスにするとこんなこともできる.
8chだけにタコ?
この処理はリアルタイムに動作するので動画への適用も可能.
そのうち日吉に撮影に行って動画を作ろうと思う.