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
5 komentar:
kk dulu sekolah dimana...
aku ga nyampe taham programmer...
and taahap pemula aja belum...heheh
based on the OpenGL article, the research could be a reference link below
http://repository.gunadarma.ac.id/bitstream/123456789/2325/1/Texture%20Mapping%20for%20Solar%20System%20Simulation(OpenGL%20Implementation).pdf
thank you
saya mahasiswa Universitas Gunadarma
kk bgm cr.y kt bsa memahami bhwa program ini jln.y sprti in dll.....
tlng brkan sy penjelasan tentang program,,,,,,
Kita juga mempunyai jurnal mengenai OpenGL, silahkan dihubungi dan dibaca. Berikut linknya:
http://repository.gunadarma.ac.id/bitstream/123456789/3308/1/Teknik%20Cube%20Mapping%20.pdf
Semoga bermanfaat!
Posting Komentar