BAB 3
Perangkat lunak yg mendukung pembuatan grafik 2D/3D adalah
openGL
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 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 dan Informasi Umum
OpenGL adalah API yang dikenalkan oleh SGI (Silicon Graphics
Inc) kali pertama pada tahun 1980-an. Awalnya OpenGL diciptakan untuk mendukung
proses rendering yang hanya mendukung proses rendering untuk komputer graphic
produksi SGI. Namun akhirnya, OpenGL dijadikan standar oleh berbagai perusahaan
software dan hardware. API singkatan dari Application Program Interface. API
adalah interface yang digunakan oleh aplikasi-aplikasi 3D (tiga dimensi) .
OpenGL adalah suatu library grafis standar yang digunakan
untuk keperluan-keperluan pemrograman grafis. Sebenarnya ada banyak library
pemrograman grafis disini selain openGL, misalnya DirectX. OpenGL ini bersifat
Open-Source, multi-platform dan multi-languange. Selain itu openGL mendukung
semua bahasa pemrograman dan dapat bekerja di lingkungan Windows, Unix, SGI,
Linux, freeBSD, dll. Library dasar dari openGL adalah GLUT , GLUT
disini ialah fasilitas library yang dapat dikembangkan. Untuk sistem operasi
Windows, library ini terdiri dari 3 file, yaitu :
- glut.h
- glut32.lib
- glut32.dll
- glut32.lib
- glut32.dll
OpenGL menghilangkan kebutuhan untuk pemrogram untuk menulis
ulang bagian grafis dari sistem operasi setiap kali sebuah bisnis akan
diupgrade ke versi baru dari sistem. Fungsi dasar dari OpenGL adalah untuk
mengeluarkan koleksi perintah khusus atau executable ke sistem operasi. Dengan
demikian, program ini bekerja dengan perangkat keras grafis yang ada yang
berada pada hard drive atau sumber day tertentu lainnya. Setiap perintah
dirancang untuk melakukan tindakan tertentu, atau memulai efek khusus tertentu
yang terkait dengan grafis.
Membuat perintah dalam OpenGL dapat terjadi dalam dua cara
yang berbeda. Pertama, adalah mungkin bagi programmer untuk membuat dan
menyimpan daftar perintah yang dapat dieksekusi secara berulang. Ini adalah
salah satu cara yang lebih rutin untuk program interface yang digunakan.
Seiring dengan berkembangnya perintah-perintah yang kurang lebih permanen, maka
memungkinkan untuk membuat dan menjalankan salah satu perintah dalam
batas-batas waktu dari komputer grafis. Seiring dengan kemampuan interface dari
sistem operasi, OpenGL juga menyediakan beberapa built-in protokol yang mungkin
berguna bagi pengguna akhir. Di antaranya fitur alat seperti alpha blending,
pemetaan tekstur, dan efek atmosfer. Alat ini dapat berinteraksi dengan sistem
operasi yang sedang digunakan.
GLUT
The OpenGL Utilitas Toolkit ( GLUT ) adalah perpustakaan
utilitas untuk program OpenGL , yang terutama melakukan sistem tingkat I / O
dengan sistem operasi host . Fungsi yang dilakukan meliputi definisi jendela ,
jendela kontrol, dan monitoring keyboard dan masukan mouse . Rutinitas untuk
menggambar sejumlah primitif geometris ( baik dalam modus padat dan wireframe )
juga disediakan , termasuk kubus , bola , dan teko Utah . GLUT juga memiliki
beberapa dukungan terbatas untuk membuat menu pop - up .
GLUT ditulis oleh Mark J. Kilgard , penulis OpenGL
Programming untuk X Window System dan The Cg Tutorial : The Definitive Guide to
Programmable Real-Time Graphics , ketika ia bekerja untuk Silicon Graphics Inc
Dua tujuan dari GLUT adalah untuk memungkinkan penciptaan
kode lebih portabel antara sistem operasi ( GLUT adalah cross -platform ) dan
untuk membuat OpenGL belajar lebih mudah . Memulai dengan pemrograman OpenGL
saat menggunakan GLUT sering hanya membutuhkan beberapa baris kode dan tidak
memerlukan pengetahuan tentang sistem operasi khusus API windowing .
Semua fungsi GLUT mulai dengan awalan mengenyangkan (
misalnya , glutPostRedisplay menandai jendela saat ini sebagai yang perlu
digambar ulang ) .
Implementasi
The original GLUT perpustakaan oleh Mark Kilgard mendukung X
Window System (GLX) dan porting ke Microsoft Windows (WGL) oleh Nate Robins.
Selain itu, OS X kapal dengan kerangka yang mendukung GLUT sendiri NSGL / CGL.
Library GLUT Kilgard ini tidak lagi dipertahankan, dan
lisensi tidak mengizinkan redistribusi versi modifikasi dari perpustakaan. Hal
ini mendorong kebutuhan untuk perangkat lunak bebas atau open source
reimplementations dari API dari awal. Perpustakaan tersebut pertama freeglut,
yang bertujuan untuk menjadi reproduksi cukup dekat, meskipun memperkenalkan
sejumlah kecil fungsi baru untuk menangani keterbatasan GLUT itu. OpenGLUT,
garpu dari freeglut, menambahkan sejumlah fitur baru untuk API asli, tetapi
bekerja pada itu berhenti pada Mei 2005.
keterbatasan
Beberapa keputusan desain asli GLUT yang membuatnya sulit
bagi programmer untuk melakukan tugas-tugas yang diinginkan . Hal ini
menyebabkan banyak untuk membuat patch non - canon dan ekstensi untuk GLUT . [
1 ] Beberapa perangkat lunak bebas atau open source reimplementations juga
mencakup perbaikan .
Beberapa keterbatasan yang lebih penting dari perpustakaan
GLUT asli meliputi:
Perpustakaan membutuhkan programmer untuk memanggil
glutMainLoop ( ) , fungsi yang tidak pernah kembali . Hal ini membuat sulit
bagi programmer untuk mengintegrasikan GLUT ke dalam program atau perpustakaan
yang ingin memiliki kontrol loop acara sendiri . Sebuah patch umum untuk
memperbaiki ini adalah untuk memperkenalkan fungsi baru, yang disebut
glutCheckLoop ( ) ( Mac OS X ) atau glutMainLoopEvent ( ) ( freeglut / OpenGLUT
) , yang berjalan hanya iterasi tunggal dari GLUT loop acara . Solusi lain yang
umum adalah untuk menjalankan loop acara GLUT di thread terpisah , meskipun hal
ini dapat bervariasi oleh sistem operasi , dan juga dapat memperkenalkan
masalah sinkronisasi atau masalah lain : misalnya , pelaksanaan X GLUT Mac OS
mengharuskan glutMainLoop ( ) dijalankan dalam thread utama .
Fakta bahwa glutMainLoop ( ) tidak pernah kembali juga
berarti bahwa program GLUT tidak bisa keluar dari lingkaran event . freeglut
perbaikan ini dengan memperkenalkan fungsi baru , glutLeaveMainLoop ( ) .
Perpustakaan mengakhiri proses ketika jendela ditutup ,
karena beberapa aplikasi ini mungkin tidak diinginkan . Dengan demikian ,
banyak implementasi mencakup callback tambahan , seperti glutWMCloseFunc ( ) .
Karena tidak lagi dipertahankan ( dasarnya digantikan oleh
freeglut open source ) masalah desain di atas masih belum diselesaikan dalam
GLUT asli .
daftar pustaka