Sabtu, 01 Oktober 2011

KOMGRAF PART II : openGL

Pada pertemuan kedua mata kuliah komputer grafik membahas mengenai aplikasi openGL. pertama-tama saya akan menjelaskan apa itu openGL, openGL adalah suatu graphic library yang sebagian bersifat open source, dipakai pada banyak platform (windows, linux) dan dapat digunakan pada berbagai jenis compiler seperti C++ atau Delphi. OpenGL bukanlah bahasa pemrograman tetapi merupakan suatu Application Programming Interface (API). API adalah adalah sekumpulan perintah, fungsi, dan protokol yang dapat digunakan oleh programmer saat membangun perangkat lunak untuk sistem operasi tertentu. Dalam API itu terdapat fungsi-fungsi/perintah-perintah untuk menggantikan bahasa yang digunakan dalam system calls dengan bahasa yang lebih terstruktur dan mudah dimengerti oleh programmer. Fungsi yang dibuat dengan menggunakan API tersebut kemudian akan memanggil system calls sesuai dengan sistem operasinya. 
Sintaks perintah OpenGL mengikuti aturan penulisan dari library dimana fungsi tersebut berasal, format penulisan fungsi OpenGL adalah :
<awalan library><perintah><optional jumlah argumen><optional tipe argumen>

Semua perintah OpenGL menggunakan awalan gl diikuti dengan huruf kapital pada setiap kata membentuk nama perintah (sebagai contoh glClearColor). Untuk mendefinisikan konstanta diawali dengan GL_, dengan menggunakan huruf kapital dan garis bawah untuk memisahkan kata (seperti GL_POLY_STIPPLE). Terkadang beberapa huruf dan angka ditambahkan pada akhir perintah (seperti 3f pada glVertex3f). Dalam hal ini angka 3 menunjukkan berapa banyak argumen yang harus ada pada perintah tersebut dan akhiran huruf f menunjukkan jenis datanya yaitu floating.
 Sebagai contoh pada dua perintah berikut ini :

glVertex3i(1,0,-2);
glVertex3f(1.0, 0.0, -2.0);
adalah sama yaitu meletakkan titik di layar pada koordinat x = 1, y = 0 dan z = -2, perbedaannya yaitu pada perintah pertama menspesifikasikan titik dengan tipe data integer 32-bit, sedangkan yang kedua dengan tipe data single precision floating point.
Beberapa perintah OpenGL menambahkan perintah huruf akhir v yang menunjukkan bahwa perintah tersebut menggunakan pointer ke array/vektor. Di bawah ini contoh perbedaannya.
float color_array[]={1.0,0.0,0.0}
glColor3f (1.0,0.0,0.0);
glColor3fv(color_array);

beberapa library yang telah ditulis untuk menyediakan fungsi-fungsi tambahan pada OpenGL adalah :
1. OpenGL Utility Library (GLU) yang didalamnya terdapat sejumlah rutin yang menggunakan level bawah dari perintah OpenGL. Rutin-rutin ini mempunyai awalan glu. Library ini digunakan sebagai bagian dari implementasi OpenGL.
2. OpenGL Extension untuk X-Windows yang menyediakan fungsi untuk menciptakan OpenGL context dan mengasosiasikannya dengan mesin yang menggunakan X-Windows. Rutin-rutin ini mempunyai awalan glx.
3. Auxiliary atau aux library terdapat pada library glaux.lib dan file header glaux.h. Perintah yang akan digunakan selalu menggunakan awalan aux
4. OpenGL Utility Toolkit (GLUT) adalah toolkit untuk sistem windows yang ditulis oleh Mark Kilgard untuk menyembunyikan perintah API sistem windows yang kompleks.

Perintah
Arti
Keterangan
glVertex2i(x,y);
Lokasi titik berada (x,y)
Tipe argumennya adalah integer dan 2D (x,y)
glVertex2f(x,y);
Lokasi titik berada (x,y)
Tipe argumennya adalah float dan 2D (x,y)
glVertex3i(x,y,z);
Lokasi titik berada (x,y,z)
Tipe argumennya adalah integer dan 3D (x,y,z)
glVertex3f(x,y,z);
Lokasi titik berada (x,y,z)
Tipe argumennya adalah float dan 3D (x,y,z)
glClearColour(R,G,B,);
Warna latar belakang
Empat komponen warna RGBA
glColor3f(R,G,B)
Warna latar muka
Tiga komponen warna (RGB)
glColor4f(R,G,B,)
Warna latar muka
Empat komponen warna (RGBA)
glBegin(GL_POINTS);
Titik
Objek primitif
glBegin(GL_LINES);
Garis
Objek primitif
glBegin(GL_LINE_STRIP);
Poligaris
Objek primitif
glBegin(GL_LINE_LOOP);
Poligaris tertutup
Objek primitif
glBegin(GL_TRIANGLES);
Segitiga
Objek primitif
glBegin(GL_TRIANGLE_STRIP);
Segitiga
Objek primitif
glBegin(GL_TRIANGLE_FAN);
Segitiga
Objek primitif
glBegin(GL_QUADS);
Segiempat
Objek primitif
glBegin(GL_QUADS_STRIP);
Segiempat
Objek primitif
glBegin(GL_LINE_STIPPLE);
Garis putus-putus
Objek primitif
glBegin(GL_POLY_STIPPLE);
Poligon dengan pola tertentu
Objek primitif

Saya mencoba program simpel pada visual studio c++ menggunakan sintaks yang mudah, dan inilah hasilnya

openGL pertamaku
  
Sekian bahasan mengenai openGL, nantikan bahasan selanjutnya y...

Tidak ada komentar:

Posting Komentar