• Tidak ada hasil yang ditemukan

Laporan Grafika Komputer Pengenalan GLU

N/A
N/A
Protected

Academic year: 2017

Membagikan "Laporan Grafika Komputer Pengenalan GLU"

Copied!
21
0
0

Teks penuh

(1)

LAPORAN PRAKTIKUM MODUL 1

GRAFIKA KOMPUTER

PENGENALAN GLUT

Disusun Oleh:

Ananda Putri Syaviri (130533608243)

PTI OFF B

UNIVERSITAS NEGERI MALANG

FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO

PROGRAM STUDI S1 PENDIDIKAN TEKNIKINFORMATIKA

Januari-2015

(2)

PENGENALAN GLUT

A. KOMPETENSI DASAR

 Memahami GLUT.

 Memahami dasar pemrograman GLUT.

 Memahami dasar menampilkan windows GLUT.

B. PETUNJUK

C. DASAR TEORI

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  Awali setiap aktivitas dengan do’a, semoga berkah dan mendapat kemudahan.  Pahami Tujuan, dasar teori, dan latihan-latihan praktikum dengan baik dan benar.  Kerjakan tugas-tugas dengan baik, sabar, dan jujur.

(3)

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.

- SET UP PROJECT BARU

1. Buatlah project baru dengan visual studio dengan nama prak0.

(4)

3. Kembali ke folder project dan copy-paste file glut32.lib dan glut32.dll ke folder project prak0.

(5)

5. Lakukan konfigurasi pada properties projek prak0.

Note : setiap modul file cpp baru yang dibuat harus selalu mensetting seperti di atas.

(6)

D. LATIHAN:

1. Buat file dengan nama cg-0.cpp dan tulislah program di bawah ini. #include<stdlib.h>

#include<glut.h>

void renderScene(void) { }

void main(int argc, char **argv) { glutInit(&argc, argv);

glutCreateWindow("Pemrograman Grafis GLUT"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot :

Penjelasan :

- Program diatas menggunakan header stdlib dan glut. Header Glut berfungsi agar fungsi glut dapat diterjemahkan dan program dapat berjalan dengan baik. Program diatas menggunakan fungsi glutCreateWindow maksudnya adalah memberi judul pada windows dengan nama yang diisi pada parameter. glutInit merupakan fungsi yang mengizinkan sebuah aplikasi untuk mendapatkan argument command line(pada cmd) dan system inisialisasi. glutDispalyFunc berfungsi sebagai fungsi  File glut.h diletakkan pada C:\Program Files\Microsoft Visual Studio

10.0\VC\include

 File glut32.lib diletakkan pada C:\Program Files\Microsoft Visual Studio 10.0\VC\lib

(7)

pemanggilan display. glutMainLoop berfungsi sebagai fungsi untuk melakukan perulangan event.

E. PRAKTIKUM Syntax program :

#include<stdlib.h> #include<glut.h>

void renderScene(void) {

}

void main(int argc, char **argv) {

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot :

Penjelasan :

(8)

berfungsi sebagai fungsi pemanggilan display. glutMainLoop berfungsi sebagai fungsi untuk melakukan perulangan event. glutInitDisplayMode berfungsi sebagai fungsi permintaan pemunculan properties untuk setting window yaitu : RGB colour, single buffering dan properties logically ORed together. glutInitWindowPosition(100,100) artinya, membuat windows dengan posisi diletakkan pada titik kiri atas jendela pada layar computer. glutInitWindowSize(320,320) artinya membuat windows dengan ukuran 320,320.

 Point:

1. Pada fungsi main terdapat statement glutDisplayFunc(renderScene); hilangkan atau jadikan pernyataan tersebut menjadi comment. Apa yang terjadi? Mengapa? Syntax :

#include<stdlib.h> #include<glut.h>

void renderScene(void) { }

void main(int argc, char **argv) { glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); glutMainLoop();

}

(9)

Penjelasan :

- Jika glutDisplayFunc(renderscene) dihilangkan maka akan meyebabkan tampilan display menjadi eror dalam arti muncul tetapi hanya sekilas , kemudian program langsung berhenti. Hal ini terjadi karena fungsi glutDisplayFunc yang sangat penting dalam pemrograman glut yaitu sebagai pemanggilan display, jika tidak ada fungsi ini maka program tidak dapat tampil sebagaimana mestinya.

2. Cantumkan kembali fungsi glutDisplayFunc(renderScene); Ubah-ubahlah parameter pada fungsi glutInitWindowPosition(), Bagaimana sistem koordinat yang diterapkan bagi window aplikasi? (gambarkan sistem koordinatnya)

Syntax :

#include<stdlib.h> #include<glut.h>

void renderScene(void) { }

void main(int argc, char **argv) { glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(90,90);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); glutDisplayFunc(renderScene);

glutMainLoop(); }

(10)

Penjelasan :

- Setelah mencantumkan kembali fungsi glutDisplayFunc maka program data tampil sebagaimana mestinya. Kemudian program diatas mengubah posisi windows menjadi 90,90 (posisi akan berubah sesuai dengan ukuran lcd computer yang digunakan) dengan cara mengubah parameter pada fungsi glutInitWindowPosition.

- Titik titik pada kuadran II merupakan letak windows program yang ditampilkan.

3. Pada program dan tambahkan program di bawah ini ke dalam fungsi renderScene.

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

Syntax :

#include<stdlib.h> #include<glut.h>

void renderScene(void) {

(11)

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(); }

void main(int argc, char **argv) {

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(90,90);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot :

Penjelasan :

(12)

terdapat pada fungsi glutCreateWindow. Dan juga pada program diatas mengubah posisi window menjad 90,90 (posisi akan berubah sesuai dengan ukuran lcd computer yang digunakan.

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

Syntax :

#include<stdlib.h> #include<glut.h>

void renderScene(void) {

glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES);

glVertex3f(1.0,1.0,0.0);//a

glVertex3f(1.0,0.5,0.0);//b

glVertex3f(0.5,1.0,0.0);//c

glVertex3f(-1.0,1.0,0.0);//a

glVertex3f(-1.0,0.5,0.0);//b

glVertex3f(-0.5,1.0,0.0);//c

glVertex3f(-1.0,-1.0,0.0);//a

(13)

glVertex3f(-0.5,-1.0,0.0);//c

glVertex3f(1.0,-1.0,0.0);//a

glVertex3f(1.0,-0.5,0.0);//b

glVertex3f(0.5,-1.0,0.0);//c

glVertex3f(-0.5,-0.5,0.0);//a

glVertex3f(-0.5,0.5,0.0);//b

glVertex3f(0.5,-0.5,0.0);//c

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot :

Penjelasan :

(14)

glVertex3f(1.0,1.0,0.0);//a

glVertex3f(1.0,0.5,0.0);//b

glVertex3f(0.5,1.0,0.0);//c fungsi ini digunakan untuk membuat objek segitiga siku-siku bagian kanan atas

glVertex3f(-1.0,1.0,0.0);//a

glVertex3f(-1.0,0.5,0.0);//b

glVertex3f(-0.5,1.0,0.0);//c fungsi ini digunakan untuk membuat segitiga siku-siku bagian kiri atas

glVertex3f(-1.0,-1.0,0.0);//a

glVertex3f(-1.0,-0.5,0.0);//b

glVertex3f(-0.5,-1.0,0.0);//c fungsi ini digunakan untuk membuat segitiga siku-siku bagian kiri bawah

glVertex3f(1.0,-1.0,0.0);//a

glVertex3f(1.0,-0.5,0.0);//b

glVertex3f(0.5,-1.0,0.0);//c fungsi ini digunakan untuk membuat segitiga siku-siku bagian kanan bawah

glVertex3f(-0.5,-0.5,0.0);//a

glVertex3f(-0.5,0.5,0.0);//b

glVertex3f(0.5,-0.5,0.0);//c fungsi ini digunakan untuk membuat segitiga siku-siku bagian tengah

5. Dari program (d) ubahlah dimensi window aplikasi menjadi 640 x 640 (w x h). Sajikan screenshotnya. Bandingkan dengan ukuran window yang sebelumnya dan beri kesimpulan.

Syntax :

#include<stdlib.h> #include<glut.h>

void renderScene(void) {

glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES);

glVertex3f(1.0,1.0,0.0);//a

glVertex3f(1.0,0.5,0.0);//b

glVertex3f(0.5,1.0,0.0);//c

glVertex3f(-1.0,1.0,0.0);//a

glVertex3f(-1.0,0.5,0.0);//b

glVertex3f(-0.5,1.0,0.0);//c

glVertex3f(-1.0,-1.0,0.0);//a

glVertex3f(-1.0,-0.5,0.0);//b

glVertex3f(-0.5,-1.0,0.0);//c

glVertex3f(1.0,-1.0,0.0);//a

glVertex3f(1.0,-0.5,0.0);//b

(15)

glVertex3f(0.0,0.0,0.0);//a

glVertex3f(0.0,0.0,0.0);//b

glVertex3f(0.0,0.0,0.0);//c

glEnd(); glFlush(); }

void main(int argc, char **argv) {

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(640,640);

glutCreateWindow("GLUT : Harits Ar Rosyid"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot :

Penjelasan :

(16)

6. 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). Syntax :

// syntax awal

#include<stdlib.h> #include<glut.h>

void renderScene(void) {

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); gluOrtho2D(-50.0,50.0,-50.0,50.0); glutDisplayFunc(renderScene);

glutMainLoop(); }

// setelah modifikasi mengubah nilai parameter glVertex3f(a,b,c) menjadi 50 dan -50

#include<stdlib.h> #include<glut.h>

(17)

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(320,320);

glutCreateWindow("GLUT : Harits Ar Rosyid"); gluOrtho2D(-50.0,50.0,-50.0,50.0); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot : // awal

// setelah modifikasi

Penjelasan :

- Program awal sebelum modifikasi menggunakan fungsi pembuatan objek segitiga dengan koordinat

glVertex3f(-0.5,0.0,0.0);//a

glVertex3f(0.5.0,0.0,0.0);//b

(18)

letak objek ini berada di tengah antara kordinat 1 dan 2.

Yang fungsinya untuk mengatur volume tampilan pada windows.

Fungsi ini berfungsi untuk mendefinisikan besarnya system koordinat dengan range sumbu x(left, right) dan sumbu y (bottom, top).

F. TUGAS ASISTENSI

Buatlah sebuah aplikasi yang menampilkan segitiga siku-siku, segitiga sembarang, sama kaki, dan sama sisi dengan koordinat yang berbeda. Dan window aplikasi berukuran : panjang = 3 digit NIM

lebar = 3 digit NIM

judul window = Nama lengkap Syntax :

#include<stdlib.h> #include<glut.h>

void renderScene(void) {

glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES);

glVertex3f(1.0,0.5,0.0);//a // segitiga siku-siku

glVertex3f(0.5,0.5,0.0);//b

glVertex3f(1.0,1.0,0.0);//c

glVertex3f(-1.0,-1.0,0.0);//a // segitiga sembarang

glVertex3f(-0.5,0.0,0.0);//b

glVertex3f(-1.0,0.5,0.0);//c

glVertex3f(-0.5,-1.0,0.0);//a //segitiga sama kaki

glVertex3f(0.5,-1.0,0.0);//b

glVertex3f(0.0,0.0,0.0);//c

glVertex3f(-0.5,0.0,0.0); // segitiga sama sisi

(19)

glVertex3f(0.0,0.5,0.0);

glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100);

glutInitWindowSize(243,243);

glutCreateWindow("Ananda Putri Syaviri"); glutDisplayFunc(renderScene);

glutMainLoop(); }

Screen shoot:

Penjelasan :

- Program diatas menampilkan 3 buah objek segitiga dengan bentuk dan titik koordinat yang berbeda pula. Menggunakan ukuran windows 243,243 (3 digit nim terakhir sesuia dengan perintah). Sehingga pasti hasil tugas asistensi per anak berbeda. Menggunakan judul window ‘Ananda Putri Syaviri’ dengan ukuran posisi windows 100,100.

glVertex3f(1.0,0.5,0.0);//a // segitiga siku-siku

glVertex3f(0.5,0.5,0.0);//b

glVertex3f(1.0,1.0,0.0);//c

glVertex3f(-1.0,-1.0,0.0);//a // segitiga sembarang

glVertex3f(-0.5,0.0,0.0);//b

(20)

glVertex3f(-0.5,-1.0,0.0);//a //segitiga sama kaki

glVertex3f(0.5,-1.0,0.0);//b

glVertex3f(0.0,0.0,0.0);//c

glVertex3f(-0.5,0.0,0.0); // segitiga sama sisi

glVertex3f(0.5,0.0,0.0); glVertex3f(0.0,0.5,0.0);

System dan titik koordinat.

G. KESIMPULAN

- Header glut.h adalah header yang digunakan untuk pemrograman grafis menggunakan OpenGL-Glut.

- Fungsi glutInitWindowPosition digunakan untuk membuat windows dengan letak sesuai parameter yang diinginkan pada jendela windows.

- Fungsi glutInitWindowSize digunakan untuk membuat windows dengan ukuran sesuai dengan parameter yang dituliskan.

(21)

- Fungsi gluOrtho2D(left,right,bottom,top) yang nantinya diisi dengan parameter titik koordinat berfungsi mendefinisikan besarnya system koordinat dengan range sumbu x dan y.

- Fungsi untuk pemanggilan program (display ) adalah glutDisplayFunc(renderScene).

- Fungsi untuk perulangan display agar program tidak berhenti adalah glutMainLoop - glutBegin(GL_TRIANGLE) merupakan fungsi untuk pembuatan objek dengan isi

parameter yang ditentukan , tidak hanya segitiga, line, polygon dan lain-lain juga dapat dibentuk.

- Untuk membentuk objek dapat menggunakan fungsi glVertex3f. H. DAFTAR PUSTAKA

Referensi

Dokumen terkait

Strabo mi mempunyai kelainan mata dengan posisi yang tidak lurus/menyimpang, maka sejak itu orang dengan posisi mata yang tidak lums disebut STRABISMOS kemudian

Windows 3.0 kemudian berevolusi menjadi Windows 3.1 yang sudah diperkenalkan dengan fitur Multimedia dan True Type Font selain itu juga memudahkan End-User karena adanya fitur Drag

Kata - kata diucapkan diubah bentuknya menjadi sinyal digital dengan cara mengubah gelombang suara menjadi sekumpulan angka yang kemudian disesuaikan dengan kode – kode

Maka akan di alokasikan pada space yang kosong, keterangan selanjutnya mengenai lokasi dan ukuran yang akan terpakai saat kita sedang melakukan isntall windows server,

Metoda midpoint dapat diaplikasikan dengan menemukan fungsi keputusan dalam bentuk polinomial seperti pada primitif-primitif di atas kemudian menemukan sifat koherensi inkremen

Setelah didapat satu bagian yang merupakan wajah, proses selanjutnya adalah mengambil (cropping) wajah tersebut dari gambar input dengan ukuran yang sesuai dengan posisi wajah

Jika kasus yang dihadapi adalah kasus (A) maka lakukan algoritma diatas dengan posisi tersebut sebanyak satu kali, kemudian state akan berubah menjadi kasus (B), lakukan

seorang ilmuwan bernama Myron Krueger menemukan Videoplace yang memungkinkan pengguna dapat berinteraksi dengan objek virtual untuk pertama kalinya. Tahun 1989,