Sekilas tentang OpenGL. OpenGL merupakan
singkatan dari Open Graphics Library. OpenGL itu sendiri merupakan spesifikasi
standar yang mendefinisikan suatu lintas bahasa untuk mengembangkan suatu
aplikasi yang menghasilkan suatu grafis komputer dalam bentuk 2D ataupun 3D.
OpenGL adalah suatu perangkat pembuat grafis
standard yang digunakan untuk keperluan-keperluan pemrograman grafis. OpenGL
bersifat opensource, multi-platform dan multi language. Saat ini semua bahasa
pemrograman mendukung OpenGL. Dan OpenGL bisa bekerja dalam lingkungan Windows,
Unix, SGI, Linux, freeBSD . Library dasar dari OpenGL adalah GLUT, dengan
fasilitas yang bisa dikembangkan. Untuk OS Windows,library ini terdiri dari 3
files yaitu:
·
Glut.h
·
Glut32.lib
·
Glut32.dll
Untuk membuat aplikasi menggunakan OpenGL,
terlebih dahulu kita membutuhkan suatu konsepsi interfacing dalam
implementasinya. Salah satu cara yang sudah umum digunakan adalah dengan
membuat window-based OpenGL. Untuk dapat membuat konsep windowing pada OpenGL,
kita memerlukan tool tertentu. Kali ini saya akan menjelaskan pembuatan gambar
sederhana yaitu gambar garis vertikal, horizontal, dan diagonal dengan Java sebagai IDE-nya.
Dalam membuat Garis Vertikal, Horizontal, Dan
Diagonal Dengan OpenGL Pada Java. Pertama yang harus yang kita lakukan
adalah mempunyai perlengkapan yang digunakan :
1. Netbeans Java (Pastikan
PC atau laptop Anda sudah terinstall aplikasi ini).
2. Header
Glut (Header yang akan digunakan untuk OpenGL).
Cara menginstall (Java dan OpenGL)
Untuk menjalankan atau membuat file OpenGL
anda harus memiliki Headernya dan untuk menginstal header OpenGL berikut adalah
langkahnya :
1. Masuk kedalam IDE
neatbeans .
2. Klik menu tools
> Pilih Package manager
3. Klik Install, ganti
Files of Type menjadi (generic packages) ada file berekstensi (.rar atau .zip )
terbaca.
4. Klik open,lalu
ikuti langkah-langkahnya sampai selesai terinstal.
Setelah selesai menginstall IDE neatbeans dan
header OpenGL, selanjutnya mencoba untuk langsung Membuat Garis Vertikal,
Horizontal, Dan Diagonal Dengan OpenGL Pada Neatbeans, cara membuat file baru
adalah :
1. Klik menu File
> Pilih New > Project .
2. Pada bagian ini pilih tag Multimedia > lalu
klik OpenGL dan beri nama Project.
Setelah membuat project, lanjut
untuk Membuat Garis Vertikal, Horizontal, Dan Diagonal Dengan OpenGL Pada
Neabeans.
1. Langkah pertama yaitu membuat koding terlebih
dahulu seperti dibawah ini :
import java.util.*; /*memanggil library untuk fungsi
scanner yang berguna untuk inputan*/
import org.lwjgl.LWJGLException; /*memanggil library untuk menjalankan fungsi pengecualian pada 'lwjgl'*/
public class LineMaker {
public static void
main(String[] args) throws LWJGLException{
int pil; /*mendefinisikan variabel pil
untuk menerima inputan pilihan user nantinya*/
Scanner input = new
Scanner(System.in); /*membuat
fungsi inputan menggunakan fungsi scanner*/
System.out.println("========Aplikasi Pembuat Garis========"); /*<----|*/
System.out.println("1. Membuat Garis Vertical"); /*<-----------------|*/
System.out.println("2. Membuat Garis Horizontal"); /*<--membuat teks untuk menu
pilihan*/
System.out.println("3. Membuat Garis Diagonal"); /*<-----------------|*/
System.out.print("Silahkan
Masukan Pilihan yang diinginkan : ");/*<--|*/
pil = input.nextInt();
/*Menerima inputan user dan
memasukannya kedalam variabel 'pil'*/
switch(pil){ /*memilih kondisi pada 'case' berdasarkan
inputan user (misal : 1 untuk case 1)*/
case 1:
Vertikal vet =
new Vertikal(); /*memanggil
class 'Vertikal'*/
vet.layar(); /*menjalankan fungsi 'layar' pada
class 'Vertikal'*/
break; /*memberhentikan kondisi*/
case 2:
Horizontal hoz
= new Horizontal(); /*memanggil
class 'Horizontal'*/
hoz.layar(); /*menjalankan fungsi 'layar' pada
class 'Horizontal'*/
break;
case 3:
Diagonal dig =
new Diagonal(); /*memanggil
class 'Diagonal*/
dig.layar(); /*menjalankan fungsi 'layar' pada class 'Diagonal*/
break;
default:
System.out.println("Pilihan yang anda pilih salah!!"); /*memunculkan pesan apabila input
pada pil tidak sesuai dengan case yang ada*/
}
}
}
2. Garis vertical
import org.lwjgl.LWJGLException; /*memanggil library untuk
menjalankan fungsi pengecualian pada lwjgl*/
import org.lwjgl.opengl.*; /*memanggil library 'lwjgl' untuk
menjalankan renderer opengl*/
import java.util.*; /*memanggil library untuk fungsi scanner yang berguna
untuk inputan*/
public class Vertikal {
public void layar() throws LWJGLException {
int a,kordin1,kordin2; /*mendefinisikan
variabel 'a,kordin1,dan kordin2'*/
Scanner putin = new Scanner(System.in); /*mendefinisikan fungsi Scanner pada 'putin' untuk
menerima input user*/
System.out.print("Masukan titik awal (x) : ");
kordin1 = putin.nextInt(); /*input koordinat x*/
System.out.print("Masukan titik awal (y) : ");
kordin2 = putin.nextInt(); /*input koordinat y*/
System.out.print("Masukan Panjang garis yang diinginkan (dalam
Pixel) : ");
a = putin.nextInt(); /*menerima
input user dan memasukannya kedalam variabel 'a' yang akan digunakan sebagai
panjang dari garis yang akan dibuat*/
try {
Display.setDisplayMode(new
DisplayMode(300,300)); /*membuat
sebuah jendela rendering dengan setting luas layar = 300x300*/
Display.setTitle("Garis Vertikal"); /*mengubah nama jendela rendering menjadi
"Garis Vertikal"*/
Display.create(); /*membuat jendela rendering*/
}
catch (LWJGLException e) {
System.exit(0); /*mencegah jendela rendering tertutup apabila tidak ada
aktivitas pada library LWJGL*/
}
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity(); /*memanggil opengl sebagai renderer (bagian ini gak
yakin sih -_-)*/
GL11.glOrtho(0,
800, 0, 600, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
while (!Display.isCloseRequested()) { /*mencegah jendela renderer tertutup kecuali ditutup
sendiri oleh user*/
GL11.glBegin(GL11.GL_QUADS); /*memanggil fungsi 'GL_QUADS untuk merender berdasarkan 4 titik yang
ditentukan*/
GL11.glVertex2f(kordin1,kordin2); /*titik awal*/
GL11.glVertex2f(kordin1+5,kordin2);
/*titik awal, pada sumbu x
sengaja diberi jeda agar mempertebal garis yang akan dibentuk*/
GL11.glVertex2f(kordin1+5,kordin2+a);
/*titik akhir, pada sumbu x
sengaja diberi jeda agar mempertebal garis yang akan dibentuk*/
GL11.glVertex2f(kordin1,kordin2+a);
/*titik akhir, pada sumbu y
variabel akan ditambahkan 'a' yang sesuai dengan inputan user*/
GL11.glEnd(); /*mengakhiri proses render*/
Display.update();
}
}
}
import org.lwjgl.LWJGLException; /*memanggil library untuk
menjalankan fungsi pengecualian pada lwjgl*/
import org.lwjgl.opengl.*; /*memanggil library 'lwjgl' untuk
menjalankan renderer opengl*/
import java.util.*; /*memanggil library untuk fungsi scanner yang berguna
untuk inputan*/
public class Vertikal {
public void layar() throws LWJGLException {
int a,kordin1,kordin2; /*mendefinisikan
variabel 'a,kordin1,dan kordin2'*/
Scanner putin = new Scanner(System.in); /*mendefinisikan fungsi Scanner pada 'putin' untuk
menerima input user*/
System.out.print("Masukan titik awal (x) : ");
kordin1 = putin.nextInt(); /*input koordinat x*/
System.out.print("Masukan titik awal (y) : ");
kordin2 = putin.nextInt(); /*input koordinat y*/
System.out.print("Masukan Panjang garis yang diinginkan (dalam
Pixel) : ");
a = putin.nextInt(); /*menerima
input user dan memasukannya kedalam variabel 'a' yang akan digunakan sebagai
panjang dari garis yang akan dibuat*/
try {
Display.setDisplayMode(new
DisplayMode(300,300)); /*membuat
sebuah jendela rendering dengan setting luas layar = 300x300*/
Display.setTitle("Garis Vertikal"); /*mengubah nama jendela rendering menjadi
"Garis Vertikal"*/
Display.create(); /*membuat jendela rendering*/
}
catch (LWJGLException e) {
System.exit(0); /*mencegah jendela rendering tertutup apabila tidak ada
aktivitas pada library LWJGL*/
}
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
/*memanggil opengl sebagai
renderer */
GL11.glOrtho(0,
800, 0, 600, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
while (!Display.isCloseRequested()) { /*mencegah jendela renderer tertutup kecuali ditutup
sendiri oleh user*/
GL11.glVertex2f(kordin1,kordin2); /*titik awal*/
GL11.glVertex2f(kordin1+5,kordin2);
/*titik awal, pada sumbu x sengaja diberi jeda agar
mempertebal garis yang akan dibentuk*/
GL11.glVertex2f(kordin1+5,kordin2+a);
/*titik akhir, pada sumbu x sengaja diberi jeda
agar mempertebal garis yang akan dibentuk*/
GL11.glVertex2f(kordin1,kordin2+a);
/*titik akhir, pada sumbu y variabel akan
ditambahkan 'a' yang sesuai dengan inputan user*/
GL11.glEnd(); /*mengakhiri
proses render*/
Display.update();
}
}
)
4. Garis Diagonal
import org.lwjgl.LWJGLException; /*memanggil library untuk menjalankan
fungsi pengecualian pada lwjgl*/
import org.lwjgl.opengl.*; /*memanggil library 'lwjgl' untuk
menjalankan renderer opengl*/
import java.util.*; /*memanggil library untuk fungsi scanner yang berguna
untuk inputan*/
public class Vertikal {
public void layar() throws LWJGLException {
int a,kordin1,kordin2; /*mendefinisikan
variabel 'a,kordin1,dan kordin2'*/
Scanner putin = new Scanner(System.in); /*mendefinisikan fungsi Scanner pada 'putin' untuk
menerima input user*/
System.out.print("Masukan titik awal (x) : ");
kordin1 = putin.nextInt(); /*input koordinat x*/
System.out.print("Masukan titik awal (y) : ");
kordin2 = putin.nextInt(); /*input koordinat y*/
System.out.print("Masukan Panjang garis yang diinginkan (dalam
Pixel) : ");
a = putin.nextInt(); /*menerima
input user dan memasukannya kedalam variabel 'a' yang akan digunakan sebagai
panjang dari garis yang akan dibuat*/
try {
Display.setDisplayMode(new
DisplayMode(300,300)); /*membuat
sebuah jendela rendering dengan setting luas layar = 300x300*/
Display.setTitle("Garis Vertikal"); /*mengubah nama jendela rendering menjadi
"Garis Vertikal"*/
Display.create(); /*membuat jendela rendering*/
}
catch (LWJGLException e) {
System.exit(0); /*mencegah jendela rendering tertutup apabila tidak ada
aktivitas pada library LWJGL*/
}
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();/*memanggil opengl sebagai
renderer */
GL11.glOrtho(0,
800, 0, 600, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
while (!Display.isCloseRequested()) { /*mencegah jendela renderer tertutup kecuali ditutup
sendiri oleh user*/
GL11.glVertex2f(kordin1,kordin2); /*titik
awal*/
GL11.glVertex2f(kordin1-5,kordin2); /*titik awal, pada sumbu x sengaja diberi jeda untuk
mempertebal garis*/
GL11.glVertex2f(kordin1+a-5,kordin2+a);
/*titik akhir, pada sumbu x dan y variabel akan
ditambahkan 'a' yang sesuai dengan inputan user dan pada sumbu x sengaja diberi
jeda untuk mempertebal garis*/
GL11.glVertex2f(kordin1+a,kordin2+a);
/*titik akhir, pada sumbu x dan y variabel akan
ditambahkan 'a' yang sesuai dengan inputan user*/
GL11.glEnd();
/*mengakhiri proses render*/
Display.update();
}
}
}
5. Output Eror
Tidak ada komentar:
Posting Komentar