LAPORAN PRAKTIKUM
GRAFIKA KOMPUTER DAN MULTIMEDIA
OLEH :
NAMA : MURNIATI
NIM : 1220305011
KELAS : M3-Pagi
JURUSAN : TEKNIK ELEKTRO
PRODI : TMJK
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI LHOKSEUMAWE
LEMBARAN PENGASAHAN
Judul Praktikum : "Membuat titik melalui OpenGL"
No. Praktikum : 01/M3/TMJ/2015
Nama : Murniati
NIM : 1220305011
Kelas/Semester : M3 / VI (Genap)
Jurusan/Prodi : Teknik Elektro / TMJ
Pemeriksa : Mursyidah, ST. MT
Tanggal Pengesahan : 23 Februari 2015
Mahasiswa( Murniati )Nim. 1220305011Mengetahui,Dosen Pengajar(Mursyidah, ST. MT )Nip.
Mahasiswa
( Murniati )
Nim. 1220305011
Mengetahui,
Dosen Pengajar
(Mursyidah, ST. MT )
Nip.
PRAKTIKUM 1
I. Tujuan :
Mempersiapkan Instalasi library OpenGL pada komputer saya
Mempelajari dan membuat main program tempat event-driven menggunakan OpenGL
Mempelajari dan membuat main program untuk mempersiapkan window drawing menggunakan OpenGL
Mempelajari dan membuat gambar menggunakan primitive fungsi OpenGL
II. Dasar Teori
Pengenalan OpenGL
OpenGL adalah suatu spefikasi grafik yang low-level yang menyediakan fungsi untuk pembuatan grafik primitif termasuk titik, garis, dan lingkaran. OpenGL digunakan untuk keperluan-keperluan pemrograman grfis.OpenGL bersifat Open-Source, multi-platform dan multi-language serta digunakan mendefinisikan suatu objek, baik objek 2 dimensi maupun objek 3 dimensi. OpenGL juga merupakan suatu antarmuka pemrograman aplikasi (application programming interface (API) yang tidak tergantung pada piranti dan platform yang digunakan, sehingga OpenGL dapat berjalan pada sistem operasi Windows, UNIX dan sistem operasi lainnya.
OpenGL pada awalnya didesain untuk digunakan pada bahasa pemrograman C/C++, namun dalam perkembangannya OpenGL dapat juga digunakan dalam bahasa pemrograman yang lain seperti Java, Tcl, Ada, Visual Basic, Delphi, maupun Fortran. Namun OpenGL di-package secara berbeda-beda sesuai dengan bahasa pemrograman yang digunakan.
OpenGl melayani dua 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).
Cara kerja openGL
OpenGL lebih mengarah pada prosedural daripada sebuah deskriptif API grafis.Untuk mendeskripsikan scene dan bagaimana penampilannya,sebenarnya programer lebih tau untuk menentukan hal-hal yang dibutuhkan untuk menghasilkan efek yang di inginkan.Langkah tersebut termasuk memanggil banyak perintah openGL,perintah tersebut digunakan untuk menggambarkan grafis primitif seperti titik,garis dan poligon dalam tiga dimensi.Sebagai tambahan,openGL mendukung lighting,shading,texture mapping,blending,transparancy,dan banyak kemampuan efek khusus lainnya.
OpenGL mempunyai bnayak fungsi dan penggunaan perintah yang sangat luas, penggunaan openGL membutuhkan library tambahan yang harus di letakkan pada direktory system dari windows (OS),yaitu :
OpenGL32.dll
Glu32.dll
Glut32.dll
Pengenalan GLUT
Sistem Koordinat didalam laptop ada 3 yaitu :
- Open GL
- Sistem Operasi
Mengikuti resolusi (variabel)
- Fisik (bersifat statis)
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, dan lain-lain.
Klasifikasi Fungsi :
- Primitive : berupa geometric, images
- Attribute : berupa color, line type, light, texture
- Viewing : berupa virtual camera
- Control : turn fuction ON / OFF
- Windowing : window, mouse, keyboard
Peralatan
Pada praktikum ini saya menggunakan laptop dan software yaitu :
1 Unit Laptop Lenovo Z475
Microsoft Visual Studio 2010
Contoh laporan yang telah di berikan sebelumnya
Percobaan
Untuk melakukan praktikum dapat mengikuti langkah-langkah / perintah di bawah ini :
Jalankan program visual studio 2010 pada komputer.
Tunggu hingga program terbuka.
Klik menu File > pilih New > Klik Project.
Setelah keluar jendela project pilih Visual C++ > Win32 Console Application.
Tuliskan Nama project dan pilih lokasi tempat menyimpan file project.
Pada Jendela perintah ini pilih Next.
Kemudian pilih Empty Project.
Dan klik Finish.
Lalu klik Kanan pada project dan pilih Add > New Item
Memilih Visual C++ > lalu klik C++ file(.cpp)
Menuliskan Nama file dan Pilih lokasi penyimpanan.
Klik finish.
Setelah pengaturan area kerja selesai maka memasukkan syntax program
Membuat satu titik
#include
void userdraw(void);
void drawDot(float x, float y)
{
glBegin(GL_POINTS) ;
glVertex2f(250,50) ;
glEnd() ;}
void setColor(float red, float green, float blue)
{glColor3f(red, green, blue);}
void userdraw()
{ glPointSize(8);
setColor (5.,0.,0.);
for(int i=0; i<20;i+=5)
{ for(int j=0; j<20;j+=5)
{
drawDot(10.0+i,10.0+j);}}}
void display(void)
{ //clear screen
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();}
int main (int argc,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode( GLUT_DOUBLE " GLUT_RGB );
glutInitWindowSize(640,480);
glutInitWindowPosition(100,150);
glutCreateWindow ("Desain by Murniati " 1220305011");
glClearColor(1.0,1.0,1.0,0.0);
gluOrtho2D(0.,640.,-240.,240.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;}
Membuat banyak titik
#include
void userdraw(void);
void drawDot(float x, float y)
{
glBegin(GL_POINTS) ;
glVertex2f(x,y) ;
glEnd() ;}
void setColor(float red, float green, float blue)
{
glColor3f(red, green, blue);}
void userdraw()
{ glPointSize(3);
setColor (5.,0.,0.);
for(int i=0; i<25;i+=5)
{ for(int j=0; j<20;j+=5)
{
drawDot(10.0+i,10.0+j);
}}}
void display(void)
{ //clear screen
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();}
int main (int argc,char**argv)
{ glutInit(&argc,argv);
glutInitDisplayMode( GLUT_DOUBLE " GLUT_RGB );
glutInitWindowSize(640,480);
glutInitWindowPosition(100,150);
glutCreateWindow ("Murni " 1220305011");
glClearColor(1.0,1.0,1.0,0.0);
gluOrtho2D(0.,640.,-240.,240.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;}
#include
void userdraw(void);
void drawDot(float x, float y)
{
glBegin(GL_POINTS);
glVertex2f(x,y);
glEnd();
}
void setColor(float red, float green, float blue)
{
glColor3f(red, green, blue);
}
void userdraw()
{glPointSize(4);
setColor(5.,0.,0.);
for(int i=0; i<20;i+=10)
{
for(int j=0;j<200;j+=20)
{
drawDot(30.0+i,10.0+j);
drawDot(20.0+i,30.0+j);
drawDot(10.0+i,50.0+j);
drawDot(130.0+i,10.0+j);
drawDot(120.0+i,30.0+j);
drawDot(110.0+i,50.0+j);
drawDot(230.0+i,10.0+j);
drawDot(220.0+i,30.0+j);
drawDot(210.0+i,50.0+j);
}}}
void display (void)
{
glClear(GL_COLOR_BUFFER_BIT);
userdraw();
glutSwapBuffers();
}
int main (int argc,char**argv)
{
glutInit (&argc,argv);
glutInitDisplayMode (GLUT_DOUBLE " GLUT_RGB);
glutInitWindowPosition (100,100);
glutInitWindowSize (640,480);
glutCreateWindow ("Drawing by Murni");
glClearColor(1.0,1.0,1.0,0.0);
gluOrtho2D(0.,640.,-240.,240.);
glutIdleFunc(display);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
ANALISA
#include
Pemrograman grafis menggunakan OpenGL-GLUT membutuhkan header glut.h yang ada difolder c:\Program Files\Microsoft Visual Studio\VC98\bin\GL
void userdraw(void);
Fungsi userdraw adalah suatu fungsi untuk membuat kode program untuk menghasilkan suatu gambar.
glutInitWindowPosition (100,100);
glutInitWindowSize (640,480);
Membuat windows dengan ukuran(640,480) dengan titik kiri atas jendela diletakkan pada posisi(100,100) dilayar computer
glClearColor(1.0,1.0,1.0,0.0);
Mendefinisikan warna dari windows yang dibuat dengan warna(1,1,1) yaitu warna putih . Perintah diatas digunakan untuk memilih warna dalam membersihkan latar belakang dalam mode RGBA (Red, Green, Blue, Alpha).
gluOrtho2D(0.,640.,-240.,240.);
Mendefinisikan besarnya system koordinat dengan range sumbu x adalah[0,640] dan range untuk sumbu y adalah[-240,240]
glClearColor (GL_COLOR_BUFFER_BIT);
Perintah diatas digunakan untuk membersihkan layar latar belakang dengan warna hitam dan buffer warna apa saja yang akan dibersihkan sebagai tempat menyimpan gambar yang akan dibuat.
userdraw();
perintah untuk memanggil fungsi userdraw()
glutSwapBuffers();
Perintah digunakan untuk menampilkan hasil garis ke layar.
int main (int argc,char**argv)
{
glutInit (&argc,argv);
untuk inisialisasi GLUT dengan parameter baris perintah
glutInitDisplayMode (GLUT_DOUBLE " GLUT_RGB);
untuk seting display mode
KESIMPULAN
Dari praktikum diatas dapat saya simpulkan bahwa dalam membuat objek grafis pada visual studio haruslah didasari dengan mengetahui sintax dasar yang membentuk sebuah titik dan untuk membentuk suatu kumpulan titik yang tertata tertentu misalnya membuat jumlah titik pada layar haruslah mengerti bagaimana merubah koordinat dari objek tersebut hingga menampilkan berapa jumlah titik yang akan muncul dan ukuran nya . Dimana diketahui bahwa OpenGL bersifat Open-Source, multi-platform dan multi-language serta digunakan mendefinisikan suatu objek, baik objek 2 dimensi maupun objek 3 dimensi. Dalam membuat titik tersebut tentu harus mengetahui dan mempelajari bahasa c++ kode dasar dalam visual studio. Untuk membuat sebuah gambar di OpenGL,kita harus menggunakan logika dimana harus bisa membayangkan sebuah garis kartesian yang mana terdapat sumbu x,y (untuk 2 Dimensi) dan x,y,z (untuk 3 Dimensi).
DAFTAR PUSTAKA
http://academia.edu
http://iamfunnyfany.blogspot.com/2012/10/membuat-garis-vertikal-horisontal-dan.html
Modul Praktikum