Pengenalan OpenGL dan Fungsi Primitif OpenGL
A. Pengertian
Grafika Komputer
Menurut Suyoto (2003), grafika komputer (Computer
Graphic) dapat diartikan sebagai seperangkat alat yang terdiri dari hardware
dan software untuk membuat gambar, grafik ataucitra realistik untuk seni, game
komputer, foto dan film animasi. Sistem grafika komputer dapat dijalankan
dengan komputer pribadi (Personal Computer) atau workstation.
1. Pengertian
OpenGL
Open
Graphics Library, 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 tertentu lainnya. Setiap perintah dalam
dirancang untuk melakukan tindakan tertentu, atau memulai efek khusus tertentu
yang terkait dengan grafis.
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.
2. Tujuan
pelayanan 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)
B. EVOLUSI
OPENGL
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.
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.
Letak openGL dalam aplikasi gambar di atas pada
umumnya ketika aplikasi berjalan program tersebut memanggil banyak fungsi,
beberapa dibuat oleh programer dan beberapa yang disediakan oleh sistem operasi
bahasa pemrograman. Aplikasi windows membuat output pada layar biasanya dengan
memanggil sebuah API windows yang disebut Graphics Device Interfase yang
memungkinkan sebagai penulisan teks pada sebuah windows menggambar garis 2D
sederhana dan lainnya. Implementasi dari openGL mengambil permintaan grafis dari
aplikasi dan membangun sebuah gambar berwarna dari grafis 3D, kemudian
memberikan gambar tersebut ke GDI untuk ditampilkan pada layar monitor.
C. Pengertian
GLUT
GLUT merupakan pengembangan dari OpenGL yang
didesain untuk aplikasi dengan level kecil hingga menengah dan menggunakan
callback functions 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.
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.
D. Contoh
program yang menggunakan OpenGL
Membuat Lingkaran dengan OpenGL
Lingkaran adalah
himpunan semua titik pada bidang dalam jarak tertentu,
yang disebut jari-jari, dari suatu titik tertentu, yang
disebut pusat. Lingkaran adalah contoh dari kurva tertutup
sederhana, membagi bidang menjadi bagian dalam dan bagian luar. Salah satu
cara membuat lingkaran dengan menggunakan openGL kita dapat membuat fungsi
sendiri, contohnya sebagai berikut :
void lingkaran(int jari2, int jumlah_titik, int x_tengah, int y_tengah)
{
glBegin(GL_POLYGON);
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+jari2*cos(sudut);
float y=y_tengah+jari2*sin(sudut);
glVertex2f(x,y);
}
glEnd();
}
Terdapat 3 parameter pada fungsi
tersebut, yaitu:
-
jari2 : untuk menentukan jari-jari
lingkaran
-
jumlah_titik : untuk menentukan jumlah
titik yang akan dihubungkan pada lingkaran. Semakin banyak titik, maka akan
menjadi lingkaran sempurna. Apabila jumlah titiknya 5, maka akan menjadi
segilima.
-
x_tengah dan y_tengah : untuk menentukan
titik tengah lingkaran
Pada dasarnya penentuan
titik koordinat x,y pada lingkaran dapat dilihat melalui ilustrasi gambar di
bawah ini :
Namun pada penerapan
program proses penentuan titik koordinat pada lingkaran dapat kita kembangkan
seperti kode program di bawah ini :
float x=x_tengah+jari2*cos(sudut);
float y=y_tengah+jari2*sin(sudut);
di mana letak posisi koordinat lingkaran
berasal dari penambahan titik tengah lingkaran yang telah ditentukan
sebelumnya.
contoh sederhana kode program untuk
membuat lingkaran :
#include <stdlib.h>
#include <glut.h>
#include <math.h>
const double PI = 3.141592653589793;
int i;
void lingkaran(int jari2, int jumlah_titik, int x_tengah, int y_tengah)
{
glBegin(GL_POLYGON);
for (i=0;i<=360;i++){
float sudut=i*(2*PI/jumlah_titik);
float x=x_tengah+jari2*cos(sudut);
float y=y_tengah+jari2*sin(sudut);
glVertex2f(x,y);
}
glEnd();
}
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,
0.0, 0.0); //merah
lingkaran(30,70,-200,0);
glColor3f(0.0,
1.0, 0.0); //hijau
lingkaran(30,70,200,0);
glColor3f(0.0,
0.0, 1.0); //biru
lingkaran(100,100,0,0);
glFlush();
}
void main(int argc, char **argv)
{
glutInit(&argc,
argv);
glutInitDisplayMode(GLUT_DEPTH
| GLUT_SINGLE | GLUT_RGBA);
glutInitWindowSize(640,
480);
glutInitWindowPosition(100,
100);
glutCreateWindow("Lingkaran");
gluOrtho2D(-320.,
320., -240., 240.);
glutDisplayFunc(renderScene);
glutMainLoop();
}
Hasil program dari contoh kode program
di atas adalah
Blog juga bisa menghasilkan uang
Comments
Post a Comment