praktikum 1

18
PRAKTIKUM GRAFIKA KOMPUTER Praktikum I Pengenalan GLUT Oleh: S1 PTI ’10 B DIAN PUSPITASARI YULIANTI 100533402642 DWI HARISMA SARI 100533402656 YANAR WAHYU H. 100533406920 UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA

Upload: ariz-mbajeng-wahyu-prasiska

Post on 02-Dec-2015

64 views

Category:

Documents


18 download

TRANSCRIPT

Page 1: PRAKTIKUM 1

PRAKTIKUM GRAFIKA KOMPUTER

Praktikum I

Pengenalan GLUT

Oleh:

S1 PTI ’10 B

DIAN PUSPITASARI YULIANTI 100533402642

DWI HARISMA SARI 100533402656

YANAR WAHYU H. 100533406920

UNIVERSITAS NEGERI MALANG

FAKULTAS TEKNIK

JURUSAN TEKNIK ELEKTRO

PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA

2012

Page 2: PRAKTIKUM 1

praktikum I

Pengenalan GLUT

A. TUJUAN

Memahami GLUT. Memahami dasar pemrograman GLUT. Memahami dasar menampilkan windows GLUT.

B. DASAR TEORIOpenGL 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 di-package secara berbeda-beda sesuai dengan bahasa pemrograman yang digunakan.

Ada 3 file penting dalam OpenGL yang akan digunakan dalam sistem operasi MS-Windows, 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 eventGLUT pada dasarnya dibangun untuk menciptakan aplikasi grafis menggunakan pemrograman yang bersifat prosedural. Di dalamnya terdapat fungsi main loop

Page 3: PRAKTIKUM 1

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 KERJA1. Membuat project baru pada Visual Studio dengan nama prak0.

Gambar 1.1a New Project - Template

Gambar 1.1b New Project – Application Setting

Page 4: PRAKTIKUM 1

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

Page 5: PRAKTIKUM 1

Gambar 1.4a menambah lokasi file include

Gambar 1.4b Pemilihan folder yang berisi glut.h

Page 6: PRAKTIKUM 1

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

Gambar 1.5a Menambahkan item baru

Gambar 1.5b Menambahkan file c++ baru

Page 7: PRAKTIKUM 1

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

D. JOB SHEET PRAKTIKUMKembangkan 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 :

Page 8: PRAKTIKUM 1

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); Ubah-ubahlah parameter pada fungsi glutInitWindowPosition(), Bagaimana sistem koordinat yang diterapkan bagi window aplikasi?(gambarkan sistem koordinat)Jawab : Saat parameter pada fungsi glutInitWindowPosition() diubah-ubah, 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);//aglVertex3f(0.5,0.0,0.0);//bglVertex3f(0.0,0.5,0.0);//c

glEnd();glFlush();

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

Page 9: PRAKTIKUM 1

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 atasglVertex3f(1.0,1.0,0.0);//aglVertex3f(0.0,1.0,0.0);//bglVertex3f(1.0,0.0,0.0);//c

glEnd();glFlush();

}

Output :

2. Untuk posisi segitiga siku-siku di kanan atas

void renderScene(void){

Page 10: PRAKTIKUM 1

glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_TRIANGLES);

//siku2 kanan atasglVertex3f(-1.0,1.0,0.0);//aglVertex3f(0.0,1.0,0.0);//bglVertex3f(-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 bawahglVertex3f(-1.0,-1.0,0.0);//aglVertex3f(0.0,-1.0,0.0);//bglVertex3f(-1.0,0.0,0.0);//c

glEnd();glFlush();}

Output :

Page 11: PRAKTIKUM 1

4. Untuk posisi segitiga siku-siku di kanan bawah

void renderScene(void){glClear(GL_COLOR_BUFFER_BIT);

glBegin(GL_TRIANGLES);

//siku2 kanan bawahglVertex3f(1.0,-1.0,0.0);//aglVertex3f(0.0,-1.0,0.0);//bglVertex3f(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 tengahglVertex3f(-0.5,0.5,0.0);//aglVertex3f(0.5,-0.5,0.0);//bglVertex3f(-0.5,-0.5,0.0);//c

glEnd();glFlush();}

Output :

Page 12: PRAKTIKUM 1

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).

Page 13: PRAKTIKUM 1

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

Page 14: PRAKTIKUM 1

- 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 bawah-atas.

- 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-23471-2-modulpr-

1.pdf