Fungsi Primitif OpenGL

Sebuah fungsi primitif adalah interpretasi dari beberapa verteks atau titik menjadi bentuk tertentu. Pada OpenGL, kita menentukan beberapa verteks untuk fungsi primitif tertentu dengan menempatkan mereka dalam glBegin () \ glEnd () blok sebagai berikut:

glBegin (mode);

glVertex* (…);

…..

glVertex* (…);

glEnd ();

dimana modus tersebut adalah konstanta simbolik mewakili fungsi primitif yang diinginkan. Modus ini dapat menjadi salah satu dari sepuluh konstanta simbolik: GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, dan GL_POLYGON.

A.      GL_POINT

Memperlakukan setiap verteks sebagai titik tunggal. Sejumlah verteks n mendefinisikan n titik yang akan digambar.

Baris kode :

glBegin(GL_POINTS);

glVertex2f(x1, y1);

glEnd();

Perhatikan bahwa dalam semua sampel untuk fungsi primitif, jumlah minimum verteks yang digunakan menunjukkan penggunaan fungsi primitif. Sebagai contoh, kita menentukan titik tunggal untuk POINT, dua verteks untuk segmen LINE, 3 verteks untuk LINE_STRIP, 6 verteks untuk strip QUAD, dan seterusnya.

Preview :

 

B.      GL_LINES

Memperlakukan setiap pasangan verteks sebagai segmen garis independen. Setiap dua verteks akan digambar sebuah garis.

Baris kode :

glBegin(GL_LINES);

glVertex2f(x1, y1);

glVertex2f(x2, y2);

glEnd();

Preview :

 

C.      GL_LINE_STRIP

Menggambar sekelompok verteks yang terhubung menjadi segmen garis dari titik pertama sampai terakhir.

Baris kode :

glBegin(GL_LINE_STRIP);

glVertex2f(x1, y1);

glVertex2f(x2, y2);

glVertex2f(x3, y3);

glEnd();

Preview :

 

D.      GL_LINE_LOOP

Menarik sekelompok verteks yang terhubung menjadi segmen garis dari titik pertama sampai terakhir, kemudian kembali ke verteks yang pertama.

Baris kode :

glBegin(GL_LINE_LOOP);

glVertex2f(x1, y1);

glVertex2f(x2, y2);

glVertex2f(x3, y3);

glEnd();

Preview :

 

E.       GL_TRIANGLES

Memperlakukan setiap tiga verteks sebagai segitiga independen. Segitiga merupakan sebuah poligon sederhana dengan tiga sisi. Jika verteks yang didefinisikan kurang dari tiga maka tidak akan terbentuk segitiga.

Baris kode :

glBegin(GL_TRIANGLES);

glVertex2f(x1, y1);

glVertex2f(x2, y2);

glVertex2f(x3, y3);

glEnd();

Preview :

 

F.       GL_TRIANGLE_STRIP

Menggambar sekelompok verteks yang terhubung menjadi segitiga. Sebuah segitiga baru didefinisikan untuk setiap titik yang diberikan setelah dua verteks pertama dan seterusnya. Keuntungan di balik menggunakan strip segitiga adalah bahwa setelah menetapkan tiga verteks pertama untuk segitiga awal, kita hanya perlu menentukan satu titik untuk setiap segitiga tambahan. Ini akan menghemat banyak data dan waktu menggambar segitiga yang saling berhubungan terlalu banyak untuk mewakili struktur yang lebih kompleks.

Baris kode :

glBegin(GL_TRIANGLE_STRIP);

glVertex2f(x1, y1);

glVertex2f(x2, y2);

glVertex2f(x3, y3);

glVertex2f(x4, y4);

glEnd();

Preview :

 

G.     GL_TRIANGLE_FAN

Menggambar sekelompok verteks yang terhubung menjadi segitiga dengan menarik garis tambahan dari verteks yang pertama.

Baris kode :

glBegin(GL_TRIANGLE_FAN);

glVertex2f(x1, y1);

glVertex2f(x2, y2);

glVertex2f(x3, y3);

glVertex2f(x4, y4);

glEnd();

Preview :


H.     GL_QUADS

Memperlakukan masing-masing kelompok dari empat verteks sebagai segiempat independen.

Baris kode :

glBegin(GL_TRIANGLES);

glVertex2f(x1, y1);

glVertex2f(x2, y2);

glVertex2f(x3, y3);

glEnd();

Preview :

 

I.        GL_QUAD_STRIP

Menggambar sekelompok verteks terhubung quadrilaterals. Satu segiempat didefinisikan untuk setiap empat pasang verteks yang diberikan setelah pasangan pertama.

Baris kode :

glBegin(GL_QUAD_STRIP);

glVertex2f(x1, y1);

glVertex2f(x2, y2);

glVertex2f(x3, y3);

glVertex2f(x4, y4);

glVertex2f(x5, y5);

glVertex2f(x6, y6);

glEnd();

Preview :

 

J.        GL_POLYGON

Menggambar poligon tunggal. Verteks 1 sampai n mendefinisikan poligon ini. Poligon cembung adalah jika semua titik pada segmen garis di antara dua titik dalam poligon.

Baris kode :

glBegin(GL_POLYGON);

glVertex2f(x1, y1);

glVertex2f(x2, y2);

glVertex2f(x3, y3);

glVertex2f(x4, y4);

glVertex2f(x5, y5);

glEnd();

Preview :

Daftar Pustaka

BadderEddin, Ali. OpenGL Geometric Primitives. http://www.codeproject.com/KB/openGL/OpenGL_Geometric.aspx# (diakses tanggal 21 Agustus 2011)

Posted on August 21, 2011, in Komputer Grafik and tagged , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: