2009年3月27日金曜日

Jbullet(物理エンジン)を使ってみる

ちょっとProcessingから離れて、物理エンジンBulletのJava版、JBulletを使ってみてみた。
(将来的にはProcessingから使えないかなぁと思ったり)

ニコ動でも使ってみてる人がいます



Bullet自体は、物理エンジンとしてPS3,Wii等多くのゲームタイトルに採用されているメジャーなものだったりします。物理エンジンとしては、Havokの方が有名かもですが、bulletはフリーである部分が、私のような日曜プログラマーにはありがたい事です。

とりあえずは、デモプログラムを自分の環境で動かしてみます。
※私のJava開発経験は非常に少ないため、いろいろ試行錯誤の記録です。

公式サイト
http://jbullet.advel.cz/
からダウンロード

現在の私のJavaの開発環境は、Eclipseなのでプロジェクトを作成してデモソースを追加。

まずは、BasicDemoを動かして見ることに。
ライブラリの関連性とか調べるの面倒なので、dist配下にある、jbullet.jarのみReference Libraryに追加して、とりあえずビルド。
当然ビルドは通らず。

エラーを元に調べると、このデモプログラムは、表示ルーチンの部分に、LWJGL(Lightweight Java Game Library:軽量Javaゲームライブラリ)を使っているようなので、そのまま、リファレンスライブラリに、lib/jwjglの配下にあるjarファイルを追加

そして実行、、、
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
だそうで、、、。

うーん、Javaで開発あんまりしたこと無いから、よくわからんなぁ。
lwjglのライブラリはリンクしてるはずなのに。。。。
さらに、ネットで調べると、lwjglでサンプルプログラムをビルドしているブログエントリーを発見。(LWJGLを利用してウィンドウを表示する

あーなるほど、DLLをちゃんとコピーしておかないとだめなのね。
1つ学習しました。

ということで、
lib/jwjgl/win32/配下のDLLを、プロジェクトのトップ(srcの上)にコピーして実行。
無事にデモを見ることができました。

Java使ってるわりには軽いな・・・・。

なかなか楽しいのでもう少し遊んでみようかなと。

2009年3月9日月曜日

MqoView for Processing Ver0.3 リリース

MqoView for Processing Ver0.3をリリースしました。
前回のリリースで、Processingは左手座標系であるため、その対応をした事を書きましたが、
NyARToolkit for Processing等、一部のツールはProcessing上でも右手座標系を採用しています。
このため、NyARToolkit for Processingで3Dモデルを描画する際に、これまでのMqoView for Processingを使用すると、左右が逆になったりテクスチャがおかしくなったりします。
これは、本ライブラリが左手系描画をしているのに、座標系が右手系であるのが主因です。
これでは、せっかくのMQOViewer(というかローダー)も宝の持ち腐れになってしまいますので、左手系・右手系の両方で描画ができるようにアップデートしました。

モデルのロードは、createGLModelPs関数で行いますが、この関数の引数を1つ追加しました。
最後の引数をtrueにする事で、左手系での読み込み、falseで右手系での読み込みとなります。引数は省略できません。

また、本来ブラリは、本質的には、NyARToolkitとは(コードはいろいろ利用させて頂いてますが、機能的にはという意味では)関係がないので、混乱を避けるためにjarファイル名を変更しました。(NyARMQO.jar→MQOLoader.jar)

例:
model_data = KGLModelData.createGLModelPs(this, gl,null,this.content_provider,0.015f, KGLExtensionCheck.IsExtensionSupported(gl,"GL_ARB_vertex_buffer_object"),true) ;


DLはこちらから。