2009年04月11日

NyARToolkitForAndroid On Google App Engine

Google App EngineのJava版が公開されたということで、現実逃避 いきおい余って、Google App Engineの上で動く、NyARToolkitForAndroidを作ってしまいました。
これにより、AR関連の処理は、すべて、Google App Engine上で行われて、Android内ではカメラ画像の取得と3Dオブジェクトの描画のみが行われることになります。

ちなみに、気になる速度ですが・・・・・・ダメでした。HttpConnectionに1〜2秒かかるので、全然速くなってません。orz
ただ、本来的には、サーバ側の膨大なリソースを当てにして、複数スレッドで同時に処理をさせるというやり方が正しいはずですので、そのあたりをチューニングすれば、良い結果が得られると思います。


ソース一式は、
NyARToolkitForAndroidOnGAE-1.0.zip から、ダウンロードできます。
※手抜きで、NyARToolkitを操作するためのパラメータは、ほとんど、渡せない状態ですが、追加するのは簡単なので、必要に応じて追加してください。


ということで、最後に、Google App Engineで嵌った点を書いておきます。



■Androidの嵌りポイント
●HttpClient4.xとMaltiPartとGoogle App Engineの相性
Androidは、1.0からHttpClient4.xベースとなっているため、MaltiPartでform-dataを送りたいときはApache Mime4jを利用します。

が・・・Google App Engineと組み合わせると、動きません。orz
嵌りました。もう、あきらめました。HttpClient3.xを持ってきて、そちらを使っています。(ノД`)シクシク



■Google App Engine
●ライブラリのコピー
Eclipse上で、jar(ライブラリ)の追加をしても、Google App Engineのサーバ上には反映されません!
必ず、Eclipseプロジェクト内の下記のディレクトリにも、jarをコピーする必要があります。

war/WEB-INF/lib/



●File I/O系は使えない
MaltiPartしたかったので、Commons FileUploadを利用して楽をしようと考えました。

ダメでした。。。File I/O系(FileOutputStreamなど)が使用できないため、動きません。。。
そのため、byte[]で扱うFactoryを実装しました。。。なんか、ぜんぜん、楽できなかったような。。。

ソースは、jp.android_group.artoolkit.gae.server.server.fileパッケージ以下に、置いてあります。


trackbacks

プロジェクター投影型AR と AR分野について from なんとなく実験 with SIProp開発記

ARにおいては、『どこ』に『なに』を表示するか? という、オブジェクトを表示する...

Creative Commons License
This weblog is licensed under a Creative Commons License.