!!!JOGLを使用したOpenGL {{ref_image jogl-sample01.jpg}} ::必要なファイル :::[ここ|https://jogl.dev.java.net/]から「Current release build (JSR-231 1.1.0)」のリンクをたどり、環境にあったファイルを取得する。{{br}} :::Windowsなら「jogl-1.1.0-windows-i586.zip」など。{{br}} :::jarファイルはeclipseのビルドパスにライブラリとして追加。{{br}} :::dllファイルは、%JAVA_HOME%\bin(とか\jre\bin)にいれても良いらしいが、{{br}} :::自分は「-Djava.library.path=[dllの場所]」とするのが好み{{br}} ::参考サイト :::[NeHe Productions|http://nehe.gamedev.net/](OpenGL Tutorials...Win32 API){{br}} :::[Java Tips|http://www.java-tips.org/other-api-tips/jogl/]{{br}} :::[OpenGLを使ってJavaでも3Dを楽しもう|http://itpro.nikkeibp.co.jp/article/COLUMN/20060703/242298/?ST=develop] ::Tips :::OpenGLの使い方などは参考サイトに任せるとして、ここでは使えそうなTipsを紹介。{{br}} *SwingでJOGLを使う。(※必要そうなコードのみ抜粋して掲載。) public class JoglPanel extends GLJPanel implements GLEventListener { public JoglPanel() { this.addGLEventListener(this); final Animator animator = new Animator(this); animator.start(); } public void display(GLAutoDrawable glDrawable) { } public void displayChanged(GLAutoDrawable glDrawable, boolean b1, boolean b2) { } public void init(GLAutoDrawable glDrawable) { } public void reshape(GLAutoDrawable glDrawable, int x, int y, int w, int h) { } } public class Jogl2dMain extends JFrame { public static void main(String[] args) { Jogl2dMain mainFrame = new Jogl2dMain(); mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainFrame.setSize(300, 300); mainFrame.setLocationRelativeTo(null); mainFrame.setIgnoreRepaint(true); mainFrame.setVisible(true); } public Jogl2dMain() { this.setTitle("title text"); JoglPanel panel = new JoglPanel(); getContentPane().add(panel); this.setResizable(false); this.pack(); } } *PNG形式ファイルの読み込み。(※必要そうなコードのみ抜粋して掲載。) // displayメソッド try { Texture texture = TextureIO.newTexture(this.getClass().getResourceAsStream(filename), true, suffix); texture.enable(); texture.bind(); } catch (IOException ex) { ex.printStackTrace(); } *TrueTypeFontの使用。(※必要そうなコードのみ抜粋して掲載。) // initメソッド // Font.createFont(Font.TRUETYPE_FONT, InputStream)を利用して、好きなttfファイルを読み込んでおく renderer = new TextRenderer(font, true, true); // displayメソッド renderer.beginRendering(glDrawable.getWidth(), glDrawable.getHeight()); renderer.setColor(1.0f, 0.2f, 0.2f, 0.8f); renderer.draw("アプリケーションテストプログラム", 10, glDrawable.getHeight() - (int)renderer.getBounds("アプリケーションテストプログラム").getHeight()); renderer.endRendering();