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>
<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.
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.
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);
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.
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