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 .