jpctことはじめ
jpctをはじめてみた。
ダウンロードしたアーカイブの中にあるHelloWorldをmain文だけに改造して動作を確認してみた。
若干Irrlicht風味のAPIで、シーンを作って自前ループを回すというシンプルな構成だった。
もう少し掘り進む。
import com.threed.jpct.*; public class App { static public void main(String args[]){ // create window FrameBuffer buffer = new FrameBuffer(800, 600, FrameBuffer.SAMPLINGMODE_NORMAL); buffer.disableRenderer(IRenderer.RENDERER_SOFTWARE); buffer.enableRenderer(IRenderer.RENDERER_OPENGL); // setup scene World world = new World(); world.setAmbientLight(0, 255, 0); // box Object3D box = Primitives.getBox(13f, 2f); box.setEnvmapped(Object3D.ENVMAP_ENABLED); box.build(); world.addObject(box); // texture TextureManager.getInstance().addTexture("box", new Texture("box.jpg")); box.setTexture("box"); // camera world.getCamera().setPosition(50, -50, -5); world.getCamera().lookAt(box.getTransformedCenter()); // main loop while (!org.lwjgl.opengl.Display.isCloseRequested()) { // update box.rotateY(0.01f); // draw buffer.clear(java.awt.Color.BLUE); world.renderScene(buffer); world.draw(buffer); buffer.update(); buffer.displayGLOnly(); // wait try { Thread.sleep(10); } catch(java.lang.InterruptedException e){ System.out.println(e.getMessage()); break; } } buffer.disableRenderer(IRenderer.RENDERER_OPENGL); buffer.dispose(); System.exit(0); } }
<?xml version="1.0" encoding="UTF-8"?> <project name="JavaWithScala" default="compile"> <property name="src" value="src" /> <property name="classes" value="classes" /> <property name="jpct.lib" value="T:/java/jpct/lib/jpct/jpct.jar" /> <property name="lwjgl.lib" value="T:/java/jpct/lib/lwjgl-2.4.2/jar/lwjgl.jar;T:/java/jpct/lib/lwjgl-2.4.2/jar/lwjgl_util.jar" /> <property name="lwjgl.dll" value="T:/java/jpct/lib/lwjgl-2.4.2/native/windows" /> <target name="compile" depends="init"> <mkdir dir="${classes}"/> <javac srcdir="${src}" includeAntRuntime="no" destdir="${classes}"> <classpath> <pathelement path="${jpct.lib}" /> <pathelement path="${lwjgl.lib}" /> </classpath> </javac> </target> <target name="run" depends="compile"> <java classname="App" fork="true" classpath="${classes}" > <sysproperty key="java.library.path" value="${lwjgl.dll}"/> <classpath> <pathelement path="${jpct.lib}" /> <pathelement path="${lwjgl.lib}" /> </classpath> </java> </target> <target name="clean">