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

Popular posts from this blog

PENGENALAN OPENCV

LAPORAN PROJECT PENGOLAHAN SINYAL DIGITAL FOURIER ANALYSIS