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.
sumber : http://muhammadfarizal01.blogspot.com/2015/05/pengenalan-opengl-glut.html
0 komentar:
Posting Komentar