Pasti sudah pernah dengar kan? apa itu openGL. OpenGL merupakan library yang digunakan untuk melakukan operasi grafis pada komputer, seperti game, menampilkan GUI, dll. Kali ini saya akan membahas cara instalasi tools yang diperlukan untuk membuat program openGL sederhana, tahap kompilasi sampai running, dan penjelasan singkat source code.
TAHAP PERSIAPAN
paket-paket bawaan atau yang telah terpasang pada distro ubuntu saat pertama kali install, belum menyediakan tools development openGL. Untuk menginstallnya ketikkan :
setelah instalasi berhasil, langkah selanjutnya adalah menulis program. Sebagai tutorial saya akan menyajikan program sederhana buatan saya. Program ini akan menampilkan animasi 6 kubus warna-warni yang bergerak bolak-balik. Source code nya dapat dilihat dibawah :
lansung copas saja kode diatas lalu di save dengan nama animate.c
TAHAP KOMPILASI
setelah file nya di save, ketik perintah dibawah ini lewat terminal :
RUN THE PROGRAM
jika saat kompilasi tidak ada error, jalankan progrram dengan mengetikkan perintah di bawah via terminal :
PENJELASAN SOURCE CODE
Cukup panjang ya.. kode programnya? Tenang saya akan menjelaskan secara singkat kode programnya, ehemmm...
baris include diatas berfungsi untuk menyertakan semua header library openGL dan standart library C. Header "X11" berguna untuk membuat frame/window pada display, tempat dimana objek akan digambar oleh program. Header "GL/gl*" terdapat fungsi untuk menggambar garis, vertex, bentuk-bentuk primitif geometris, pewarnaan, dan operasi-operasi lainnya yang dapat dilakukan pada display.
fungsi ini akan menghasilkan bilangan pecahan random yang digunakan oleh fungsi main() untuk menhasilkan animasi. Fungsi ini membutuhkan dua buah argumen untuk menentukan batas bawah (a) dan batas atas (b) bilangan pecahan.
Kubus digambar oleh fungsi ini dimana letak nya diatur oleh xpos, ypos, dan zpos. Sedangkan untuk warna dari kubus diatur oleh r, g, b. Kubus memiliki enam sisi, untuk menghasilkan salah satu sisi dalam openGL dapat dilihat pada kode program di bawah :
glBegin(GL_QUADS); menyatakan openGL akan membuat persegi yang selanjutnya pewarnaan dilakukan oleh fungsi glColor3f() dan posisi sudut ditentukan oleh keempat fungsi glVertex3f().
kode diatas akan menggambar keenam kubus dan memberi animasi pada setiap kubus.
oleh : Alvin
READ MORE - Pemrograman OpenGL sederhana pada Linux
requirement : distro ubuntu, text editor(gedit), mengerti dasar-dasar linux(linux basic)
TAHAP PERSIAPAN
paket-paket bawaan atau yang telah terpasang pada distro ubuntu saat pertama kali install, belum menyediakan tools development openGL. Untuk menginstallnya ketikkan :
sudo apt-get install mesa-common-dev freeglut3-dev build-essential
setelah instalasi berhasil, langkah selanjutnya adalah menulis program. Sebagai tutorial saya akan menyajikan program sederhana buatan saya. Program ini akan menampilkan animasi 6 kubus warna-warni yang bergerak bolak-balik. Source code nya dapat dilihat dibawah :
lansung copas saja kode diatas lalu di save dengan nama animate.c
TAHAP KOMPILASI
setelah file nya di save, ketik perintah dibawah ini lewat terminal :
gcc -o animate animate.c -lX11 -lGL -lGLU
RUN THE PROGRAM
jika saat kompilasi tidak ada error, jalankan progrram dengan mengetikkan perintah di bawah via terminal :
./animate
Animasi OpenGL |
PENJELASAN SOURCE CODE
Cukup panjang ya.. kode programnya? Tenang saya akan menjelaskan secara singkat kode programnya, ehemmm...
#include<stdio.h>
#include<stdlib.h>
#include<X11/X.h>
#include<X11/Xlib.h>
#include<GL/gl.h>
#include<GL/glx.h>
#include<GL/glu.h>
#include<GL/glut.h>
baris include diatas berfungsi untuk menyertakan semua header library openGL dan standart library C. Header "X11" berguna untuk membuat frame/window pada display, tempat dimana objek akan digambar oleh program. Header "GL/gl*" terdapat fungsi untuk menggambar garis, vertex, bentuk-bentuk primitif geometris, pewarnaan, dan operasi-operasi lainnya yang dapat dilakukan pada display.
float randFloat(float a, float b)
fungsi ini akan menghasilkan bilangan pecahan random yang digunakan oleh fungsi main() untuk menhasilkan animasi. Fungsi ini membutuhkan dua buah argumen untuk menentukan batas bawah (a) dan batas atas (b) bilangan pecahan.
void DrawAQuad(float xpos, float ypos, float zpos,float r, float g, float b) {
Kubus digambar oleh fungsi ini dimana letak nya diatur oleh xpos, ypos, dan zpos. Sedangkan untuk warna dari kubus diatur oleh r, g, b. Kubus memiliki enam sisi, untuk menghasilkan salah satu sisi dalam openGL dapat dilihat pada kode program di bawah :
glBegin(GL_QUADS);// depan
glColor3f(r, g, 0.5);
glVertex3f(xpos + 0, ypos + 0, zpos + 0.);
glVertex3f(xpos + 0, ypos + (.05*scale), zpos + 0.);
glVertex3f( xpos + (.05*scale), ypos + (.05*scale), zpos + 0.);
glVertex3f(xpos + (.05*scale), ypos + 0, zpos + 0.);
glEnd();
glBegin(GL_QUADS); menyatakan openGL akan membuat persegi yang selanjutnya pewarnaan dilakukan oleh fungsi glColor3f() dan posisi sudut ditentukan oleh keempat fungsi glVertex3f().
DrawAQuad(.0 + tambah, .0, .0, 5, 0.2,0.098,0.2+tambah);
DrawAQuad(.0 - tambah, .0, .0, 5, 0.2,0.098+tambah,0.2);
DrawAQuad(.0, .0 +tambah, .0,5 , 0.2+tambah,0.098,0.2);
DrawAQuad(.0 , .0 - tambah, .0, 5, 0.2+tambah,0.098+tambah,0.2);
DrawAQuad(.0, .0, .0 + tambah, 5, 0.2,0.098+tambah,0.2+tambah);
DrawAQuad(.0, .0, .0 - tambah, 5, 0.2+tambah,0.098+tambah,0.2+tambah);
tambah += nilai;
hitung += nilai_int;
if(hitung == batas){
nilai_int = -(nilai_int);
nilai = -(nilai);
batas = -(batas);
}
kode diatas akan menggambar keenam kubus dan memberi animasi pada setiap kubus.
oleh : Alvin