
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