JOGL merupakan paket Java yang menyediakan penggabungan library untuk OpenGL Java Virtual Machine. Hal itu mengijinkan programmer komputer grafik untuk menggunakan object-oriented tools pada Java dengan hardware akselerasi grafik 2D dan 3D.
Pertama-tama yang harus anda perhatikan yaitu pastikan anda sudah menginstal Java Development Kit pada sistem anda.
Langkah instalasi JOGL di Linux (instalation for dummy) :
- Download JOGL versi terbaru di jogl.dev.net atau versi jogl yang saya gunakan jogl-1.1.1-linux-i586.zip. Saya asumsikan anda menyimpan file tersebut di home direktori.
- Selanjutnya anda harus menjadi superuser atau dengan cara :
$su atau $sudo su
Sekarang anda harus membuat direktori di /usr/lib/jogl. - Nah untuk melakukannya ketik
linux-eqjw:~ # mkdir /usr/lib/jogl
Pindahkan file zip tersebut kedalam direktori atau folder yang baru dibuat:
linux-eqjw:~ #mv ~/jogl-<versi jogl>.zip /usr/lib/jogl/ - Ekstrak file tersebut :
linux-eqjw:~ #cd /usr/lib/jogl
linux-eqjw:~ #unzip jogl-<versi jogl>
LD_LIBARY_PATH=/usr/local/pgsql/lib:/usr/lib/jogl/jogl-1.1.1-linux-i586/lib
CLASSPATH=.:/usr/lib/jogl/jogl-1.1.1-linux-i586/lib/gluegen-rt.jar:/usr/lib/jogl/jogl-1.1.1-linux-i586/lib/jogl.jar
export LD_LIBRARY_PATH
export CLASSPATH
Jika LD_LIBARY_PATH dan CLASSPATH tinggal menambahkan dengan pemisah ':' seperti diatas.
Untuk mengedit nilai di .bashrc atau .bash_profile anda bisa menggunakan perintah vi .bash_profile
Untuk mencoba apakah bisa berfungsi konfigurasi yang telah anda lakukan, berikut adalah contoh program yang saya ambil dari java.sun.com
//JOGLRotatingCube.java import net.java.games.jogl.GLCanvas; import net.java.games.jogl.GLCapabilities; import net.java.games.jogl.GLDrawableFactory; import net.java.games.jogl.Animator; import net.java.games.jogl.GL; import net.java.games.jogl.GLEventListener; import net.java.games.jogl.GLDrawable; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class JOGLRotatingCube { private static final int SIZE = 160; private static float angle = 0; JOGLRotatingCube() { GLCanvas canvas = getGLCanvas(); canvas.addGLEventListener(new RotatingCubeListener()); Animator anim = new Animator(canvas); addCanvasToFrame(canvas, anim); anim.start(); } private void addCanvasToFrame( GLCanvas canvas, final Animator anim) { Frame f = new Frame("JOGL Rotating Half - Cube"); f.setSize(600, 400); f.add(canvas); f.setVisible(true); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { anim.stop(); System.exit(0); } }); } private GLCanvas getGLCanvas() { GLCapabilities capabilities = new GLCapabilities(); return GLDrawableFactory.getFactory(). createGLCanvas(capabilities); } public static void main(String[] args) { new JOGLRotatingCube(); } private void drawCenteredCube(GL gl) { gl.glColor4f(1, 0, 0, 0); drawSquareFace(gl); gl.glColor4f(1, 1, 0, 0); gl.glRotatef(90, 1, 0, 0); drawSquareFace(gl); gl.glColor4f(0, 0, 1, 0); gl.glRotatef(90, 0, 1, 0); drawSquareFace(gl); gl.glColor3f(0.0f, 0.0f, 0.0f); } private void drawSquareFace(GL gl) { gl.glBegin(GL.GL_QUADS); gl.glTexCoord2f(0, 0); gl.glVertex3f(-SIZE / 2, -SIZE / 2, SIZE / 2); gl.glTexCoord2f(0, 1); gl.glVertex3f(-SIZE / 2, SIZE / 2, SIZE / 2); gl.glTexCoord2f(1, 1); gl.glVertex3f(SIZE / 2, SIZE / 2, SIZE / 2); gl.glTexCoord2f(1, 0); gl.glVertex3f(SIZE / 2, -SIZE / 2, SIZE / 2); gl.glEnd(); } class RotatingCubeListener implements GLEventListener { public void init(GLDrawable drawable) { GL gl = drawable.getGL(); gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); //erasing color gl.glColor3f(0.0f, 0.0f, 0.0f); // drawing color } public void display(GLDrawable drawable) { GL gl = drawable.getGL(); gl.glClear(GL.GL_COLOR_BUFFER_BIT); angle++; gl.glMatrixMode(GL.GL_MODELVIEW); gl.glLoadIdentity(); gl.glRotatef(-80, 1, 1, 0); gl.glRotatef(angle /16, 1, -1, 1); drawCenteredCube(gl); } public void reshape(GLDrawable drawable, int x, int y, int width, int height) { GL gl = drawable.getGL(); gl.glViewport(0, 0, width, height); gl.glMatrixMode(GL.GL_PROJECTION); gl.glLoadIdentity(); gl.glOrtho(-width, width, -height, height, -SIZE, SIZE); } public void displayChanged(GLDrawable drawable, boolean modeChanged, boolean deviceChanged) { } } }Kompile dan jalankan
JOGLRotatingCube
, maka jika berhasil anda akan melihat kubus yang berotasi seperti gambar berikut.Nah, sekian dulu semoga bermanfaat.
Tidak ada komentar:
Posting Komentar