INDEX

*INDEX

作ったもの、メモしておきたい知識など

ARを触ってみた

初投稿で何を投稿しようかなとネタを探していたのですが、
ARでTVっぽいものを作って表示させる課題をやったことがあったので、それを紹介します。
 

 

【環境】

・Windows10

・Visualstudio2013

ARToolKit 2.72.1

OpenCV 3.0.0

・GLUT3.7.6

 ARではおなじみのARToolKitを使用しました。基本このARToolKitのsimpleLiteを元に作成しました。

 

①テレビをOpenGLで作る

CG技術のない学生が考えたテレビっぽいもの

f:id:azurex:20180529132158p:plain

(古い・・・)

全部四角でテレビを作ってみました。リアルを捨ててかわいい感じのテレビを目指しました。
四角の記述はこんな感じで4点を指定しています。

glVertex3d ( -0.4 , -0.4, 0.5);/* A*/ glVertex3d ( -0.3 , -0.4, 0.5);/* A1 */
glVertex3d ( -0.5 , -0.4, 0.0);/* A2 */ glVertex3d ( -0.6 , -0.4 , 0.0);/* A3 */

 
見えずらいのですが、足の側面や本体の側面は色を濃くして影っぽくしたりしています。



②カメラの映像を表示
先ほどのテレビにカメラからの映像を写してみます。
パソコンにつないだカメラからの映像がリアルタイムで写ります。これだけでも結構面白いです。
f:id:azurex:20180529133227p:plain

 OpenCVから映像を取得し、画像に切り出して、先ほどのテレビの白い部分にテクスチャとして貼り付けています。
よく言われていることですが、OpenCVOpenGLでは原点の位置が左上と左下と異なるので、変換してから貼り付ける必要があります。

capture >> frame ;
cv :: flip (frame , frame , 0);

(cv::flip()で反転させている)



③AR表示させる
マーカーの上にテレビを表示させてみます。
f:id:azurex:20180529134342p:plain

実際に表示されるとおおー!となります。
カメラ1でマーカーを写して、カメラ2でテレビの中の映像を写すといった感じです。
(カメラを両手に持ちながらさらにスクショをとるのが難しかった・・・)



④おまけ機能:色を変える
おまけとしてAR表示させた状態でテレビの色を変える機能をつけてみました。
実行中にキーボードの「R」「G」「B」を押すと、RGBの値がそれぞれ+0.1されます。
「E」「F」「V」を押すと逆にRGBの値が-0.1されます。
これで自分の好みの色にテレビの色が変えられます。
f:id:azurex:20180529135319p:plain
綺麗な色をピックアップしたもの


⑤おまけ機能:時間表示
おまけ2としてテレビといえば右上の時刻表示かな、と思ったのでやってみました。
現在時間はtime関数で取得できます。

time_t t = time ( NULL );

取得した時刻を文字データにして、画面右上に表示させます。
このときに画面上ぴったりに配置すると、テクスチャと同じ表面に表示されておかしなことになるので、画面の表面よりほんの少し前に出してあげるといいです。

f:id:azurex:20180529140224p:plain

見えにくいですが時間と曜日が表示されています。



【感想】
ARToolKitを使うとすぐARで遊べて楽しい
・カメラを2台設定するのが難しかった。そこでかなり時間を取られた。
・CGでかっこいいリアルなTVを作ってみたい


参考サイト
http://kougaku-navi.net/ARToolKit/