さて、iPhone / iPod touchアプリの勉強中ですが、難航しています。チュートリアルでXcodeとInterface Builderはわかってきましたが、Objective-Cに癖がありまして、なかなか進みません。
ほかにもやることがあるので、残念ですがしばらく手を付けられません。時間切れです。
とりあえずやりたいことをネタにしておきます。
--------------------------------------------
iPod touchにはカメラがなく、ARToolKitなどを使って直接VRを楽しむことができません。ならばどうやってVRを作るか、というのはJohnny Chung LeeのWiiリモコンを使ったVRシステムにヒントがありました。
Johnny Chung Lee > Projects > Wii
このプロジェクトではWiiリモコン(つまりIRカメラ)と赤外線LEDを使ったもので、ARToolKitと同じような手法で実現をしています。ARToolKitと大きく違うのは、視点にマーカーを使っている点です、Wiiリモコンはディスプレイまたはコンピュータに固定されています。逆にARToolKitでは視点はWiiリモコンにあたります。
今回想定しているプログラムは以下の図で表せます。
![](https://blogimg.goo.ne.jp/user_image/0c/fb/704229012fd2b7dc855125092ca6b081.jpg)
簡単に説明すると、マーカーの位置と傾きをカメラの視点座標とし、カメラの位置を物体の座標としてVRを行うシステムです。
プロセスは、マーカーをiPod touchの裏に張り付け、その映像をカメラで撮影、映像をARToolKitを使って、マーカーの座標を検出します。そのマーカーの座標をiPhone / iPod touchプログラムに送信し、マーカー位置を視点座標とし、視点座標からカメラの位置である原点座標が物体位置にします。これによってVRが可能になります。
利点はARToolKitの処理がすべてサーバー側の処理になり、モバイル機側での処理を減らせます。特にARToolKitの処理であるストリーム処理、画像処理などの膨大な計算処理が省けるので、恩恵はかなり大きくなります。
欠点はカメラの視点外になるとマーカーが検出されず、映像が出力されないのと、ARToolKitのように周辺画像を取り込めないことにあります。
中途経過として、マーカーの座標を送信するプログラムのひな形はできましたが、レガシーなCのコードで書かれているため、iPhone / iPod touchのアプリケーションでは実装が難しく、代わりの方法に関してのコード記述で停滞しています。
一応そのひな形のプログラムのスクリーンショットは以下の図です。手前のテキストベースのアプリケーションがクライアント、後ろのARToolKitを使ったアプリケーションがサーバーになります。クライアントがマーカー座標をサーバーに要求し、要求を受け付けたサーバーが座標データをクライアントに送信、最後にクライアントは受信した座標を表示するプログラムです。数字は4行4列の行列になります。acceptのスペルミスがありますが…
![](https://blogimg.goo.ne.jp/user_image/08/4e/3eecfc007c80e245b09a37765e60803c.jpg)
とりあえず今回はここまでです、また来年お会いしましょう。登校時間から数時間後ですが…
ほかにもやることがあるので、残念ですがしばらく手を付けられません。時間切れです。
とりあえずやりたいことをネタにしておきます。
--------------------------------------------
iPod touchにはカメラがなく、ARToolKitなどを使って直接VRを楽しむことができません。ならばどうやってVRを作るか、というのはJohnny Chung LeeのWiiリモコンを使ったVRシステムにヒントがありました。
Johnny Chung Lee > Projects > Wii
このプロジェクトではWiiリモコン(つまりIRカメラ)と赤外線LEDを使ったもので、ARToolKitと同じような手法で実現をしています。ARToolKitと大きく違うのは、視点にマーカーを使っている点です、Wiiリモコンはディスプレイまたはコンピュータに固定されています。逆にARToolKitでは視点はWiiリモコンにあたります。
今回想定しているプログラムは以下の図で表せます。
![](https://blogimg.goo.ne.jp/user_image/0c/fb/704229012fd2b7dc855125092ca6b081.jpg)
簡単に説明すると、マーカーの位置と傾きをカメラの視点座標とし、カメラの位置を物体の座標としてVRを行うシステムです。
プロセスは、マーカーをiPod touchの裏に張り付け、その映像をカメラで撮影、映像をARToolKitを使って、マーカーの座標を検出します。そのマーカーの座標をiPhone / iPod touchプログラムに送信し、マーカー位置を視点座標とし、視点座標からカメラの位置である原点座標が物体位置にします。これによってVRが可能になります。
利点はARToolKitの処理がすべてサーバー側の処理になり、モバイル機側での処理を減らせます。特にARToolKitの処理であるストリーム処理、画像処理などの膨大な計算処理が省けるので、恩恵はかなり大きくなります。
欠点はカメラの視点外になるとマーカーが検出されず、映像が出力されないのと、ARToolKitのように周辺画像を取り込めないことにあります。
中途経過として、マーカーの座標を送信するプログラムのひな形はできましたが、レガシーなCのコードで書かれているため、iPhone / iPod touchのアプリケーションでは実装が難しく、代わりの方法に関してのコード記述で停滞しています。
一応そのひな形のプログラムのスクリーンショットは以下の図です。手前のテキストベースのアプリケーションがクライアント、後ろのARToolKitを使ったアプリケーションがサーバーになります。クライアントがマーカー座標をサーバーに要求し、要求を受け付けたサーバーが座標データをクライアントに送信、最後にクライアントは受信した座標を表示するプログラムです。数字は4行4列の行列になります。acceptのスペルミスがありますが…
![](https://blogimg.goo.ne.jp/user_image/08/4e/3eecfc007c80e245b09a37765e60803c.jpg)
とりあえず今回はここまでです、また来年お会いしましょう。登校時間から数時間後ですが…