OpenGL & GLUT
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.
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).
Overview OpenGL
OpenGL adalah lingkungan utama
untuk mengembangkan aplikasi grafik 2D dan 3D yang portabel dan interaktif.
Sejak diperkenalkan pada tahun 1992, OpenGL telah menjadi antarmuka pemrograman
aplikasi grafis (API) 2D dan 3D yang paling banyak digunakan di industri dan
didukung, membawa ribuan aplikasi ke berbagai platform komputer. OpenGL
mendorong inovasi dan mempercepat pengembangan aplikasi dengan memasukkan
serangkaian luas rendering, pemetaan tekstur, efek khusus, dan fungsi
visualisasi canggih lainnya. Pengembang dapat memanfaatkan kekuatan OpenGL di
semua platform desktop dan stasiun kerja populer, memastikan penerapan aplikasi
yang luas.
Layanan OpenGL
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).
GLUT (GL Utility Toolkit)
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.
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 :
glut.h yang dicopy ke drive:\Program Files\Microsoft Visual
Studio 2010\Vc\include\GL
glut32.lib yang
dicopy ke drive:\Program Files\Microsoft Visual Studio 2010\Vc\lib
glut32.dll yang dicopy ke drive:\Windows\System
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.
Windowing dengan GLUT
Display Callback
glutDisplayFunc(void(*func)(void))
Fungsi ini memanggil fungsi lain yg menentukan konten dari
windows yg telah di buat sebelumnya.
glutPostRedisplay(void)
Untuk mengubah konten window
glutMainLoop(void)
Fungsi untuk event perulangan, display pada callback akan
terus ditampilkan selama aplikasi itu tidak ditutup.

Komentar
Posting Komentar