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. glutInitWindowPosition100,100 artinya, membuat windows dengan
posisi diletakkan pada titik kiri atas jendela pada layar computer. glutInitWindowSize320,320 artinya membuat windows dengan ukuran 320,320.
Point:
1. Pada fungsi main terdapat statement glutDisplayFuncrenderScene; 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 { glutInitargc, argv;
glutInitDisplayModeGLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA; glutInitWindowPosition100,100;
glutInitWindowSize320,320; glutCreateWindow
GLUT : Harits Ar Rosyid ;
glutMainLoop; }
Screen shoot :
Penjelasan :
- Jika glutDisplayFuncrenderscene 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 glutDisplayFuncrenderScene; 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 { glutInitargc, argv;
glutInitDisplayModeGLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA; glutInitWindowPosition90,90;
glutInitWindowSize320,320; glutCreateWindow
GLUT : Harits Ar Rosyid ;
glutDisplayFuncrenderScene; glutMainLoop;
}
Screen shoot:
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 {
glClearGL_COLOR_BUFFER_BIT; glBeginGL_TRIANGLES;
glVertex3f-0.5,-0.5,0.0; a
glVertex3f0.5,0.0,0.0; b
glVertex3f0.0,0.5,0.0; c
glEnd; glFlush;
} void
main int
argc, char
argv {
glutInitargc, argv; glutInitDisplayModeGLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA;
glutInitWindowPosition90,90; glutInitWindowSize320,320;
glutCreateWindow GLUT : Harits Ar Rosyid
; glutDisplayFuncrenderScene;
glutMainLoop; }
Screen shoot :
Penjelasan :
- Menggunakan fungsi glutClearGL_COLOR_BUFFER_BIT yang artinya mendefinisikan
warna dari windows yang dibuat.Menggunakan fungsi glVertex3f yang artinya Vertex adalah nama fungsi kemudian 3f adalah dimensi yang akan dibentuk dalam parameter koordinat x,y dan
z. fungsi glBeginGL_TRIANGLE artinya adalah fungsi untuk membuat objek dengan bentuk segitiga dan setelah itu diikuti dengan fungsi glVertex3f dengan parameter titik koordinat yang
membentuk sebuah segitiga. Kemudian program diatas mengganti judul windows yang sebelumnya menjadi “Glut : Harits Ar Rasyid” dengan cara hanya mengubah parameter yang
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 glVertex3fa, b, c. Sajikan screenshot
eksekusi program Syntax :
include stdlib.h
include glut.h
void renderScene
void {
glClearGL_COLOR_BUFFER_BIT; glBeginGL_TRIANGLES;
glVertex3f1.0,1.0,0.0; a
glVertex3f1.0,0.5,0.0; b
glVertex3f0.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
glVertex3f1.0,-1.0,0.0; a
glVertex3f1.0,-0.5,0.0; b
glVertex3f0.5,-1.0,0.0; c
glVertex3f-0.5,-0.5,0.0; a
glVertex3f-0.5,0.5,0.0; b
glVertex3f0.5,-0.5,0.0; c
glEnd; glFlush;
} void
main int
argc, char
argv {
glutInitargc, argv; glutInitDisplayModeGLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA;
glutInitWindowPosition100,100; glutInitWindowSize320,320;
glutCreateWindow GLUT : Harits Ar Rosyid
; glutDisplayFuncrenderScene;
glutMainLoop; }
Screen shoot :
Penjelasan :
- Program diatas menampilkan 5 objek segitiga siku- siku. Program diatas menggunakan 15 fungsi
glVertex untuk 5 objek dengan masing-masing objek terdiri dari 3 titik 3 fungsi glVertex sehingga untuk satu objek dibutuhkan 3 fungsi glVertex untuk dapat menggambarkan objeknya
pada windows. Program diatas dibuat dengan ukuran size 320,320 dan posisi windows dengan ukuran 100,100.
glVertex3f1.0,1.0,0.0; a
glVertex3f1.0,0.5,0.0; b
glVertex3f0.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 glVertex3f1.0,-1.0,0.0;
a glVertex3f1.0,-0.5,0.0;
b glVertex3f0.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
glVertex3f0.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 {
glClearGL_COLOR_BUFFER_BIT; glBeginGL_TRIANGLES;
glVertex3f1.0,1.0,0.0; a
glVertex3f1.0,0.5,0.0; b
glVertex3f0.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
glVertex3f1.0,-1.0,0.0; a
glVertex3f1.0,-0.5,0.0; b
glVertex3f0.5,-1.0,0.0; c
glVertex3f0.0,0.0,0.0; a
glVertex3f0.0,0.0,0.0; b
glVertex3f0.0,0.0,0.0; c
glEnd; glFlush;
} void
main int
argc, char
argv {
glutInitargc, argv; glutInitDisplayModeGLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA;
glutInitWindowPosition100,100; glutInitWindowSize640,640;
glutCreateWindow GLUT : Harits Ar Rosyid
; glutDisplayFuncrenderScene;
glutMainLoop; }
Screen shoot :
Penjelasan :
- Program diatas merupakan modifikasi dari program point 4. Yaitu memperbesar size windows
menjadi 640, 640 sehingga ukurannya menjadi lebih besar. Jauh berbeda dengan hasil dari point 4 perbandingannya 2kali lipat dari point 4. Sehingga hasil menjadi tampak lebih jelas.
6. Ubahlah program menjadi seperti di bawah ini. tambahan tampak pada
tanda. Ubahlah nilai nilai parameter pada glVertex3fa, b, c; dari bernilai 10
dan -10 menjadi nilai maksimal 50 dan -50. Sajikan screeshot-nya dan buatlah kesimpulan yang berhubungan dengan fungsi
gluOrtho2Dleft,right,bottom,top.
Syntax : syntax awal
include stdlib.h
include glut.h
void renderScene
void {
glClearGL_COLOR_BUFFER_BIT; glBeginGL_TRIANGLES;
glVertex3f-0.5,0.0,0.0; a
glVertex3f0.5.0,0.0,0.0; b
glVertex3f0.0,0.5,0.0; c
glEnd; glFlush;
} void
main int
argc, char
argv {
glutInitargc, argv; glutInitDisplayModeGLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA;
glutInitWindowPosition100,100; glutInitWindowSize320,320;
glutCreateWindow GLUT : Harits Ar Rosyid
; gluOrtho2D-50.0,50.0,-50.0,50.0;
glutDisplayFuncrenderScene; glutMainLoop;
}
setelah modifikasi mengubah nilai parameter glVertex3fa,b,c menjadi 50 dan -50
include stdlib.h
include glut.h
void renderScene
void {
glClearGL_COLOR_BUFFER_BIT; glBeginGL_TRIANGLES;
glVertex3f-50.0,50.0,0.0; a
glVertex3f-50.0,0.0,0.0; b
glVertex3f0.0,0.0,0.0; c
glEnd; glFlush;
} void
main int
argc, char
argv {
glutInitargc, argv; glutInitDisplayModeGLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA;
glutInitWindowPosition100,100; glutInitWindowSize320,320;
glutCreateWindow GLUT : Harits Ar Rosyid
; gluOrtho2D-50.0,50.0,-50.0,50.0;
glutDisplayFuncrenderScene; 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
glVertex3f0.5.0,0.0,0.0; b
glVertex3f0.0,0.5,0.0; c
letak objek ini berada di tengah antara kordinat 1 dan 2. Sedangkan pada program setelah modifikasi menggunakan fungsi pembuatan objek segitiga
dengan koordinat
glVertex3f-50.0,50.0,0.0; a
glVertex3f-50.0,0.0,0.0; b
glVertex3f0.0,0.0,0.0; c
otomatis letak dan besarnya pun berbeda, letaknya menjadi pinggir atas tentu dengan lebar koordinat yang jauh lebih besar. Keduanya menggunakan fungsi
gluOrtho2D-50.0,50.0,- 50.0,50.0;
Yang fungsinya untuk mengatur volume tampilan pada windows. Fungsi ini berfungsi untuk mendefinisikan besarnya system koordinat dengan range sumbu
xleft, right dan sumbu y bottom, top.
F. TUGAS ASISTENSI