1.Grafika Komputer
Cara
Mudah Membuat Segitiga, Kotak, dan Garis pada OpenGL C++
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).
Sintax
Perintah OpenGL
Sintaks perintah OpenGL mengikuti
aturan penulisan dari library dimana fungsi tersebut berasal, format penulisan
fungsi OpenGL :
o Semua
perintah OpenGL menggunakan awalan gl diikuti dengan huruf kapital pada setiap
kata membentuk nama perintah (sebagai contoh glClearColor).
o Untuk
mendefinisikan konstanta diawali dengan GL_, dengan menggunakan huruf kapital
dan garis bawah untuk memisahkan kata (seperti GL_POLY_STIPPLE).
o 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 :
o Fungsi
asli dari OpenGL sendiri selalu diawali dengan gl yang terdapat pada library
opengl32.dll dan file header gl.h. Sedangkan beberapa library yang telah
ditulis untuk menyediakan fungsi-fungsi tambahan pada OpenGL adalah :
o 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.
/* OpenGL Segitiga */
glClearColor (0.0f, 0.0f, 0.0f,
0.0f);
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix ();
glBegin (GL_TRIANGLES);
glColor3f (1.0f, 0.0f, 0.0f);
glVertex2f (0.0f, 1.0f);
glColor3f (0.0f, 1.0f, 0.0f);
glVertex2f (0.87f, -0.5f);
glColor3f (0.0f, 0.0f, 1.0f);
glVertex2f (-0.87f, -0.5f);
glEnd ();
glPopMatrix ();
SwapBuffers (hDC);
theta += 1.0f;
Sleep (1);
/* OpenGL Kotak */
glClearColor (0.0f, 0.0f, 0.0f,
0.0f);
glClear (GL_COLOR_BUFFER_BIT);
glBegin (GL_POLYGON);
glColor3f (1.0f, 0.0f, 0.0f);
glVertex2f (-0.5f, -0.5f);
glColor3f (0.0f, 1.0f, 0.0f);
glVertex2f (-0.5f, 0.5f);
glColor3f (0.0f, 2.0f, 0.0f);
glVertex2f (0.5f, 0.5f);
glColor3f (0.0f, 0.0f, 3.0f);
glVertex2f (0.5f, -0.5f);
glEnd ();
SwapBuffers (hDC);
Sleep (1);
/* OpenGL Garis*/
glClearColor (0.0f, 0.0f, 0.0f,
0.0f);
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix ();
glClearColor(1,1,1,0);
glColor3f(1,1,1);
glBegin(GL_LINES);
glVertex3f(0,0,-0.8);
glVertex3f(9.9,8.9,0.1);
glVertex3f(0,0,-0.8);
glVertex3f(9.9,8.9,0.1);
glEnd ();
glPopMatrix ();
SwapBuffers (hDC);
Sleep (1);
·
Penjelasan
Program:
Ketiga koding diatas (segitiga, kotak, dan garis) merupakan
bagian dari program utama untuk membuat tampilan output sesuai dengan namanya.
jika menginginkan output segitiga, maka kita menggunakan koding yang segitiga
sesuai yang ditulis diatas.
Pada program keseluruhan kita menggunakan library dari open
gl, tujuannya sudah tentu untuk memanggil fungsi-fungsi grafis yang kita
butuhkan nantinya. Ada dua file header yang kita gunakan dalam menerapkan
ketiga program diatas, yaitu:
#include
#include
Kalo mau dijabarkan lebih detil nya, dibawah ini merupakan
struktur utama dari open gl yang dimaksud.
·
Strukturnya
terdiri atas:
Includes
Function Declarations
WinMain
OpenGL animation code
shutdown OpenGL
Destroy the window explicitly
Window Procedure
Enable OpenGL
Disable OpenGL
Bisa kita lihat ternyata program terdiri atas 9 bagian
dengan masing-masing bagian berisi perintah dan fungsi-fungsi tertentu. Untuk
menampilkan output yang kita mau, kita hanya perlu merubah isi dari komponen
OpenGL animation code.
Delapan komponen yang lainnya tidak usah kita rubah, karena
OpenGL animation code diibaratkan papan tulis yang akan kita gambar segitiga,
kotak, ataupun garis nantinya. Menggambarnya tentu saja dengan penulisan koding
dengan masing-masing kordinat vector yang memungkinkan untuk membentuk output
gambar yang dikehendaki.
·
Baik,
sekarang kita masuk ke penjelasan masing-masing syntax dari program ini:
Pada OpenGL mendeskripsikan objek dengan warna objek adalah
proses yang berjalan sendiri-sendiri. Karena pada umumnya seorang programmer
akan mengatur warna terlebih dahulu lalu menggambar objek. Sebelum warna diubah
maka semua objek yang digambar sesudah perintah tersebut akan menggunakan warna
terakhir yang terdapat pada coloring scheme.
Untuk warna digunakan perintah glColor3f(), jika lebih dari
tiga maka argumen keempat adalah alpha yang akan dijelaskan pada bagian
blending sebagai salah satu efek yang dipunyai OpenGL. Contoh berikut
menunjukkan urutan langkah dalam proses spesifikasi warna sebelum objek
digambar.
Contoh:
Bentuk umum:
glColor3f(R,G,B)
Warna latar muka dengan tiga komponen warna (RGB)
glColor4f(R,G,B,) Warna latar muka dengan empat komponen warna (RGB, alpha)
R = red, G= green, B= blue
glColor3f(0.0,1.0,0.0);
//setting warna
glColor3f(1,0,0);
// ini setting warna merah/Red program garis (coba lihat kembali program
diatas)
glColor3f
(1.0f, 0.0f, 0.0f);
glColor3f
(0.0f, 1.0f, 0.0f); // Kombinasi warna pada segitiga & kotak seperti
diatas
glColor3f
(0.0f, 2.0f, 0.0f);
glColor3f
(0.0f, 0.0f, 3.0f);
Berikutnya
penjelasan mengenai :
glClearColor
(0.0f, 0.0f, 0.0f, 0.0f);
glClear
(GL_COLOR_BUFFER_BIT); Lihat lagi,
program segitiga, garis, kotak diatas
Bentuk Umum:
glClearColour(R,G,B,);
Warna latar belakang dengan Empat komponen warna RGBAlpha
Kalo
seperti ini berarti warna apa, ayo coba tebak..? glColor3f(0.0,0.0,1.0); warna
biru/Blue ingat*RGB masing-masing merupakan float point
karena: Red= 0.0 Green=0.0 Blue= 1.0
Berikutnya:
glClear(GL_COLOR_BUFFER_BIT);
è Fungsi ini akan menghapus window
dan memberi warna yang telah kita definisikan sebelumnya dengan menggunakan
glClearColor.
glBegin(GL_LINES);
è Membuat Garis dan merupakan Objek primitive
glBegin(GL_TRIANGLES);
è Membuat Segitiga dan merupakan Objek primitive, setiap 3
glVertex membentuk segitiga, dan tiap segitiga saling lepas
glBegin(GL_QUADS);
è Segiempat dan merupakan objek primitive, tiap 4 glVertex
membentuk segi empat
0 komentar: