Pages

Wednesday, May 1, 2013

Mengenal Primitive Object Grafika Komputer


OpengGL menyediakan banyak fungsi untuk objek primitif termasuk titik, garis dan lingkaran. Masing-masing perintah atau fungsi dalam OpenGL mempunyai format dan struktur yang sama. Ini memudahkan untuk mengetahui bagaimana jalannya fungsi, argumen yang dibutuhkan untuk melakukannya dan format tipe datanya.
 Primitif objek terdiri atas :
·         Titik Yaitu Vertex, dimana vertex merupakan acuan dasar
·         Garis Yaitu Line/Edge
·         Bangun 2D (Face)

1.        Fungsi Dasar Menggambar Titik
        Berikut adalah beberapa fungsi didalam menggambar suatu titik :
  •  glVertex2i(x,y), yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan berupa integer. Contoh glVertex2i(10,10);
  • glVertex2f(x,y), yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan berupa float. Contoh glVertex2f(10.0,10.0);
  • glVertex2d(x,y), yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan berupa double. Contoh glVertex2d(10.0,10.0);


2.      Primitif Objek
 Berikut adalah primitive objek yang akan dipergunakan didalam pembuatan suatu objek :
-        #define GL_POINTS
Primitif objek ini dipergunakan untuk menciptakan suatu titik.
Syntaks :
glBegin(GL_POINTS);
glVertex2(tipe_data)(koordinatX1, koordinatY1); ... glEnd
-        #define GL_LINES
Primitif objek ini adalah suatu primitive objek guna menciptakan suatu garis.
 Rumus : ∑vertex   = 2N
Syntaks :
glBegin(GL_LINES); glVertex2d(X0,Y0); glVertex2d(X1,Y1); ... glEnd();
-        #define GL_LINE_LOOP
Proses rendering vertexnya adalah berurutan dari vertex pertama hingga akhir, jadi vertex terakhir akan kembali atau terhubung ke vertex pertama.
-        #define GL_LINE_STRIP
Proses rendering vertexnya adalah berurutan dari vertex pertama hingga akhir. Namun berbeda dengan GL_LINE_LOOP, vertex terakhir tidak akan dirender atau tidak kembali ke vertex pertama.
Rumus pada line strip : ∑vertex   = N + 1
-        #define GL_TRIANGLES
Triangle atau segitiga adalah tiga buah titik yang terhubung menjadi suatu segitiga dengan blok di tengahnya. Pada penggunaan primitive objek ini kita harus menggunakan minimal 3 buah vertex guna membentuk suatu objek.
Rumus : ∑vertex   = 3N
   Keterangan :
N = Jumlah Segitiga
-        #define GL_TRIANGLES_STRIP. Pada triangles strip jumlah vertex yang dipergunakan adalah 4 buah vertex.
           Ilustrasi




     
-       

#define GL_TRIANGLE_FAN Triangles fan adalah pembuatan suatu objek dengan menggunakan segitiga dimana hanya menggunakan 1 titik pusat saja.
           Ilustrasi :


-        #define GL_QUADS. Quad atau segiempat adalah empat buah titik yang terhubung menjadi suatu segempat dengan blok di tengahnya.
-        #define GL_QUADS_STRIP. Pada quads strip 4 buah vertex merupakan 1 kelompok.
Ilustasi :    




                       Langkah rendering pada quads strip :
a.         Nomor yang berhadap (membentuk 2 garis yang sejajar)
b.        Nomor ganjil dengan nomor ganjil dipertemukan
c.         Nomor genap dengan nomor genap dipertemukan
d.        Garis yang tersisa akan dipertemukan

-        #define GL_POLYGON
Polygon merupakan suatu fungsi yang mirip dengan polyline, tetapi menghasilkan kurva tertutup dengan blok warna (fill). Rendering yang dimiliki oleh GL_POLYGON  sama dengan GL_TRIANGLE_FAN
Bentuk yang teratur :




Bentuk yang tidak teratur :




Poligon yang teratur dapat dibuat dengan menggunakan dimensi garis yang memiliki panjang tetap.

Untuk polygon yang teratur dapat dibuat dengan menggunakan algoritma iterasi, tetapi untuk polygon yang tidak teratur digunakan suatu array yang menyimpan suatu lokasi titik-titik sikunya.

Catatan :
a.     glLineWidth yaitu suatu fungsi yang berfungsi untuk mengatur tebalnya garis
b.     glPointSize yaitu suatu fungsi yang berfungsi untuk mengatur besarnya suatu objek 
c.   gluOrtho2D yaitu suatu fungsi untuk mengatur proyeksi hasil eksekusi dan mendefinisikan besarnya sistem koordinat dengan urutan kiri-kanan dan bawah-atas.



0 komentar:

Post a Comment

Statistic

Buscar