Pages

Minggu, 17 Januari 2016

PENGENALAN OPENGL

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. Ini mahal dan mengakibatkan banyak duplikasi usaha.

     Pada awal 1990-an, Silicon Graphics (SGI) adalah seorang pemimpin dalam grafis 3D untuk workstation. Mereka IRIS GL API dianggap keadaan seni dan menjadi standar industri de facto, membayangi terbuka berbasis standar PHIGS. Ini karena GL IRIS dianggap lebih mudah digunakan, dan karena itu mendukung modus langsung rendering. By contrast, Sebaliknya, PHIGS dianggap sulit untuk digunakan dan ketinggalan zaman dalam hal fungsionalitas.
SGI’s pesaing (termasuk Sun Microsystems, Hewlett-Packard dan IBM) juga dapat membawa ke pasar 3D hardware, didukung oleh ekstensi yang dibuat pada PHIGS standar. Hal ini pada gilirannya menyebabkan pangsa pasar SGI untuk melemahkan karena lebih banyak hardware grafis 3D pemasok memasuki pasar. Dalam upaya untuk mempengaruhi pasar, SGI memutuskan untuk mengubah IrisGL API menjadi standar terbuka. 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. Selain itu, SGI memiliki sejumlah besar pelanggan perangkat lunak; dengan mengubah ke OpenGL API mereka berencana untuk mempertahankan pelanggan mereka terkunci ke SGI (dan IBM) hardware untuk beberapa tahun sementara pasar dukungan untuk OpenGL matang. Sementara itu, SGI akan terus berusaha untuk mempertahankan pelanggan mereka terikat pada hardware SGI dengan mengembangkan maju dan kepemilikan Iris Inventor dan Iris Performer pemrograman API.
Akibatnya, SGI merilis standar OpenGL.

Pengenalan OpenGL

   OpenGL adalah suatu spefikasi grafik yang low-level yang menyediakan fungsi untuk pembuatan grafik primitif termasuk titik, garis, dan lingkaran. OpenGL digunakan untuk keperluan-keperluan pemrograman grfis.OpenGL bersifat Open-Source, multi-platform dan multi-language serta digunakan mendefinisikan suatu objek, baik objek 2 dimensi maupun objek 3 dimensi. 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 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. Oleh karena itu, package OpenGL tersebut dapat di-download pada situs
http://www.opengl.org sesuai dengan bahasa pemrograman yang akan digunakan.

OpenGl melayani dua tujuan :
•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).

SYNTAX OPENGL

Sintaks perintah OpenGL mengikuti aturan penulisan dari library dimana fungsi tersebut berasal, format penulisan fungsi OpenGL :
<awalanlibrary><perintah><optional jumlah argumen><optional tipe argumen>

Semua perintah OpenGL menggunakan awalan gl diikuti dengan huruf kapital pada setiap kata membentuk nama perintah (sebagai contoh glClearColor).

Untuk mendefinisikan konstanta diawali dengan GL_, dengan menggunakan huruf kapital dan garis bawah untuk memisahkan kata (seperti GL_POLY_STIPPLE).

Terkadang beberapa huruf dan angka ditambahkan pada akhir perintah (seperti 3f pada glVertex3f). Dalam hal ini angka 3 menunjukkan berapa banyak argumen yang harus ada pada perintah tersebut dan akhiran huruf f menunjukkan jenis datanya yaitu floating. 

Fungsi asli dari OpenGL sendiri selalu diawali dengan gl yang terdapat pada library opengl32.dll dan file header gl.h. Sedangkan beberapa library yang telah ditulis untuk menyediakan fungsi-fungsi tambahan pada OpenGL adalah :

OpenGL Utility Library (GLU) yang didalamnya terdapat sejumlah rutin yang menggunakan level bawah dari perintah OpenGL. Rutin-rutin ini mempunyai awalan glu. Library ini digunakan sebagai bagian dari implementasi OpenGL. 

Penggambaran Primitif Grafik Dasar

OpengGL menyediakan banyak fungsi untuk kebanyakan grafik primitif termasuk titik, garis
dan lingkaran. Masing-masing perintah atau fungsi dalam OpenGL mempunyai format dan
struktur  yang  sama.  Ini  memudahkan  untuk  mengetahui  bagaimana  jalannya  fungsi,
argumen  yang  dibutuhkan  untuk  melakukannya  dan  format  tipe  datanya.  Pada  tabel  1
menunjukan  contoh  perintah  OpenGL  yang  digunakan,  dan  tabel  2  menunjukan  format fungsi OpenGL


Tabel 1. Contoh-contoh Perintah dalam OpenGL
glBegin(GL_POINTS);               Titik                           Objek primitif
glBegin(GL_LINES);                 Garis                          Objek primitif
glBegin(GL_LINE_STRIP);        Poligaris                     Objek primitif
glBegin(GL_LINE_LOOP);          Poligaris tertutup         Objek primitif
glBegin(GL_TRIANGLES);          Segitiga                      Objek primitif
glBegin(GL_TRIANGLE_STRIP); Segitiga                     Objek primitif
glBegin(GL_TRIANGLE_FAN);     Segitiga                     Objek primitif
glBegin(GL_QUADS);                   Segiempat                 Objek primitif
glBegin(GL_QUADS_STRIP);       Segiempat                 Objek primitif
glBegin(GL_LINE_STIPPLE);     Garis putus-putus       Objek primitif
glBegin(GL_POLY_STIPPLE);     Poligon dengan pola   Objek primitif


Tabel 2. Format Fungsi OpenGL

Suffix        Tipe Data               C++ atau C        OpenGL

b           Integer 8-bit       Signed char     GLbyte

s           Integer 16-bit      Short              GLshort

i            Integer 32-bit     Int atau long    GLint,GLsizei

f            Float 32-bit        float                GLfloat
 
 

Tidak ada komentar:

Posting Komentar