Anda di halaman 1dari 17

PRAKTIKUM GRAFIKA KOMPUTER

Praktikum I Pengenalan GLUT

Oleh: S1 PTI 10 B DIAN PUSPITASARI YULIANTI DWI HARISMA SARI YANAR WAHYU H. 100533402642 100533402656 100533406920

UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA 2012

praktikum I Pengenalan GLUT

A. TUJUAN Memahami GLUT. Memahami dasar pemrograman GLUT. Memahami dasar menampilkan windows GLUT.

B. DASAR TEORI
OpenGL adalah suatu spefikasi grafik yang low-level yang menyediakan fungsi untuk pembuatan grafik primitif termasuk titik, garis, dan lingkaran. OpenGL digunakan untuk keperluan-keperluan pemrograman grafis.OpenGL bersifat Open-Source, multi-platform dan multi-language serta digunakan mendefinisikan suatu objek, baik objek 2 dimensi maupun objek 3 dimensi. OpenGL juga merupakan suatu antarmuka pemrograman aplikasi (application programming interface (API) yang tidak tergantung pada piranti dan platform yang digunakan, sehingga OpenGL dapat berjalan pada sistem operasi Windows, UNIX dan sistem operasi lainnya. OpenGL pada awalnya didesain untuk digunakan pada bahasa pemrograman C/C++, namun dalam perkembangannya OpenGL dapat juga digunakan dalam bahasa pemrograman yang lain seperti Java, Tcl, Ada, Visual Basic, Delphi, maupun Fortran. Namun OpenGL dipackage secara berbeda-beda sesuai dengan bahasa pemrograman yang digunakan. Ada 3 file penting dalam OpenGL yang akan digunakan dalam sistem operasi MSWindows, yaitu glut.h, glut32.lib dan glut32.dll. Dimana masing-masing file OpenGL tersebut akan diinstal kedalam Windows, adapun cara penginstalannya sebagai berikut : Letakkan glut.h di direktori include pada Visual C (vc98/include/GL) Letakkan glut32.lib di direktori lib pada Visual C (vc98/lib) Letakkan glut32.dll di direktori windows/system OpenGL tersebut harus sudah terinstal kedalam komputer apabila di dalam komputer tidak terdapat OpenGL maka hasil gambar tidak akan dapat terlihat meskipun listing program yang telah dibuat didalam C++ telah sukses (jalan). Oleh karena itu, OpenGL harus terinstal dengan benar.

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, dll.

3. Instalasi GLUT pada windows dan aplikasi pengembangan Visual Studio 2008 Express GLUT tidak secara otomatis dapat diaplikasikan karena membutuhkan beberapa file tambahan antara lain glut.h, glut32.lib, glut32.dll yang harus disimpan pada lokasi tertentu sesuai dengan aplikasi pengembangan yaitu Visual Studio 2008 Express. C. LANGKAH KERJA
1. Membuat project baru pada Visual Studio dengan nama prak0.

Gambar 1.1a New Project - Template

Gambar 1.1b New Project Application Setting


2. Membuka windows explorer pada direktori project prak0 dan buatlah direktori

baru di dalamnya dengan nama include dan tempatkan file glut.h di dalamnya.
3. Kembali ke folder project dan copy-paste file glut32.lib dan glut32.dll ke folder

project prak0.

Gambar 1.2 Penambahan file untuk grafika komputer menggunakan GLUT

4. Melakukan konfigurasi pada properties projek prak0.

Gambar 1.3 Konfigurasi pada Project Properties

Gambar 1.4a menambah lokasi file include

Gambar 1.4b Pemilihan folder yang berisi glut.h

5. Menciptakan file baru dengan nama cg-0.cpp.

Gambar 1.5a Menambahkan item baru

Gambar 1.5b Menambahkan file c++ baru

6. Membuka file cg-0.cpp dan tulislah program di bawah ini.

D. JOB SHEET PRAKTIKUM


Kembangkan program sehingga fungsi main menjadi:

Output :

a. Pada fungsi main terdapat statement glutDisplayFunc(renderScene); hilangkan atau jadikan pernyataan tersebut menjadi comment. Apa yang terjadi?mengapa? Jawab : Saat glutDisplayFunc(renderScene) dihilangkan, window hanya ditampilkan sebentar lalu menghilang. Hal ini dikarenakan glutDisplayFunc(renderScene) merupakan fungsi yang bertugas untuk menggambar ulang window yang dibuat. b. Cantumkan kembali fungsi glutDisplayFunc(renderScene); Ubahubahlah parameter pada fungsi glutInitWindowPosition(), Bagaimana sistem koordinat yang diterapkan bagi window aplikasi?(gambarkan sistem koordinat) Jawab : Saat parameter pada fungsi glutInitWindowPosition() diubahubah, posisi form berpindah menuju koordinat yang ditentukan. Koordinat awal (100,100) :

Setelah koordinat diubah menjadi (400,400), maka :

c. Pada program dan tambahkan program di bawah ini ke dalam fungsi renderScene.
glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(-0.5,-0.5,0.0);//a glVertex3f(0.5,0.0,0.0);//b glVertex3f(0.0,0.5,0.0);//c glEnd(); glFlush();

Gambarkan sistem koordinat dan titik-titik koordinatnya yang diterapkan untuk menghasilkan segitiga tersebut!

d. Buatlah agar segitiga menjadi segitiga siku-siku dan terletak pada posisi kiri atas, kanan atas, kiri bawah, kanan bawah, dan tepat di tengah, dengan mengubah parameter pada fungsi glVertex3f(a, b, c). Sajikan screenshot eksekusi program (5 +screenshot). Jawab : 1. Untuk posisi segitiga siku-siku di kiri atas

void renderScene(void){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); //siku2 kiri atas glVertex3f(1.0,1.0,0.0);//a glVertex3f(0.0,1.0,0.0);//b glVertex3f(1.0,0.0,0.0);//c glEnd(); glFlush();

Output :

2. Untuk posisi segitiga siku-siku di kanan atas


void renderScene(void){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); //siku2 kanan atas glVertex3f(-1.0,1.0,0.0);//a glVertex3f(0.0,1.0,0.0);//b glVertex3f(-1.0,0.0,0.0);//c glEnd(); glFlush(); } Output :

3. Untuk posisi segitiga siku-siku di kiri bawah


void renderScene(void){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); //siku2 kiri bawah glVertex3f(-1.0,-1.0,0.0);//a glVertex3f(0.0,-1.0,0.0);//b glVertex3f(-1.0,0.0,0.0);//c glEnd(); glFlush(); } Output :

4. Untuk posisi segitiga siku-siku di kanan bawah


void renderScene(void){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); //siku2 kanan bawah glVertex3f(1.0,-1.0,0.0);//a glVertex3f(0.0,-1.0,0.0);//b glVertex3f(1.0,0.0,0.0);//c glEnd();

glFlush(); } Output :

5. Untuk posisi segitiga siku-siku di tepat ditengah


void renderScene(void){ glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); //siku2 di tengah glVertex3f(-0.5,0.5,0.0);//a glVertex3f(0.5,-0.5,0.0);//b glVertex3f(-0.5,-0.5,0.0);//c glEnd(); glFlush(); } Output :

e. Dari program (e) ubahlah dimensi window aplikasi menjadi 640 x 640 (w x h). sajikan screenshot-nya. Bandingkan dengan ukuran window yang sebelumnya dan beri kesimpulan. Jawab :

Kesimpulan : Saat window diperbesar, ukuran gambar juga ikut membesar, sistem koordinat pada glut juga akan mengikuti lebar dan tinggi window yang telah di atur.

f. Ubahlah program menjadi seperti di bawah ini. (tambahan tampak pada tanda). Ubahlah nilai-nilai parameter pada glVertex3f(a, b, c); dari bernilai 10 dan -10 menjadi nilai maksimal 50 dan -50. Sajikan screeshot-nya dan buatlah kesimpulan yang berhubungan dengan fungsi gluOrtho2D(left,right,bottom,top).

Output :

Kesimpulan :
-

Fungsi gluOrtho2D(left,right,bottom,top) adalah untuk mengatur proyeksi hasil eksekusi dan mendefinisikan besarnya sistem koordinat dengan urutan kiri-kanan dan bawah-atas.

E. TUGAS PRAKTIKUM
-

void renderScene merupakan fungsi untuk merender. glutCreateWindow merupakan fungsi untuk menciptakan window.

glutDisplayFunc merupakan fungsi untuk mendaftarkan callback function untuk meredraw tampilan. glutMainLoop merupakan fungsi untuk memanggil kembali fungsi main untuk memantau aksi user. glClear merupakan fungsi yang berguna untuk membersihkan gambar pada window sebelumnya.. glEnd merupakan fungsi untuk mengakhiri pembuatan objek. glFlush merupakan fungsi untuk membersihkan memori dari perintah-perintah sebelumnya sehingga dapat menyebabkan perintah-perintah OpenGL yang belum tereksekusi menjadi tereksekusi. gluOrtho2D merupakan fungsi untuk mengatur proyeksi hasil eksekusi dan mendefinisikan besarnya sistem koordinat dengan urutan kiri-kanan dan bawahatas. glVertex3f(x,y,z) merupakan fungsi yang menetukan lokasi titik berada (x,y,z) dengan tipe argumennya adalah float dan 3D. glutInitPosition(100,100) merupakan fungsi untuk mengatur letak jendela pada posisi (100,100) di layar komputer. glutWindowSize(640,640) merupakan fungsi untuk membuat window dengan ukuran (640x640). glBegin(GL_TRIANGLES) merupakan fungsi untuk membentuk 3 vertices menjadi satu segitiga. GL_COLOR_BUFFER_BIT merupakan fungsi untuk menyimpan informasi warna pada pixel.

F. KESIMPULAN OpenGL (Open Graphic Library) adalah library grafis standar yang digunakan untuk keperluan pemrograman grafis. Selain openGL, library grafis yang banyak digunakan adalah DirectX. OpenGL secara luas telah digunakan di bidang visual seperti CAD, simulasi, video game, virtual reality, dan lain-lain. OpenGL bersifat Open Source, multi platform, dan multi language. Saat ini semua bahasa pemrograman mendukung OpenGL dan bisa bekerja dalam lingkungan Windows, Unix, SGI, Linux, FreeBSD, dan lain-lain. GLUT atau OpenGL Utility Toolkit adalah pustaka utilitas untuk program berbasis OpenGL yang melakukan I/O dengan sistem operasi. GLUT menyediakan fungsi untuk mendefinisikan jendela, kontrol jendela, dan masukan dari keyboard/mouse.

GLUT juga menyediakan fungsi otomatis untuk menggambarkan berbagai objek yang kompleks. Library dasar dari openGL adalah GLUT, dengan fasilitas yang bisa dikembangkan. Untuk sistem operasi Windows, library ini terdiri dari 3 file, yaitu: - Glut.h - Glut32.lib - Glut32.dll

REFERENSI
daraluvheechul.blogspot.com/2010/02/grafik-2d-3d.html http://zendanopy.wordpress.com/category/kuliah/ http://lecturer.eepis-its.edu/~basuki/lecture/PengantarGrafika.pdf http://elib.unikom.ac.id/files/disk1/470/jbptunikompp-gdl-irfanmalik-234712-modulpr-1.pdf

Anda mungkin juga menyukai