Grafika Komputer : OpenGL & GLUT - Pertemuan 14

  Pertemuan 14

OpenGL & GLUT

Sejarah OpenGL
Pada awal tahun 90-an Silicon Graphics (SGI) adalah sebuah perusahaan yang memimpin dalam aplikasi berbasis grafik 3D untuk workstation. Mereka menggunakan API yang disebut IRIS GL untuk workstation mereka. IRIS GL adalah milik perangkat keras SGI dan bukan standar "terbuka". API dianggap mudah digunakan dan juga mendukung render mode langsung.
Pada saat itu vendor yang bersaing, termasuk Sun Microsystems, IBM dan Hewlett-Packard juga membawa 3D perangkat keras di pasaran. Mereka menggunakan API lain yang disebut PHIGS. (Dalam fungsi dan kemampuan IRIS GL lebih unggul dari PHIGS)
SGI memutuskan mengubah IRIS GL menjadi standar terbuka tetapi karena terkendala masalah lisensi dan paten, mereka membuat API baru berdasarkan IRIS GL yang disebut OpenGL. Pada tahun 1992, SGI memimpin pembentukan dewan peninjau arsitektur OpenGL (ARB) yang terdiri dari SGI, Microsoft, IBM, DEC dan Intel. Peran OpenGL ARB adalah untuk menetapkan dan memelihara spesifikasi OpenGL. Tidak semua fitur khusus perangkat keras dapat diakses oleh versi OpenGL (Opengl default). Untungnya, pembuatan kartu video dapat dan memang menyediakan ekstensi OpenGL. Dengan ekstensi ini Anda dapat mengakses fitur khusus khusus perangkat keras.
Jika fitur ini digunakan oleh banyak vendor, ekstensi dapat menjadi tambahan resmi untuk standar OpenGL. (Dalam versi lama (OpenGL 1.2), fitur lanjutan (tambahkan waktu itu) diminta oleh pengembang game yang disebut multi-texturing).
Rilis OpenGL di masa mendatang akan semakin dipengaruhi oleh pengembang game dan industri game.

Overview OpenGL
❑ Open Graphics Library (OpenGL) merupakan spesifikasi standar yang mendefinisikan Application Programming Language (API) lintas-bahasa, lintas-platform. 
❑ OpenGL menyediakan programmer sebuah antarmuka ke perangkat keras grafis. 
❑ OpenGL adalah perangkat lunak perenderan dan pemodelan tingkat rendah yang kuat. 
❑ OpenGL dimungkinkan untuk menghasilkan aplikasi grafik 2D dan 3D. OpenGL secara luas digunakan dalam permainan video, CAD, aplikasi ilmiah, dll, di berbagai platform. Banyak game komersial, seperti seri Quake Perangkat Lunak ID.
❑ 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. 
❑ 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.
❑ OpenGL di-package secara berbeda-beda sesuai dengan bahasa pemrograman yang digunakan. Oleh karena itu, package OpenGL tersebut dapat di-download pada situs http://www.opengl.org sesuai dengan bahasa pemrograman yang akan digunakan.

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)
❑ Merupakan pengembangan dari OpenGL yang didesain untuk aplikasi dengan level kecil hingga menengah dan menggunakan callback functions untuk menambahkan interaksi dari user. 
❑ 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\ 
    ▪ libglut32.dll yang dicopy ke drive:\Windows\System 

Klasifikasi Fungsi
❑Primitive : berupa geometric, imagesAttribute : berupa color, line type, light, texture ❑Viewing : berupa virtual cameraControl : turn fuction ON / OFF 
❑Windowing : window, mouse, keyboard

Cara Kerja OpenGL 
OpenGL lebih mengarah pada prosedural daripada sebuah deskriptif API grafis dengan memanggil banyak perintah openGL, perintah tersebut digunakan untuk menggambarkan grafis primitif seperti titik,garis dan poligon dalam tiga dimensi.
OpenGL mendukung lighting, shading, texture mapping, blending, transparancy, dan banyak kemampuan efek khusus lainnya.
OpenGL mempunyai banyak fungsi dan penggunaan perintah yang sangat luas, penggunaan openGL membutuhkan library tambahan yang harus di letakkan pada direktory system dari windows (OS), yaitu: 
❑OpenGL32.dll 
❑Glu32.dll 
❑Glut32.dll

Library pada OpenGL
Fungsi asli dari OpenGL sendiri selalu diawali dengan gl yang terdapat pada library opengl32.dll dan file header gl.h
Fungsi-fungsi tambahan pada OpenGL adalah : 
❑ OpenGL Utility Library (GLU) terdapat sejumlah rutin yang menggunakan level bawah dari perintah OpenGL yang mempunyai awalan glu yang merupakan implementasinya 
❑ OpenGL Extension untuk X-Windows yang menyediakan fungsi untuk menciptakan OpenGL context dan mengasosiasikannya dengan mesin yang menggunakan XWindows. Rutin-rutin ini mempunyai awalan glx. 
❑ Auxiliary atau aux library terdapat pada library glaux.lib dan file header glaux.h. Perintah yang akan digunakan selalu menggunakan awalan aux

Inisialisasi OpenGL
Inti dari tahapan ini adalah mengatur view port dan persepektif untuk penampilan obyek ke dalam layar monitor.
Fungsi/prosedur yang digunakan: 
❑ LoadGlut(‘glut32.dll) - pemanggilan library openGL 
❑ InitGL – inisialisasi openGL awal yang harus dilakukan 
❑ glViewport – untuk pengaturan viewport 
❑ glMatrixMode – pengaturan viewport 
❑ gluPerspective – pengaturan persepektif

Contoh script inisialisasi OpenGL

Try
LoadGlut(‘glut32.dll’); 
InitGL; Exept on e := exeption 
do 
Begin 
        messageDlg{ e.message, mtError, 
        [mbOk],}; 
        Halt {1}; End; 
End;

Script di atas merupakan script yang paling sederhana, dalam artian minimal diperlukan untuk menginisialisasi penggunaan openGL.
Fungsi-fungsi lain seperti yang disebut diatas seperti glViewport, glMatrixMode, dapat di tambah kan pada script sesuai dengan kebutuhan.

Langkah-langkah OpenGL 
a. Install Microsoft Visual Studio.NET pada komputer anda 
b. Siapkan file OpenGL95.exe dan glut-3.7.6.zip pada direktori sementara 
c. Masukan 
    1. GL.H, GLAUX.H, GLU.H dan glut.h ke drive:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\gl 
    2. GLAUX32.LIB, GLU32.LIB, OPENGL32.LIB dan glut32.lib ke drive:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib 
    3. OPENGL32.DLL, GLU32.DLL dan glut32.dll ke drive:\Windows\System

Membuat program OpenGL sederhana 
a. Jalankan Visual Studio .NET, buatlah sebuah proyek dengan tipe Visual C++ Projects dan template Win32 Console Project. Beri nama sesuai selera anda. 
b. Pada Application Settings pilih Console Application dan Empty Project 
c. Pada Solution Explorer, klik kanan Source Files lalu Add - Add New Item,lalu pilih template C++ File (.cpp), beri nama menurut selera anda, klik Open. Pada layar akan terlihat halaman kosong 
d. Masukan program berikut:
#include <windows.h> 
#include <GL\glut.h> 
void display(void) 
glClear (GL_COLOR_BUFFER_BIT); 
glColor3f (1.0, 1.0, 1.0); 
glBegin(GL_POLYGON); 
glVertex3f (0.25, 0.25, 0.0); 
glVertex3f (0.75, 0.25, 0.0); 
glVertex3f (0.75, 0.75, 0.0); 
glVertex3f (0.25, 0.75, 0.0); 
glEnd(); glFlush (); 
int main(int argc, char** argv)
{
glutInit(&argc, argv); 
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); 
glutInitWindowSize (250, 250); 
glutInitWindowPosition (100, 100); 
glutCreateWindow ("Program Pertama OpenGL"); 
glClearColor (0.0, 0.0, 0.0, 0.0); 
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0); 
glutDisplayFunc(display); 
glutMainLoop(); 
return 0; 

e. Modifikasi Project Properties dengan memilih Project – Properties – All Configurations – Linker, masukkan opengl32.lib glu32.lib glut32.lib pada textboxAdditional Dependencies 
f. Jika diperlukan, agar console windows tidak dibuka pada saat menjalankan program (console output akan disabled), masukan /SUBSYSTEM: WINDOWS ENTRY:mainCRTStartup pada Linker – Command Line – Additional Options
Lakukan kompilasi terhadap program tersebut, hasilnya adalah sebagai berikut :



Komentar

Postingan populer dari blog ini

Grafika Komputer : PROYEKSI - Pertemuan 12

Grafika Komputer : DUNIA 3 DIMENSI - Pertemuan 13

Grafika Komputer : TRANSFORMASI 2 DIMENSI - Pertemuan 10