その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

Kyle McDonaldの「光の演習」ワークショップ@SUPER FLYING TOKYOに参加してきました

本日開催された「SUPER FLYING TOKYO」というイベント内のワークショップに参加してきました。


ワークショップの概要

このワークショップではカイル・マクドナルドの作品「Light Leaks」に関するエクササイズを行います。はじめにいくつかの理論的な導入を行い、openFrameworksで構築された実用的なツールを共有します。このツールには、簡易的なイメージキャプチャ、Canon DSLRカメラとのインターフェイス機能、初歩的なコンピュータビジョン、プロジェクション解析のためのストラクチャードライト法、キャリブレーションのための3Dモデルの利用、3Dプロジェクション・マッピングのためのシェーダ・プログラミングの基礎などが含まれています。このツールを正しく理解するためには2、3年程度のプログラミング経験があること、理論的な理解のためにはカメラやプロジェクターに関する経験があることが望ましいです。


幸いなことにKyleさんの英語は非常に聴き取りやすかったのですが、Light Leaksという作品のポイントがよくわからないまま参加して、「そもそも何の話をしているのか」というのが最初わからず苦労しました。


Light Leaksの作品動画は下記にありますが、


日本語で紹介された記事を読んだ方がポイントがわかりやすいかもしれません。

部屋の構造を立体的にスキャンして、壁や天井に反射する光の模様をマッピングしています。立体スキャンによってミラーボールの光がそれぞれどの場所に投影されるのか予測し、SketchUpを使って室内の光反射をモデリングしているのです。


僕はこれを読んでもよくわからず、実際にこの作品を構築する手順を聞いてるうちにやっとわかってきました。


というわけで以下は構築手順のメモです。

マスク作成: MaskBuilder

  • プロジェクタから投影されたものを見ながらミラーボールの周囲をなぞる
  • 中身を塗る
  • 周囲のふちを消す
  • マスク画像として保存


撮影:ProCamSample

  • マスクを適用し、投影するパターン(白黒のシマシマの間隔が違う数種類のパターン)を切り替える。
    • 露出時間に注意(プロジェクタは3色を順に云云かんぬん。なので素早く首をふると色が分離して見える)
  • ProCamSampleが、[パターンきりかえ → 撮影] を各パターンごとに自動でやってくれる
  • パターン数は10x2(垂直/水平)x2(白黒反転)



※この白黒パターンを使ってstructured lightをどうのこうのという話は "Pattern codification strategies in structured light systems" という論文に図解入りで書かれています。


proMapとproConfidence生成:ProCamScan

  • マスク作成(Photoshopで)
    • 撮影した画像からミラーボールの部分を黒く塗りつぶす
    • 他の部分を白く塗りつぶす
    • 生成したマスク画像をSharedDataにおく
  • ProCamScanを実行

→ proMap.png と proConfidence.exr が生成される

モデル作成

  • SketchUpでモデルを作成する
    • プロジェクタ
    • ミラーボール
    • スクリーン
  • export > [3d model]


写真撮り忘れましたが、ワークショップ会場のプロジェクタ周りの3Dモデルをその場でサクサクっとSketchUpで作成する様子は個人的に衝撃でした。「3Dモデルってそんなカジュアルにつくれるのか!」と。

キャリブレーション:camamok

  • referenceImage(カメラで撮影した画像)と3Dモデルを合わせる
  • camamok でポイントになる位置を referenceImage と3Dモデルそれぞれで指定する
    • Kyleさんはスクリーンの4隅、プロジェクタの2隅を指定していた


(見づらいですが、カメラで撮影した画像と3Dモデルがかなりいい感じで一致してます)

XYZMapを生成:BuildXyzMap

諸々生成したものを統合してXYZMapを生成する。

完成

(動画を後ほど貼る予定)


制作過程を理解したうえで改めて本家Light Leaksを見ると、「すげぇ!」となりました(おそい)。なるほど、こういう制御ができるようになるのか、と。


Light Leaks from Kyle McDonald on Vimeo.


その他メモ

  • Kyleさんはこの作品は3日でつくったとのこと。
    • もともとstructured light等々の知識があったので早くつくれた、らしい
  • シェーダの話

所感

ミラーボールの光が投影される様子を3次元モデリングする」というのは技術アプローチとして興味深く、その具体的手順が学べて勉強になりました。


あとこれは最近思っていて今日も思ったのですが、僕が「おもしろいことやる人だなー」と思うクリエイターに共通しているのが、論文を読むという点。今日のワークショップでは説明の中で論文が3つぐらい出てきてました。確かに論文は、アカデミックな世界ではわりと枯れてきているけど、実用や作品の世界にはまだあまり使われていないみたいなネタの宝庫だなと。


勉強します。