Breaking News
Loading...
Wednesday, 14 May 2014

Primitif Drawing di OpenGL dengan Glut

02:17

Modul 1
Primitif Drawing

I.       Tugas Pendahuluan
1.      Jelaskan secara singkat sejarah OpenGL!
2.      Sebutkan beberapa contoh software yang menggunakan OpenGL!
3.      Apa guna glBegin() dan glEnd()?
4.      Jelaskan apa itu vertex!
II.   Pengantar
Komputer grafik telah menunjukkan kemajuan yang pesat dari berbagai sisi: algoritma, software, dan hardware. Cakupannya juga telah meluas ke berbagai bidang: kedokteran, sains, engineering, bisnis, industri, seni, hiburan, iklan, dan lain-lain.
Salah satu tools/library pembuatan aplikasi grafik adalah OpenGL (Open Graphics Library). OpenGL adalah suatu standar grafik yang menyediakan fungsi-fungsi low-level untuk pembuatan berbagai gambar pada komputer.
Sebagai API (Application Programming Interface), OpenGL bersifat platform-independent/tidak tergantung pada piranti dan platform yang digunakan. Hal inilah yang membuat OpenGL dapat berjalan pada berbagai sistem operasi: Windows, UNIX, Mac, Android, dll. OpenGL pada awalnya didesain untuk digunakan oleh bahasa pemrograman C/C++, namun dalam perkembangannya OpenGL dapat juga digunakan oleh bahasa pemrograman yang lain seperti Java, Tcl, Ada, Visual Basic, Delphi, maupun Fortran.

Primitif Drawing
OpenGL memiliki beberapa obyek dasar yang disebut primitif. Gambar-gambar kompleks dibuat dari kombinasi obyek-obyek primitif ini. Primitif mudah digambar pada layar monitor karena menggunakan persamaan geometrik sederhana. Contoh primitif / grafik dasar adalah :
·         Titik
·         Garis
·         Segitiga
·         Polygon

Perintah OpenGL
OpenGL memiliki daftar fungsi yang banyak. Untuk saat ini, praktikan hanya perlu fokus pada beberapa perintah dasar yang tertera pada tabel berikut ini:
Tabel 1.1 Perintah dasar OpenGL

III. Program

Berikut ini adalah program yang menggambar obyek primitif.

void display(void)
{
/* bersihkan layar dari titik pixel yang masih ada */
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 0.0);

/* gambar 5 titik di layar */
glBegin(GL_POINTS);
glVertex3f (0.0, 0.0, 0.0);
glVertex3f (0.0, 0.8, 0.0);
glVertex3f (0.8, 0.0, 0.0);
glVertex3f (0.0, -0.8, 0.0);
glVertex3f (-0.8, 0.0, 0.0);
glEnd();

glFlush ();
}

 void kunci(unsigned char key, int x, int y)
{
   switch (key)
   {
     /* aplikasi berhenti ketika tombol q ditekan */
     case 27 :
     case 'q':
      exit(0);
      break;
     }
    glutPostRedisplay();
}

int main(int argc, char *argv[])
{
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Primitif");
glutDisplayFunc(display);
glutKeyboardFunc(kunci);
glutMainLoop();
return 0;
}
Program 1.1 Menggambar 5 titik

Program diatas jika dijalankan akan menampilkan 5 titik berwarna kuning pada latar belakang hitam. Posisi titik didefinisikan pada tiap pemanggilan glVertex3f. Ukuran window mengambil nilai default yang disediakan oleh OpenGL: (-1,-1) untuk titik kiri bawah dan (1, 1) untuk titik kanan atas.

Yang perlu diperhatikan di codeblocks, tiap kali user membuat project baru, library yang diperlukan harus ditambahkan.

IV.       Percobaan
1.      Gantilah sintak program yang berwarna merah bold untuk membuat berbagai macam primitive drawing. Lakukan pengamatan apa yang terjadi
glBegin(GL_POINTS);
glBegin(GL_LINE_STRIP);
glBegin(GL_LINE_LOOP);
glBegin(GL_LINES);
glBegin(GL_TRIANGLES);
glBegin(GL_TRIANGLE_FAN);
glBegin(GL_TRIANGLE_STRIP);
glBegin(GL_QUADS);
glBegin(GL_QUAD_STRIP);
glBegin(GL_POLYGON);

2. Lakukan penyisipan glColor3f (X, X, X); pada tiap vertex, kemudian amati lagi apa yang terjadi.
3. Lakukan pengaturan ketebalan titik dan garis dengan perintah glPointSize(x); dan glLineWidth(x); kemudian amati apa pengaruhnya terhadap titik dan garis.
V.    Tugas
1. Lakukan percobaan sesuai dengan perintah diatas.
2. Buat Checker board (papan catur) yang berukuran 2 x 2 cell (total ada 4 kotak) dan terdiri dari 2 warna berbeda! Warna terserah.
3. Buat 1 huruf vokal (A, E, I, O, U). Koordinasikan dengan asisten praktikum sehingga dalam 1 kelompok praktikum tidak ada yang mengerjakan huruf yang sama.
4. Ulang soal nomor 3 dan 4 menggunakan glRect().
Comments
0 Comments

0 comments:

Post a Comment

 
Toggle Footer