Grafika Komputer
Dosen Pembimbing :
Muhammad Sonhaji Akbar, S.Pd, M.Kom
Oleh :
Neny Setyo Fany (1655202018)
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
- 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.
- 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
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
9. Pilih Win32 > Win32 Console Aplication dan beri nama Prak1 > OK
10. Klik Aplication Setting > pilih empyt projek > Finish
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
void renderScene(void){
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 :
void renderScene(void){
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 :
#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(); }
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);
}
void main(int argc, char **argv){
glutInit(&argc, argv);
Output :
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);
}
void main(int argc, char **argv){
glutInit(&argc, argv);
Output :
#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);
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();
}
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