Selasa, 31 Desember 2013

"Desain Pemodelan Grafis T2 3 Erwin septianto,Bagus Deo,Fandi T -52411497, ERWIN SEPTIANTO"

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



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