手軽な?マーカーなし拡張現実感 2
『手軽な?マーカーなし拡張現実感 1』で、カメラの「正確な」移動量さえわかれば、マーカーがなくても違和感のない合成ができるということがわかりました。
三次元加速度センサというものがあれば、それができるみたいですが、そんな高そうなものは、持っていないので、我が家にあるwebカメラ Qcam® Orbit AFのパン、チルト機能を使って、実現してみたいと思います。
『Qcam® Orbit AFのパン、チルト機能をDirectShowで制御する。』で紹介したように、webカメラ Qcam® Orbit AFは、DirectShowで制御でき、角度をIAMCameraControl::Set関数で設定してあげることで、カメラを動かすことができます。これを利用すれば、カメラの回転を行い、同時に移動量を知っておくことができます。
というわけで、実際にやってみると・・
駄目でした。
角度をIAMCameraControl::Set関数で設定し、カメラを動かすわけですが、設定した角度通りにカメラが動きません。(私のカメラは、時計回りに10度回れと命令すると、14度ぐらい動いている。正確じゃない・・)
このため、モデルに対する正しいキャンセルができませんでした。
[初期姿勢です。]
[カメラに対して、時計回りに10度カメラを動かせと命令。
カメラが時計回りに10度動くことを期待し、モデルを反時計回りに10度動かしている。
実際には、カメラが14度ぐらい動いたため、正しいキャンセルができなかった。]
参考:
『千葉大学大学院工学研究科建築専攻平沢研究室 - 動画デモ』
http://hlab.ta.chiba-u.jp/staticpages/index.php?page=20070910021039317
『 三次元CG@七葉(http://nanoha.kirara.st/3dcg/) 』
の「ファイル保管庫@七葉」からお借りしました。