OPENGL
1. Pengertian OpenGL
OpenGL (Open Graphics
Library) adalah suatu spefikasi grafik yang low-level yang menyediakan fungsi
untuk mempermudah pekerjaan atau untuk keperluan – keperluan pemrograman grafis
(Graphics Programming / GP), termasuk grafik primitif (titik, garis, dan
lingkaran). OpenGL(Open Graphic Library) adalah sebuah library terdiri dari
berbagai macam fungsi dan biasanya digunakan untuk menggambar sebuah objek 2D
ata 3D. OpenGL bersifat Open-Source, multi-platform dan multi-language.
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,SGI, Linux, frreBSD 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
2. Sejarah OpenGL
Tahun 1980-an,
mengembangkan perangkat lunak yang dapat berfungsi dengan berbagai hardware
grafis adalah tantangan nyata. Pengembang perangkat lunak antarmuka dan
kebiasaan menulis driver untuk setiap perangkat keras yang menjadikannya
semakin mahal dan mengakibatkan banyak duplikasi.
OpenGL Dikembangkan
oleh Silicon Graphics (SGI) pada tahun 1990-an. Pendahulu
openGL adalah IRIS GL dari Silicon Grapics, yang pada awalnya
berupa GL(Glut Library) 2D, yang berevolusi menjadi API program 3D
untuk workstation canggih milik perusahaan tersebut.
OpenGL adalah hasil
dari usaha SGI untuk mengembangkan dan meningkatkan kemampuan portable IRIS.
API grafis yang baru akan menawarkan kemampuan IRIS GL tetapi dengan standar
yang lebih terbuka, dengan input dari pembuatan hardware lain dan sistem
operasi lain, dan akan memudahkan adaptasi ke hardware platform dan sistem
operasi lain. SGI menganggap bahwa IrisGL API itu sendiri tidak cocok untuk
membuka karena masalah lisensi dan paten. Juga, IrisGL memiliki fungsi-fungsi
API yang tidak relevan dengan grafis 3D. Sebagai contoh, termasuk windowing,
keyboard dan mouse API, sebagian karena dikembangkan sebelum Sistem X Window
dan Sun’s NEWS sistem dikembangkan.
Untuk lebih
mempopulerkan openGL SGI mengijinkan pihak lain untuk mengembangkan standart
openGL,dan beberapa vendor menyambut hal tersebut dengan membentuk OpenGL Architecture
Review Board (ARB).
Pendiri openGL adalah
SGI, Digital Equepment Corporation, IBM, Intel dan Microsoft, pada tanggal 1
juli 1992 OpenGL versi 1.0 diperkenalkan.
Tahun 1994 SGI
mengeluarkan gaggasan yang disebut “OpenGL + +” yang mencakup unsur-unsur
seperti grafik adegan-API (mungkin berbasis di sekitar mereka Performer
teknologi). Spesifikasi itu beredar di kalangan beberapa pihak yang
berkepentingan – tetapi tidak pernah berubah menjadi sebuah produk pada tahun
1995, yang akan menjadi pesaing utama dari OpenGL. Pada tanggal 17 Desember
1997 Microsoft dan SGI memprakarsai Fahrenheit proyek, yang merupakan upaya
bersama dengan tujuan mempersatukan OpenGL dan Direct3D antarmuka (dan
menambahkan adegan-API grafik juga). Pada tahun 1998 Hewlett-Packard bergabung
dengan proyek ini. Ini awalnya menunjukkan beberapa janji untuk membawa dunia
komputer grafis 3D interaktif API, melainkan karena kendala keuangan di SGI,
alasan strategis di Microsoft, dan kurangnya dukungan industri , itu
ditinggalkan pada tahun 1999.
OpenGL mengalami
beberapa revisi yang sebagian besar ada penambahan ektensi secara
berangsur-angsur pada main body dari API. Contohnya OpenGL 1.1 (1997) ada
penambahan glBindTexture. OpenGL 2.0 (2004) memasukkan tambahan yang paling
penting yaitu OpenGL Shading Language (GLSL).
GLUT (GL Utility
Toolkit)
1. Pengertian
Dikarenakan OpenGL
tidak menyediakan interface sistem window ataupun input, maka untuk tujuan ini
aplikasi harus mengunakan keseragaman spesifik platform. Dengan demikian jika
aplikasi yang diinginkan tidak hanya berjalan di satu platfrom saja, maka perlu
menggunakan GLUT
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 .
GLUT dikembangkan oleh
Mark Kilgard, yaitu penulis OpenGL Programming for the X Window System dan The
Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics, ketika
dia masih bekerja di Silicon Graphics.
Dua tujuan GLUT ialah
menciptakan fleksibitas code antar platform yang dapat dijalankan lebih dari
satu sistem operasi (Windows, Linux, Mac OS X, FreeBSD, OpenBSD, NetBSD), dan
untuk lebih mudah mempelajari OpenGL. Dengan menggunakan GLUT hanya memerlukan
sedikit code dibandingkan dengan OpenGL, tanpa mengetahui spesifikasi sistem
operasi, dikarenakan OpenGL adalah sebagai mesin.
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.
Untuk pemrograman
OpenGL menggunakan C++, diperlukan library tambahan
yaitu :
1.
glut.h yang dicopy ke
drive:\Program Files\Microsoft Visual Studio 2010\Vc\include\GL
2.
glut32.lib yang dicopy ke
drive:\Program Files\Microsoft Visual Studio 2010\Vc\lib
3.
glut32.dll yang dicopy ke
drive:\Windows\System
3. Menejemen 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.
4. Windowing
dengan GLUT
Display Callback
1.
glutDisplayFunc(void(*func)(void))
Fungsi ini memanggil
fungsi lain yg menentukan konten dari windows yg telah di buat sebelumnya.
2.
glutPostRedisplay(void)
Untuk mengubah konten
window
3.
glutMainLoop(void)
Fungsi untuk event perulangan, display
pada callback akan terus ditampilkan selama aplikasi itu tidak ditutup.
ConversionConversion EmoticonEmoticon