Senin, 29 April 2013

Primitive Objek Open GL

Primitive Objek Open GL


A.  Pengenalan GLUT

Sistem Koordinat didalam laptop ada 3 yaitu :
-    Open GL
-    Sistem Operasi
     Mengikuti resolusi (variabel)
-    Fisik  (bersifat statis)
 1.  GLUT (OpenGL Utility Toolkit)
Dikembangkan oleh Mark Kilgard. GLUT merupakan pengembangan dari OpenGL dimana memiliki keunggulan sebagai berikut:
- Mudah, portable window manager, menggunakan callback functions untuk menambahkan interaksi dari user.
- Didesain untuk aplikasi dengan level kecil hingga menengah.
- Distribusi library bebas tetapi tidak open source.
2. Pemrograman Berbasis Event
GLUT pada dasarnya dibangun untuk menciptakan aplikasi grafis menggunakan pemrograman yang bersifat prosedural. Di dalamnya terdapat fungsi main loop yang diatur oleh GLUT dan looping yang terjadi dalam aplikasi bertujuan untuk penanganan fungsi-fungsi callback sebagai input dari user seperti fungsi redraw, mouse, keyboard, joystick, dan lain-lain.

 B.  Primitif Objek

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.
-   # define GL_LINES
     Primitif objek ini adalah suatu primitive objek guna menciptakan suatu garis.
 Rumus :
vertex   = 2N
 -    # define GL_LINE_LOOP
-    # define GL_LINE_STRIP
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 segempat 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
 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.

 3.  Color
          Untuk memberi warna pada objek, seperti titik atau garis, dapat dilakukan dengan menggunakan fungsi à glColor3f(red,green,blue);
           Di mana red, green, blue berada pada 0 sampai dengan 1, yang menunjukkan skala pencerahan dari masing-masing skala.
           Berikut adalah beberapa fungsi color :
  1. glColor3f(0,0,0);//black
  2. glColor3f(0,0,1);//blue
  3. glColor3f(0,1,0);//green
  4. glColor3f(0,1,1)//cyan
  5. glColor3f(1,0,0)//red
  6. glColor3f(1,0,1)//magenta
  7. glColor3f(1,1,0);//yellow
  8. glColor3f(1,1,1);//white
 4.  SegiEmpat
      Berikut adalah pembuatan suatu objek berupa segiempat :
Proses Rendering :
SegiEmpat (posx, posy, w, h)
Maka sintaks pembuatan segiempat :
glBegin (GL_QUADS);
glVertex2i (posx, posy);
glVertex2i (posx-w, posy);
glVertex2i (posx-w, posy-h);
glVertex2i (posx,posy-h);

C. Transformasi Objek

     Transformasi terdiri atas beberapa fungsi yaitu :
1.  Fungsi dasar untuk Translasi (perubahan posisi) objek
Penulisan :
glTranslate(d,f) (x,y,z)
a. Fungsi dasar untuk Rotasi objek
Penulisan :
glScale(d,f) (x,y,z)
b. Fungsi dasar untuk skala (perubahan ukuran) objek
Penulisan :
glRotate (d,f) (besarnya sudut, x , y , z) dan  besarnya sudut, -1-1, -1-1, -1-1
 Contoh  pada penggunaan glTranslate :
 
Catatan :
glPushMatrix berfungsi untuk menyimpan koordinat yang ada. Sedangkan glPopMatrix adalah suatu fungsi guna memangil suatu fungsi yang telah disimpan pada glPushMatrix.

0 komentar:

Posting Komentar