memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

Point of DOF (Depth-of-field)

openframeworksのforumを見ていろいろ勉強中です。

Kyle McDonaldさんがforumに公開してくれたサンプルプログラムがありました。実行結果は以下です。かっこいいですねー。Kinectで距離を計測して仮想空間上に点を描画しています。

Link: openframeworksのforumページ
Link: Kyle McDonald

先日、試しに作ってみたプログラムも基本的にはこれと同じです。

サンプルプログラムをダウンロードして実行したのが以下です。

すんなり動いたのかというと実は大変でした。openframeworksというよりXcodeの設定をよく理解していないためかいろいろ試してもなかなかエラーが取れない。。。結局は、includeファイルとライブラリの検索パスの設定の問題だったのですが、サンプルプログラムで利用しているaddon(のバージョンが)が開発した方の環境に依存しているようで、それを1つ1つ潰すのが大変だった。。。ということがわかりました。forumで日夜遊んでいる方にすれば当たり前の手順なのでしょう。

結局、動いたのは以下の手順です。これでも結構大変です。。。関連するリンクは以下の通りです。

  • openframeworksをgthubからダウンロードします。prerelease版では動作しないので注意が必要です。私はまずここではまりました。

git clone https://github.com/openframeworks/openFrameworks.git

  • 次にMemoさんのgithubからofxKinectをダウンロードします。ofxKinectを単体でインストールしてセットアップすることもできるのでしょうけど私はなぜかうまくいきませんでした。

git clone https://github.com/ofTheo/ofxKinect.git

  • ダウンロードしたofxKinectフォルダをopenframeworks/apps/exampleに入れます。
  • 次にPointCloudDOF.zipをダウンロードして展開します。以下のリンクをクリックするとファイルがダウンロードできると思います。

http://www.openframeworks.cc/forum/download/file.php?id=838

  • 展開したPointCloudDOFフォルダの中のsrcフォルダ内にある3つのファイル(main.cpp, testApp.h, testApp.cpp)をopenframeworks/apps/example/ofxKinect/srcに(上書き)コピーします。
  • ofxControlPanelをダウンロードして展開します。

git clone https://github.com/ofTheo/ofxControlPanel.git

  • 展開したofxControlPanelフォルダをopenframeworks/addonsにコピーします。
  • ここまでで準備が完了です。あとはコンパイルするために細かい調整がいくつかあります。まず、openframeworks/apps/example/ofxKinect/ofxKinect.xcodeprojをダブルクリックしてXcodeを起動します。ここからは少々細かいので図を交えながら説明します。
  • 左ペインで図のようにaddonの上で右クリックして「既存のファイル」を選択します。


  • openframeworks/addonフォルダ内の4つのフォルダを選択して追加ボタンを押します。コマンドキーを押しながらクリックすると複数選択できます。


  • そのまま追加ボタンを押してください。(ディスティネーション〜はチェックオフでいいです)


  • 最後に以下のような状態になっていることを確認してください。


  • あとはBuildすれば動作するはずです。