Anda di halaman 1dari 16

LAPORAN PRAKTIKUM GRAFIKA KOMPUTER

MODUL 1
PENGENALAN GLUT
Untuk memenuhi tugas matakuliah Praktikum Grafika Komputer
yang dibimbing oleh Bapak Heru Wahyu Herwanto

Disusun Oleh :
Chrisdianto Agus Rahayu
(120533400131)
Intan Sholikatul M
(120533430993)

FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
UNIVERSITAS NEGERI MALANG
FEBRUARI 2013
MODUL 1
A. Tujuan
Memahami GLUT.
Memahami instalasi dan dasar pemrograman GLUT.
Memahami dasar menampilkan windows GLUT.

B. 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 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.
1. Tujuan :
Untuk menyembunyikan kompleksitas dari interfacing dengan berbagai 3D
accelerators,memamerkan oleh programmer dengan satu, seragam API.
Untuk menyembunyikan kemampuan yang berbeda dari hardware platform,
oleh semua yang memerlukan mendukung implementasi penuh fitur openGL
set (menggunakan software emulation jika diperlukan).

2. Syntax Perintah OpenGL


Sintaks perintah OpenGL mengikuti aturan penulisan dari library dimana fungsi
tersebut berasal, format penulisan fungsi OpenGL adalah :
<awalan library><perintah><optional jumlah argumen><optional
tipe argumen>
Semua perintah OpenGL menggunakan awalan gl diikuti dengan huruf kapital
pada setiap kata membentuk nama perintah (sebagai contoh glClearColor). Untuk
mendefinisikan konstanta diawali dengan GL_, dengan menggunakan huruf
kapital dan garis bawah untuk memisahkan kata (seperti GL_POLY_STIPPLE).
Terkadang beberapa huruf dan angka ditambahkan pada akhir perintah (seperti 3f
pada glVertex3f). Dalam hal ini angka 3 menunjukkan berapa banyak argumen
yang harus ada pada perintah tersebut dan akhiran huruf f menunjukkan jenis
datanya yaitu floating. Sebagai contoh pada dua perintah berikut ini :
glVertex3i(1,0,-2); glVertex3f(1.0, 0.0, -2.0);
adalah sama yaitu meletakkan titik di layar pada koordinat x = 1, y = 0 dan z = -2,
perbedaannya yaitu pada perintah pertama menspesifikasikan titik dengan tipe
data integer 32-bit, sedangkan yang kedua dengan tipe data single precision
floating point.

Beberapa perintah OpenGL menambahkan perintah huruf akhir v yang


menunjukkan bahwa perintah tersebut menggunakan pointer ke array/vektor. Di
bawah ini contoh perbedaannya.
float color_array[]={1.0,0.0,0.0}
glColor3f (1.0,0.0,0.0);
glColor3fv(color_array);
3. Penggambaran Primitif Grafik Dasar
OpengGL menyediakan banyak fungsi untuk kebanyakan grafik primitif
termasuk titik, garis dan lingkaran. Masing-masing perintah atau fungsi dalam
OpenGL mempunyai format dan struktur yang sama. Ini memudahkan untuk
mengetahui bagaimana jalannya fungsi, argumen yang dibutuhkan untuk
melakukannya dan format tipe datanya. Pada tabel 1 menunjukan contoh perintah
OpenGL yang digunakan, dan tabel 2 menunjukan format fungsi OpenGL.
4. Manajement Window
Ada 5 fungsi yang harus dipanggil untuk melakukan instalansi window yaitu:
a. glutInit(int argc,char**argv)
Fungsi ini menginisialisasi glut dan memproses argument command_line yg
disertakan(jika ada). Fungsi ini harus di panggil pertama kali sebelum pemanggilan
terhadap fungsi-fungsi yang lain.
b. glutInitDisplayMode(unsigned intmode)
Fungsi ini digunakan untuk menentukan apakah akan menggunakan model
pewarnaan RGBA atau indek warna. Dengan fungsi ini juga bisa menentukan apakah
akan menggunakan windows buffer single atau double.
c. GlutInitWindowPosisition(int.x,int.y)
Fungsi ini menentukan letak window dengan patokkannya ialah pada window
kiri atas.
d. glutInitWindowSize(int width,int height)
Fungsi ini menspesifikasikan ukuran window yang dibuat dalam pixel.
e. glutCreateWindow(char *string)
Fungsi untuk membuat window dalam konteks openGL, dan akan
menghasilkan identitas atau judul window tersebut.
C. Latihan
1. Latihan 1
Source Code

Print screen
Penjelasan

glutCreateWindow("Penrograman Grafis GLUT");


Adalah perintah untuk membuat form windows dengan judul
"Penrograman Grafis GLUT" dalam bentuk grafis atau visual

glutDisplayFunc(renderScene);
Adalah perintah untuk menampilkan isi dari fungsi renderScene.

Kembangkan program sehingga fungsi main menjadi:

D. Praktikum
a. Pada fungsi main terdapat statement glutDisplayFunc(renderScene); hilangkan atau
jadikan pernyataan tersebut menjadi comment. Apa yang terjadi? Mengapa?
Source Code
Tampilan
Tidak dapat menampilkan program
Keterangan
Pada fungsi main terdapat statement glutDisplayFunc(renderScene); hilangkan
atau jadikan pernyataan tersebut menjadi comment. Apa yang terjadi? Mengapa?

b. Cantumkan kembali fungsi glutDisplayFunc(renderScene); Ubah-ubahlah parameter


pada fungsi glutInitWindowPosition(), Bagaimana sistem koordinat yang diterapkan
bagi window aplikasi? (gambarkan sistem koordinatnya)
Source Code

Print screen
glutInitWindowPosition (100,100);
Out put ukuran 100

glutInitWindowPosition (500,500);

Out put ukuran 500

Keterangan
Pada program source code glutInitWindowPosition (100,100); & glutInitWindowPosition
(500,500); .Akan tampak ukuran dari grafik yang di tampilkan memiliki jarak yang berbeda
, contoh antara posisi 100 dan banding 500.

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

Source Code

Print screen
Keterangan
glVertex3f(-0.5,-0.5,0.0);//a
glVertex3f(0.5,0.0,0.0);//b
glVertex3f(0.0,0.5,0.0);//c
source di atas menjadikan gambar grafik menjadi sebuah segitiga sembarang dengan sudut
yang berbeda beda.
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).
1. Posisi Kiri Atas
Source Code
Tampilan

Keterangan
Hasil dari glVertex3f(-0.5,0.5,0.0);//a glVertex3f(-0.5,0.0,0.0);//b
glVertex3f(0.0,0.5,0.0);//c menjadikan posisi segitiga menjadi bertepi di kiri atas

2. Posisi Kanan Atas


Source Code

Tampilan
Keterangan
Hasil dari glVertex3f(0.5,0.5,0.0);//a glVertex3f(0.5,0.0,0.0);//b glVertex3f(0.0,0.5,0.0);//c
menjadikan posisi segitiga menjadi bertepi di kanan atas

3. Posisi Kiri Bawah


Source Code

Tampilan
Keterangan
Hasil dari glVertex3f(-0.5,0.5,0.0);//a glVertex3f(-0.5,0.0,0.0);//b
glVertex3f(0.0,0.0,0.0);//c menjadikan posisi segitiga menjadi bertepi di kiri bawah

4. Posisi Kanan Bawah


Source Code

Tampilan
Keterangan

Hasil dari glVertex3f(0.5,0.0,0.5);//a glVertex3f(0.0,0.0,0.0);//b glVertex3f(0.5,0.5,0.0);//c


menjadikan posisi segitiga menjadi bertepi di kanan bawah

5. Posisi Tepat di Tengah-tengah


Source Code

Tampilan
Keterangan
Hasil dari glVertex3f(-10.0,100.,0.0);//a glVertex3f(-10.0,0.0,0.0);//b
glVertex3f(0.0,0.0,0.0);//c menjadikan posisi segitiga menjadi berada di tengah -
tengah

e. 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.
Source Code

Tampilan
Keterangan

mengubahlah
dimensi window
aplikasi menjadi
640 x 640 (w x h),
menjadikan layar
program menjadi
lebih besar di
bandingkan dengan
program window
f. Ubahlah program menjadi seperti di bawah ini. (tambahan tampak pada tanda).
sebelumnya yang
menggunakan
Ubahlah nilai-nilai parameter pada glVertex3f(a, b, c); dari bernilai 10 dan -10
sekala
menjadi nilai maksimal 50 dan -50. Sajikan screeshot-nya dan buatlah 320 x 320.
kesimpulan
yang berhubungan dengan fungsi gluOrtho2D(left,right,bottom,top).
Source Code

Keterangan
gluOrtho2D(-50.0,50.0,-
50.0,50.0);

Mendefinisikan besarnya sistem


koordinat dengan range sumbu x
dan y dengan susunan posisi (left,
right, bottom, top), maka 2
koordinat pertama menentukan
Tampilan
sumbu x dan 2 koordinat
berikutnya menentukan sumbu y.
Disini posisi left -50.0 dan right
50.0 dengan kata lain posisinya
tetap pada koordinat x=0, dan
posisi bottom -50.0 dan top 50.0
dengan kata lain posisinya tetap
berada pada sumbu y=0.
E. Kesimpulan

Glut adalah sebuah library yang memungkinkan program console untuk menampilkan hasil
berupa kanvas(GUI)

glutCreateWindow("");

Adalah perintah/fungsi yang digunakan untuk membuat sebuah form atau window untuk
menampilkan hasil eksekusi dalam bentuk grafis atau visual.

glutInitWindowsSize digunakan untuk menentukan besar kanvas yang akan ditampilkan

glutDisplayFunc(renderScene);

Adalah perintah/fungsi yang menampilkan isi dari fungsi lain dalam hal ini fungsi renderScene.

gluOrtho2D(left,right,bottom,top)

Mendefinisikan batas-batas sistem koordinat yang akan digunakan untuk menggambar dengan
range sumbu X adalah [left,right] dan range untuk sumbu Y adalah [bottom,top].

glPointSize(5); //digunakan untuk membuat titik dengan skala 5

glBegin(GL_POINTS); //untuk memulai mengambar object dalam bentuk titik

glVertex3f(0.0,0.0,0.0); //untuk menentukan koordinat titik dengan sumbu x,y,z

glEnd(); //mengakhiri perintah membuat titik

F. Daftar Rujukan