2010年4月25日日曜日

拡張現実の旅-NyARToolkit C# 編 1泊目

本家の ARToolKit のビルドには、あっさり敗北して思い知った。もはやC言語には戻れない体になってしまっていることを・・・

出来ないものは、しょうがないよねっ!
気を取り直して、よく考えてみた。
「別に全部C言語じゃなくてもよくね?」
というわけで、メイン部分は C# ですることにした。

調べてみると、ARToolKit には、NyARToolkit という C# での実装版が存在し、OpenCL には、OpenCL .NET という C# ラッパーがあるようだ。

NyARToolkit は、オリジナルを参考に実装しなおしているらしい。ソースコードレベルでは、移植ではなく別物と考えたほうがよさそうだ。API レベルでは、互換があるとのこと。

動作環境は以下とする。Windows Vista Business 64bit SP2
AMD Phenom II X4 955 3.20GHz
ATI HD4890  メモリ 1G

以下のものは導入済みとして作業を進める。
Microsoft DirectX SDK (February 2010)
Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1
Visual C# 2008
ATI Stream SDK 2.01 Vista, Win7 64bit

では、以下の必要なものをダウンロードしてくる。
FrontPage - NyARToolkit から NyARToolkitCS-2.5.1.zip
SourceForge.net: OpenCL .Net から OpenCLNet 0.4.zip


最初は、OpenCL .NET からいってみる。
OpenCLNet 0.4.zip ファイルを適当な場所に解凍する。
上記解凍場所の source\OpenCLNet.sln を Visual C# で開く

なんだか、「プロジェクトの場所は信頼されていません」とか言われる。
なんだろう?
とりあえず、全て「OK」ボタンを押しておく。

2010/04/26 追記 : [プロジェクトの場所は信頼されていません] ダイアログ ボックス ページの下の方にあるコミュニティ コンテンツを見て対処法は分かったが、上の方の説明は意味不明。専門用語を専門用語で説明すんなっ!

何も考えず、ソリューションのリビルドをしてみる。
成功。

ImageCrossFade プロジェクトをスタートアッププロジェクトに設定して、実行してみる。
動いているようだ。


次に、NyARToolkit をコンパイルしてみる。
Visual C# で ”forFW2.0\NyARToolkitCS.sln”を開く。

またもや、「プロジェクトの場所は信頼されていません」とか言われる。
なんだろう?
やっぱり、全て「OK」ボタンを 押しておく。


Web カメラを接続してから、”CaptureTest”プロジェクトをスタートアッププロジェクトに設定して、実行してみる。
ウィンドウが開き、Web カメラの映像が表示される。タスクマネージャからプロセスを確認すると、64bit モード(プロセス名の末尾に”*32”が付いていない)で動作していることを確認できた。

なんだか、あっけないくらいにうまくいった。やっぱりソースは生もの。時間が経つと腐敗していく。
はじめから NyARToolkit にしておけばよかった。


では、今回はここまで。