Anda di halaman 1dari 6

1.

[Komputer Grafik]

Definisi
OpenGL

OpenGL (Open
Graphics
Library) adalah
suatu spefikasi
AFDAL | Sistim Informasi | [1010186]
grafik yang lowlevel
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

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,SGI, Linux, frreBSD 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

2. 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 yang
menjadikannya semakin mahal dan mengakibatkan banyak duplikasi.
OpenGL Dikembangkan oleh Silicon Graphics (SGI) pada tahun 1990-an. Pendahulu
openGL adalah IRIS GL dari Silicon Grapics, yang pada awalnya berupa GL(Glut
Library) 2D, yang berevolusi menjadi API program 3D untuk workstation canggih
milik perusahaan tersebut.
OpenGL adalah hasil dari usaha SGI untuk mengembangkan dan meningkatkan
kemampuan portable IRIS. API grafis yang baru akan menawarkan kemampuan IRIS
GL tetapi dengan standar yang lebih terbuka, dengan input dari pembuatan hardware
lain dan sistem operasi lain, dan akan memudahkan adaptasi ke hardware platform
dan sistem operasi lain. SGI menganggap bahwa IrisGL API itu sendiri tidak cocok
untuk membuka karena masalah lisensi dan paten. Juga, IrisGL memiliki fungsifungsi API yang tidak relevan dengan grafis 3D. Sebagai contoh, termasuk
windowing, keyboard dan mouse API, sebagian karena dikembangkan sebelum
Sistem X Window dan Suns NEWS sistem dikembangkan.
Untuk lebih mempopulerkan openGL SGI mengijinkan pihak lain untuk
mengembangkan standart openGL,dan beberapa vendor menyambut hal tersebut
dengan membentuk OpenGL Architecture Review Board (ARB).
Pendiri openGL adalah SGI, Digital Equepment Corporation, IBM, Intel dan
Microsoft, pada tanggal 1 juli 1992 OpenGL versi 1.0 diperkenalkan.

PAGE 1

Tahun 1994 SGI mengeluarkan gaggasan yang disebut OpenGL + + yang


mencakup unsur-unsur seperti grafik adegan-API (mungkin berbasis di sekitar mereka
Performer teknologi). Spesifikasi itu beredar di kalangan beberapa pihak yang
berkepentingan tetapi tidak pernah berubah menjadi sebuah produk pada tahun
1995, yang akan menjadi pesaing utama dari OpenGL. Pada tanggal 17 Desember
1997 Microsoft dan SGI memprakarsai Fahrenheit proyek, yang merupakan upaya
bersama dengan tujuan mempersatukan OpenGL dan Direct3D antarmuka (dan
menambahkan adegan-API grafik juga). Pada tahun 1998 Hewlett-Packard bergabung
dengan proyek ini. Ini awalnya menunjukkan beberapa janji untuk membawa dunia
komputer grafis 3D interaktif API, melainkan karena kendala keuangan di SGI, alasan
strategis di Microsoft, dan kurangnya dukungan industri , itu ditinggalkan pada tahun
1999.
OpenGL mengalami beberapa revisi yang sebagian besar ada penambahan ektensi
secara berangsur-angsur pada main body dari API. Contohnya OpenGL 1.1 (1997)
ada penambahan glBindTexture. OpenGL 2.0 (2004) memasukkan tambahan yang
paling penting yaitu OpenGL Shading Language (GLSL).

GLUT (GL Utility Toolkit)


A. Pengertian
Dikarenakan OpenGL tidak menyediakan interface sistem window ataupun input,
maka untuk tujuan ini aplikasi harus mengunakan keseragaman spesifik platform.
Dengan demikian jika aplikasi yang diinginkan tidak hanya berjalan di satu platfrom
saja, maka perlu menggunakan GLUT
GLUT merupakan pengembangan dari OpenGL yang didesain untuk aplikasi dengan
level kecil hingga menengah dan menggunkan callback function untuk menambahkan
interaksi dari user. GLUT menyediakan interface untuk menejemen window, menu,
dan peralatan input (keyboard, dan mouse). GLUT juga menyediakan fungsi otomatis
untuk menggambar objek primitif (garis, lingkaran, titik, persegi),objek 3 dimensi
wire (kerangka) maupun yang solid, seperti cube (kubus), sphere (bola), dan teapot
(poci teh), cone (kerucut), torus, dan lain-lain .
GLUT dikembangkan oleh Mark Kilgard, yaitu penulis OpenGL Programming for
the X Window System dan The Cg Tutorial: The Definitive Guide to Programmable
Real-Time Graphics, ketika dia masih bekerja di Silicon Graphics.

PAGE 2

Dua tujuan GLUT ialah menciptakan fleksibitas code antar platform yang dapat
dijalankan lebih dari satu sistem operasi (Windows, Linux, Mac OS X, FreeBSD,
OpenBSD, NetBSD), dan untuk lebih mudah mempelajari OpenGL. Dengan
menggunakan GLUT hanya memerlukan sedikit code dibandingkan dengan OpenGL,
tanpa mengetahui spesifikasi sistem operasi, dikarenakan OpenGL adalah sebagai
mesin.

B. Pemrograman Berbasis Event


GLUT pada dasarnya dibangun untuk menciptakan aplikasi grafis menggunakan
pemrograman yang bersifat prosedural. Di dalamnya terdapat fungsi main loop yang
diatur oleh GLUT dan looping yang terjadi dalam aplikasi bertujuan untuk
penanganan fungsi-fungsi callback sebagai input dari user seperti fungsi redraw,
mouse, keyboard, joystick, dan lain-lain.
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\lib
glut32.dll yang dicopy ke drive:\Windows\System

C. Menejemen Window
Ada 5 fungsi yang harus dipanggil untuk melakukan instalansi window yaitu:
I.
GlutInit(int argc,char**argv)
Fungsi ini menginisialisasi glut dan memproses argument command_line yg
disertakan(jika ada). Fungsi ini harus di panggil pertama kali sebelum
pemanggilan terhadap fungsi-fungsi yang lain.
II.

GlutInitDisplayMode(unsigned intmode)
Fungsi ini digunakan untuk menentukan apakah akan menggunakan model
pewarnaan RGBA atau indek warna. Dengan fungsi ini juga bisa menentukan
apakah akan menggunakan windows buffer single atau double.

III.

GlutInitWindowPosisition(int.x,int.y)
Fungsi ini menentukan letak window dengan patokkannya ialah pada window
kiri atas.

PAGE 3

IV.

V.

GlutInitWindowSize(int width,int height)


Fungsi ini menspesifikasikan ukuran window yang dibuat dalam pixel.
GlutCreateWindow(char *string)
Fungsi untuk membuat window dalam konteks openGL, dan akan
menghasilkan identitas atau judul window tersebut.

D. Windowing dengan GLUT


Display Callback
1. GlutDisplayFunc(void(*func)(void))
Fungsi ini memanggil fungsi lain yg menentukan konten dari windows yg telah
di buat sebelumnya.
2. GlutPostRedisplay(void)
Untuk mengubah konten window
3. GlutMainLoop(void)
Fungsi untuk event perulangan, display pada callback akan terus ditampilkan
selama aplikasi itu tidak ditutup.

3.

Algoritma DDA (Digital Differential Analyzer)


Algoritma DDA adalah algoritma pembentukan garis berdasarkan perhitungan dx
maupun dy, menggunakan rumus dy=m.dx. semua kordinat titik yang membentuk
garis diperoleh dari perhitungan kemudian dikonversikan menjadi nilai integer

4. Algoritma Bressenham
Algoritma Bressenham merupakan algoritma pembentukan garis berdasarkan selisih
antara garis yang diinginkan terhadap setengah ukuran dari pixel yang sedang
digunakan.

PAGE 4

Bresenham pada tahun 1965, melakukan perbaikan dari algoritma perhitungan


koordinat pixel yang menggunakan persamaan dengan cara menggantikan operasi
bilangan rii perkalian dengan operasi penjumlahan, yang kemudian dikenal sebagai
algoritma bressenham. Pada algoritma ini, nilai y kedua dari seterusnya dihitung dari
nilai y sebelumnya, sehingga hanya titik y pertama yang perlu dilakukan operasi
secara lengkap. Perbaikan algoritma ini ternyata tidak menghasilkan perbaikan yang
cukup siginifkan. Perbaikan berikutnya dilakukan dengan cara menghilangkan
operasi bilangan real dengan operasi bilangan integer.

5. Algoritma Mid Point


Algoritma midpoint merupakan algoritma pembuatan garis dan kurva dengan dasar
operasi bilangan integer yang menonjolkan ciri kecepatan. Sehingga algoritma ini
dapat dipakai sebagai algoritma pembuatan grafik yang menuntut kecepatan sebagai
hal yang diutamakan. Pembahasan algoritma Midpoint dilakukan dengan
mengasumsikan garis lurus dari kiri ke kanan, dan gadient antara 0 dan 1, sedangkan
untuk lingkaran dengan mengasumsikan hanya sebagian lingkaran dengan sudut
sebesar 45 , hal ini dilakukan untuk mempermudah penjelasan, sedangkan untuk
kondisi yang lain dapat diderivasi dengan cara yang serupa. Untuk mendapatkan
kinerja algoritma midpoint, dilakukan uji kecepatan komputasi dengan cara
mengimplementasikan kedalam bahasa pemrograman C, dan melakukan
perbandingan waktu komputasi dengan algoritma yang menggunakan dasar
komputasi bilangan riel, maupun algoritma lain yang telah banyak dikenal seperti
algoritma dda dan algoritma bressenham

PAGE 5

Anda mungkin juga menyukai