Anda di halaman 1dari 15

Laporan Praktikum 1

Grafika Komputer
Dosen Pembimbing :
Muhammad Sonhaji Akbar, S.Pd, M.Kom

Oleh :
Neny Setyo Fany (1655202018)

PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK ILMU KOMPUTER DAN AGROTEKNOLOGI
UNIVERSITAS ISLAM RADEN RAHMAT MALANG
2018
Cara Penginstalan Microsoft Visual Studio 2010 Dan
Pengertian Fungsi Di Microsoft Visual Studio 2010
A. Komponen Dasar
- Memahami Glut
- Cara penginstalan Microsoft Visual Studio 2010
- Fungsi di Microsoft Fisual Studio 2010

B. Dasar Teori
- Glut (OpenGL Utility Toolkit)
Glut adalah GLUT merupakan pengembangan dari OpenGL yang didesain untuk
aplikasi dengan level kecil hingga menengah dan menggunkan callback function untuk
menambahkan interaksi dari user. GLUT menyediakan interface untuk menejemen
window, menu, dan peralatan input (keyboard, dan mouse). GLUT juga menyediakan
fungsi otomatis untuk menggambar objek primitif (garis, lingkaran, titik, persegi),objek
3 dimensi wire (kerangka) maupun yang solid, seperti cube (kubus), sphere (bola), dan
teapot (poci teh), cone (kerucut), torus, dan lain-lain

- Pemrograman Berbasis Event


GLUT pada dasarnya dibangun untuk menciptakan aplikasi grafis menggunakan
pemrograman yang bersifat prosedural. Di dalamnya terdapat fungsi mainloop 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, dan lain-lain.

Untuk pemrograman OpenGL menggunakan C++ di perlukan Library tambahan yaitu :

1. glut.h yang dicopy ke drive:\Program Files\Microsoft Visual Studio


2008\Vc\include\GL
2. glut32.lib yang dicopy ke drive:\Program Files\Microsoft Visual Studio
2008\Vc\lib
3. glut32.dll yang dicopy ke drive:\Windows\System

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

- Dasar-Dasar Menggambar dengan OpenGL dan Menggambar Titik


Dalam Pembuatan Grafis melalui OpenGL ada 3 fungsi Utama yang umum digunakan
1. main ( bertipe int) di gunakan sebagai prosedur utama yg pertama di jalankan dan
menjalankan prosedur lain
2. init digunakan untuk mengatur elemen-elemen yang terdapat di Openg GL seperti
resolusi bukan besar window-nya tapi kyk ukuran gambar yg di tampilkan /
zooming di dalam window, tebal garis dan sebagainya yang lain..
3. Display L merupakan prosedur tempat kita bermain-main membentuk grafis-grafis
dari OpenGL disini segala Objek yang akan kita buat kita taruh.

Dasar-dasar menggambar dengan OpenGL mempunyai 10 buah bentuk geometris


sederhana,biasa disebut 10 Geometris Primitif. Disebut primitif karena bentuk
sederhana dan ditampilkan sangat cepat dan bisa dibentuk gambar yang lebih kompleks
lagi dengan penggabungan gambar geometris primitif tersebut. 10 Geometris tersebut
adalah
1. Points (Point),  GL_POINTS
2. Lines (Garis),  GL_LINES
3. Triangles (Segitiga),  GL_TRIANGLES
4. Triangle Strip (Segitiga Jalur),  GL_TRIANGLE_STRIP
5. Quad Strip (Quad Jalur),  GL_QUAD_STRIP
6. Line Strip (Garis Jalur),  GL_LINE_STRIP
7. Line Loop (Garis Looping),  GL_LINE_LOOP
8. Quads (Quad),  GL_QUADS
9. Polygon (Poligon), and  GL_POLYGON
10. Triangle Fan (Segitiga Fan).  GL_TRIANGLE_FAN

- glutInitDisplayMode
glutInitDisplayMode menyetel mode tampilan awal.
Pemakaian : void glutInitDisplayMode (mode int unsigned);

mode
Mode tampilan, biasanya bitwise OR -ing dari GLUT display mode bit mask. Lihat
nilai di bawah ini:
GLUT_RGBA
Bit mask untuk memilih jendela mode RGBA. Ini adalah default jika GLUT_RGBA
atau GLUT_INDEX tidak ditentukan.
GLUT_RGB
Alias untuk GLUT_RGBA .
GLUT_INDEX
Bit mask untuk memilih jendela mode indeks warna. Ini menimpa GLUT_RGBA jika
itu juga ditentukan.
GLUT_SINGLE
Bit mask untuk memilih jendela buffer tunggal. Ini adalah default jika
GLUT_DOUBLE atau GLUT_SINGLE tidak ditentukan.
GLUT_DOUBLE
Bit mask untuk memilih jendela buffer ganda. Ini menimpa GLUT_SINGLE jika itu
juga ditentukan.
GLUT_ACCUM
Bit mask untuk memilih jendela dengan buffer akumulasi.
GLUT_ALPHA
Bit mask untuk memilih jendela dengan komponen alfa ke buffer warna (s).
GLUT_DEPTH
Bit mask untuk memilih jendela dengan buffer kedalaman.
GLUT_STENCIL
Bit mask untuk memilih jendela dengan buffer stensil.
GLUT_MULTISAMPLE
Bit mask untuk memilih jendela dengan dukungan multisampling. Jika
multisampling tidak tersedia, jendela non-multisampling akan dipilih secara
otomatis. Catatan: baik implementasi sisi-klien dan sisi server OpenGL harus
mendukung ekstensi GLX_SAMPLE_SGIS agar multisampling tersedia.
GLUT_STEREO
Bit mask untuk memilih jendela stereo.
GLUT_LUMINANCE
Bit mask untuk memilih jendela dengan model warna `` pencahayaan ''. Model ini
menyediakan fungsionalitas model RGBA warna OpenGL, tetapi komponen hijau
dan biru tidak dipelihara dalam buffer bingkai. Sebaliknya, setiap komponen merah
piksel diubah menjadi indeks antara nol dan glutGet
(GLUT_WINDOW_COLORMAP_SIZE) -1 dan mencari dalam peta warna per-jendela
untuk menentukan warna piksel di dalam jendela. Colormap awal GLUT_LUMINANCE
windows diinisialisasi menjadi jalur abu-abu linier, tetapi dapat dimodifikasi
dengan rutinitas colormap GLUT.

Deskripsi

Mode tampilan awal digunakan saat membuat jendela tingkat atas,


subwindows, dan overlay untuk menentukan mode tampilan OpenGL untuk jendela
atau overlay yang dibuat.

Perhatikan bahwa GLUT_RGBA memilih model warna RGBA, tetapi tidak


meminta bit alpha (kadang-kadang disebut alpha buffer atau alfa tujuan )
dialokasikan. Untuk meminta alfa, tentukan GLUT_ALPHA . Hal yang sama berlaku
untuk GLUT_LUMINANCE .

NotaImplementasi GLUT_LUMINANCE ,GLUT_LUMINANCE tidak didukung di


sebagian besar platform OpenGL.

Disamping script di atas kita juga harus mengenal glVertex yang di gunakan
untuk menggambar titik pada koordinat x dan y.di bawah ini fungsi masing – masing
gl vertex :

1. glVertex2i(x,y) -> Menggambar titik pada koordinat x dan y, dengan nilai satuan
berupa integer. Contoh glVertex2i(10,10);
2. glVertex2f(x,y)-> Menggambar titik pada koordinat x dan y, dengan nilai satuan
berupa,float. Contoh glVertex2f(10.0,10.0);
3. Vertex2d(x,y)-> Menggambar titik pada koordinat x dan y, dengan nilai satuan
berupa double. Contoh glVertex2d(10.0,10.0);

glPointSize(5.0f) digunakan untuk mengatur besar titik yang akan digambar. Di sini,
kita akan menggambar titik dengan ukuran 5.0. glBegin(GL_POINTS) digunakan untuk
menggambar titik. Posisi titik yang akan digambar harus ditulis antara glBegin(GL_POINTS)
dan glEnd().
C. Cara Instal Microsoft Visual Studio 2008
1. Buka file

2. Pilih setup.exe

3. Setelah ter instal file tersebut extract file glut32.zip

4. Copy file glut.h di


Local Disk (C;) > Program file(x86) > Microsoft SDKs > Windows > V7.0 >
Include
5. Copy file glut32.lib
Local Disk (C;) > Program file(x86) > Microsoft SDKs > Windows > V7.0 > Lib

6. Copy file glut32.dll


Local Disk (C;) > Windows > SysWOW64

7. Buka Microsoft Visual Studi 2010


8. Buat New Projek

9. Pilih Win32 > Win32 Console Aplication dan beri nama Prak1 > OK
10. Klik Aplication Setting > pilih empyt projek > Finish

11. Klik kanan prak1 > Add > New Item

12. Kemudihan pilih Code > C++ File (.cpp) > beri nama cg-0 > Add

13. Klik kanan prak1 > Pilih Propertis > general > Output Directory
14. Copy file yang ada di glut32.zip

15. pada Output Derectory > buat folder include

16. paste isi dari poin 15 ke folder include dan OK


D. Latihan
1. Buka File dg-1,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();
}

Fungsi :
 glutCreateWindow(“....”); :
Membuat Window dalam konteks openGL , dan akan menghasilkan judul
window tersebut.
 glutDisplayFunc(renderScene); :
Memanggil fungsi lain yang menentukan konten dari window yg telah di buat
sebelumnya.
 glutMainLoop ();
Digunakan untuk menjalankan program. Semua fungsi sebelumnya akan
berpengaruh setelah fungsi ini dieksekusi.

Output :

2. Kembangkan program sehingga fungsi main menjadi :


#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("Pemrograman Grafis GLUT");
glutDisplayFunc(renderScene);
glutMainLoop();
}

Fungsi :
 glutDisplayFunc(renderScene); : Memanggil fungsi lain yang menentukan
konten dari window yg telah di buat sebelumnya.
Apabila ini dihilangkan atau di jadikan comment maka akan terjadi eror saat di
jalankan programnya.
 glutInitDisplayMode : menyetel mode tampilan awal.
 glutInitWindowPosition: digunakan untuk membuat posisi window pada layar
berada pada sumbu X yg ditentukan dan sumbu Z yg juga ditentukan.
Misalnya : glutInitWindowPosition(100,100)
 glutInitWindowSize: digunakan untuk membuat ukuran dari window.
Misalnya : glutInitWindowSize(320,240);
 gluOrtho2D(Left,Right,Bottom,Top): digunakan untuk menentukan
koordinat yang digunakan pada pada kanvas.
misalnya :gluOrtho2D(-320.,320.,-240.,240.)

Output :

3. Fungsi glutInitWindowPosition(100,100) : digunakan untuk membuat posisi window pada


layar berada pada sumbu X 100 dan sumbu Z 100.

4. Kembangkan program sehingga fungsi main menjadi :

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

void renderScene(void){
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(5);
glBegin(GL_POINTS);
glVertex3f(0.0,0.0,0.0);//a
glEnd();
glFlush(); }

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


glutInit(&argc, argv);

glutInitDisplayMode (GLUT_DEPTH|GLUT_SINGLE| GLUT_RGBA);


glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("Pemrograman Grafis GLUT");
glutDisplayFunc(renderScene);
glutMainLoop(); }

Fungsi dari :
 glClear (GL_COLOR_BUFFER_BIT) : membersihkan semua pixel
 glPointSize(…) : besar kecilnya titik yg akan dihasilkan
 glBegin(GL_POINTS) : Mulai menggambar titik
 glEnd ( ) : penggambaran selesai
 glFlush ( ) : untuk memastikan bahwa perintah gambar di eksekusi
Ouput :

5. Buatlah agar titik tersebut terletak pada posisi kiri atas, kanan atas, kiri bawah, kanan
bawah, dan tepat di tengah, dengan mengubah 2 parameter (x dany) pada fungsi
glVertex3f(x, y, z).
Berdasarkan percobaan di atas, Gambarkan sistem koordinat glut!

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

void renderScene(void){
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(5);
glBegin(GL_POINTS);

glVertex3f(-0.50,0.50,0.0);// kiri atas


glVertex3f(0.50,0.50,0.0);// kanan atas
glVertex3f(0.0,0.0,0.0);// tengah
glVertex3f(-0.50,-0.50,0.0);// kiri bawah
glVertex3f(0.50,-0.50,0.0);// kanan bawah
glEnd();
glFlush();

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

glutInitDisplayMode (GLUT_DEPTH|GLUT_SINGLE| GLUT_RGBA);


glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);

glutCreateWindow("Pemrograman Grafis GLUT");


glutDisplayFunc(renderScene);
glutMainLoop();
}

Output :

Gambaran sistem koordinat glut :

6. Dari program (no. 2 dan 4) ubahlah dimensi window aplikasi menjadi 640 x 640 (w x
h).Perhatikan tampilan gambar di dalam kanvas, bagaimana tampilannya dan beri
kesimpulan mengenai perubahan dimensi widow aplikasi tersebut!

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

void renderScene(void){
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(5);
glBegin(GL_POINTS);

glVertex3f(-0.50,0.50,0.0);// kiri atas


glVertex3f(0.50,0.50,0.0);// kanan atas
glVertex3f(0.0,0.0,0.0);// tengah
glVertex3f(-0.50,-0.50,0.0);// kiri bawah
glVertex3f(0.50,-0.50,0.0);// kanan bawah
glEnd();
glFlush();

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

glutInitDisplayMode (GLUT_DEPTH|GLUT_SINGLE| GLUT_RGBA);


glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("Pemrograman Grafis GLUT");
glutDisplayFunc(renderScene);
glutMainLoop();
}

Output :

Tampilannya menjadi lebih besar dan panjang ke bawah

7. Ubahlah program menjadi seperti di bawah ini.Eksekusi program tersebut, lakukan


eksperimen dengan mengubah nilai parameter yang ditunjuk oleh Hi-lite warna
merah.Jelaskan maksud dari fungsi gluOrtho2D(left,right,bottom,top)!

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

void renderScene(void){
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(-10.,10.,0.0);
glVertex3f(-10.0,0.0,0.0);
glVertex3f(0.0,0.0,0.0);
glEnd();
glFlush();
}
void main(int argc, char **argv){
glutInit(&argc, argv);

glutInitDisplayMode (GLUT_DEPTH|GLUT_SINGLE| GLUT_RGBA);


glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
gluOrtho2D(-50.0,50.0,-50.0,50.0);
glutCreateWindow("Pemrograman Grafis GLUT");
glutDisplayFunc(renderScene);
glutMainLoop();
}
Output :

E. Tugas Praktikum :

Buatlah aplikasi yang menampilkan 5 buah titik(gunakan sintaks pada no.2 dan 4 dimana
lokasi tiap titiknya anda tentukan sendiri. Dan window aplikasi berukuran panjang= 3 digit
NIM terakhir anggota 1 lebar= 3 digit NIM terakhir anggota 2 judul window= Nama
Anggota1 && Nama Anggota2

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

void renderScene(void){
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(5);
glBegin(GL_POINTS);
glVertex3f(0.0,0.20,0.0);
glVertex3f(0.0,0.40,0.0)
glVertex3f(0.0,0.0,0.0);
glVertex3f(0.0,-0.20,0.0);// kiri bawah
glVertex3f(0.20,-0.20,0.0);// kanan bawah
glEnd();
glFlush();
}

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


glutInit(&argc, argv);

glutInitDisplayMode (GLUT_DEPTH|GLUT_SINGLE| GLUT_RGBA);


glutInitWindowPosition(100,100);
glutInitWindowSize(223,218);
glutCreateWindow("Hanifatus dan Neny");
glutDisplayFunc(renderScene);
glutMainLoop();
}

Output :
F. Kesimpulan
Setelah mengerjakan Latihan dan Tugas Praktikum , Mahasiswa dapat memahami cara
pembuatan koordinat titik dengan glut dalam Microsoft Visual Studio.

G. Rujukan
Modul Ajar Praktikum Grafika Komputer 1

Anda mungkin juga menyukai