配布ZIPのlibフォルダにあるjarファイルを、自分が使うProcessingソースのソースフォルダ(またはcodeディレクトリ下)または、 ProcessingのLibraliesディレクトリにコピーします(こちらに置く場合は Processingのライブラリディレクトリにおく場合は、jp/nytla/kGLModeフォルダを作成して、その中にNyARMQO.jarをおいてください。 ※本ライブラリは、BPSGR.jar, BPSGR_MQO.jarの2つから成ります。 同梱されているファイルのうち、Jbullt.jarは、jbulletのre-distribution、vecmath.jarは、JAVA3Dのre-distributionになります。 既にお持ちの場合は、コピーの必要はありません。
import processing.opengl.*; import javax.media.opengl.*; import javax.media.opengl.glu.*; import javax.vecmath.Vector3f; import com.bulletphysics.dynamics.RigidBody; import BPSGR.*;
//BPSGRの宣言 BPSGR demo; //カメラ位置始点の設定(drawセクションで指定しても良い) Vector3f cameraPosition = new Vector3f(0f, 1000f, 350f); Vector3f cameraTargetPosition = new Vector3f(0f, 0f, 0f); // look at
//クラスの生成
PGraphicsOpenGL pgl = (PGraphicsOpenGL) g; // g may change
GL gl = pgl.beginGL(); // always use the GL object returned by beginGL
//OpenGLのハンドルを渡す必要あり
demo = new BPSGR(this, gl);
pgl.endGL();
//物理空間の初期化(&平面の生成)
demo.initPhysics();
//空間に物体の追加(下記例は、箱集合を設置している)
demo.putBoxArray( 0, 0, 0, 16, 10, 16, 0.1 ,2);
//シミュレーションStepの指定
//この数値によって、シミュレーションの速度が変わります
demo.dynamicsWorld.stepSimulation(ms / 1000000f);
//描画部分
PGraphicsOpenGL pgl = (PGraphicsOpenGL) g; // g may change
GL gl = pgl.beginGL(); // always use the GL object returned by beginGL
//Perspectiveの設定(beginGLの際にPerspectiveが変わってしまうため、drawセクションで毎回呼ぶ必要あり)
BPSGR.setPerspective(gl, width, height);
//視点の設定(動的に変更する必要が無ければ、setupセクションに置くのも可)
glu.gluLookAt(cameraPosition.x,cameraPosition.y,cameraPosition.z
, cameraTargetPosition.x, cameraTargetPosition.y, cameraTargetPosition.z
, 0, 1, 0);
gl.glPushMatrix();
// レンダリング
demo.render();
gl.glPopMatrix();
pgl.endGL();
========================
・著作権とライセンス
コアの部分の、パッケージBPSGR.kGLModel部分は、
A虎@nyatla.jpさんの著作物、NyARMqoViewerのMetaseqファイルを扱う部分をベースに拡張してあります。
このNyARMqoViewerは、keiさんの著作物にA虎@nyatla.jpさんが改変を加えたものです。
この部分のライセンスはkeiさんのそれに従います。
Jbulletは、jbulletの配布条件に準じます(http://jbullet.advel.cz/) ZLIBライセンスです。
また、BPSGR内の描画を行うクラス(JBDrawGL)は、
JBulletのサンプルソース('com.bulletphysics.demos.opengl'の'LWJGL.java' and 'GLShapeDrawer.java')を参考に、
Processing用に対応したものです。(原作はLWJGL用)
vectmath.jarは、JAVA3Dのライブラリで、配布条件はそちらに準じます
このライブラリ自体はMITライセンスで配布します。ライセンスに関しては、licence.txtを参照してください。
ソースコード毎の著作権は、ソースコードの先頭部分を見てください。
Author: Reco
Contact: recomemos@gmail.com (@は小文字に直してください。)
ブログの方にコメントを戴いても結構です。
ブログRECO-MEMO"