カーソル用マーカーのポインター部の座標をデスクトップ用マーカーの変換行列の逆行列に掛けることで、カーソルの座標をデスクトップに射影できる。これにより、カーソルのマーカーと、デスクトップ上に配置したオブジェクトとの接触判定を行う。

 ARDeskTop上のオブジェクトはOpenGLの行列のスタックを利用し、階層的に構築され、描写される。各オブジェクトはバウンディング・ボックスを持ち、カーソルがその領域内にあるかないかを判定する。そして、その判定によりクリックやドラッグ&ドロップを実現する。
 また、複数のカーソルにも対応し、人差し指と親指に付けたカーソルで、オブジェクトを摘むゼスチャーも定義している。

 ARDeskTopはボタンやラベル、スライダーなどの基本コントローラーを用意している。文字描写にはFTGLライブラリーを使用する。また、カーソルのモードとして、移動、回転、拡大、落書き、2つのカーソルを使うマルチを用意している。落書きは空中に自由に線を書くことができる。マルチはマイクロソフトのSurfaceや米ニューヨーク大学のJeff Hanのマルチタッチによる図形の拡大縮小・回転を、3次元で行えるモードである。どれも逆行列やベクトルの内積・外積で計算できる。

 ARToolKitの難点は、CGによって作ったオブジェクトを触ろうとすると手でマーカーが隠れてしまい触るのが困難である事と、マーカーから離れた場所にCGを描写する場合に大きなぶれが生じる事である。2つの臨時的解決法を示す。
 1つ目は、ウェブカメラを台などに固定して、一度検出されたデスクトップ用マーカーを再検出・再計算しない方法である。
 2つ目は、もう一台ウェブカメラを追加して、ヘッド・トラッキング・システムを行う方法である。ウェブカメラに、ヘッド・トラッキング用マーカーを貼り付け、追加したウェブカメラでそのマーカーを撮影し、ヘッド・トラッキングを行う。ヘッド・トラッキング用マーカーを上下逆にして、ウェブカメラの座標系に合わせることで、行列の計算を簡素化できる。現在のマーカーの変換行列は、(デスクトップ用マーカーの逆行列)×(ヘッド・トラッキング用マーカーの逆行列)×(現在のヘッド・トラッキング用マーカーの変換行列)の逆行列である。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

管理人/副管理人のみ編集できます