monoの開発ブログ

NyARToolkitとProcessingでAR

最近ではマーカを使ったARはすっかり当たり前になった感がありますね。目新しさという面ではあまり期待できませんが、使い道はいろいろありそうなので少し試してみました。

メインは後半のARでステージを合成する部分です。もうちょっと練り込めばかなり面白い感じにできそうな気がしています。

以下はメモ書きです。

API

非常にシンプルで書きやすいです。OpenGLを扱ったことがあればすぐに使えるようになると思います。

映像キャプチャ

このあたりはなかなか厄介。いろいろなライブラリがあって一長一短ある上にうちの環境ではうまく動かないなど大変でした。

Capture・CaptureDS・JMyronを試し、Captureで良好な結果が得られたのでGSVideoは試していません。WinVDIGを使うと画質が落ちるらしいので、気になる方はGSVideoも試してみるのがよいのではないでしょうか。

Capture

  • 標準
  • Windows・Mac・Linux対応
  • Windowsの場合はWinVDIGが必要

CaptureDS

  • DirectShowを使う
  • Windows専用
  • コードはCaptureの場合と大体同じ

うちの環境では1fpsくらいしか出ませんでした。

JMyron

  • Windows専用
  • コードの書き方が異なる

うちの環境では解像度を320x240や640x480以外にすると映像が崩れてしまいました。

GSVideo

  • Windows・Mac・Linux対応
  • コードはCaptureの場合と大体同じ

描画

2Dと3D

2Dの描画は実行した順、3Dの描画はデプステストの結果次第で描画の順序が決まりますが、2Dと3Dを混在させると常に3Dの描画が手前になって2Dの描画は隠れてしまうようです。ゲームでのパラメータ類や字幕なんかは2Dで手前に表示したいところなのですが……。

imageやpixelsの速度

特にOpenGLを使うときに顕著なのですが、imageやpixelsがとてつもなく遅かったです。今回は極力使わない方向で対処しましたが、高速に処理できる方法があれば知りたいです。

おわりに

ARについて何も書いてないですね……。正直NyARToolkitは特に苦労すること無く動いてくれて不満点もないので書くことがないのです。。。