Anda di halaman 1dari 15

Poltek NSC - 2015

Pendahuluan
Tentang OpenGL
Pustaka OpenGL
Installer OpenGL
Persiapan Instalasi OpenGL pada DEVC++
(Freeglut)
Contoh Aplikasi
Bentuk Keluaran Aplikasi
Daftar Pustaka
Daftar Buku Referensi

Distributed Computing merupakan salah satu


bagian dari Ilmu Komputer yang mempelajari
penggunaan terkoordinasi dari komputer yang
secara fisik atau lokasi terpisah/terdistribusi.
API (Applications Programming Interface)
adalah sekumpulan perintah, fungsi, dan
protokol yang dapat digunakan oleh programmer
saat membangun perangkat lunak untuk sistem
operasi tertentu.
API memungkinkan programmer untuk
menggunakan fungsi standar untuk berinteraksi
dengan sistem operasi.
Pada grafika komputer, contoh produk API
diantaranya : OpenGL, Direct3D, OGRE, dan
masih banyak lagi.

OpenGL (Open Graphics Library) adalah spesifikasi


standar yang dapat di definisikan pada lintas bahasa
pemrograman, lintas platform API untuk write, dan
juga menjalankan aplikasi untuk grafis 2D dan 3D.
OpenGL terdiri dari 250 fungsi berbeda yang dapat
digunakan untuk menampilkan scene 3D yang
kompleks pada komputer biasa.
OpenGL secara luas digunakan dalam CAD, virtual
reality, visualisasi ilmiah, visualisasi informasi,
simulasi penerbangan, dan juga dalam game.
OpenGL masih menjadi standar programming untuk
beberapa console, bahkan PDA dengan system operasi
Windows CE masih menggunakan OpenGL sebagai
standar grafik hardwarenya.

OpenGL dapat berjalan pada berbagai system


operasi (Multiplatform), namun banyak sekali
cara yang menuliskan program OpenGL,
diantaranya :

Secara langsung sebagai Win32 API


Menggunakan GLUT atau FreeGLUT
Menggunakan SDL(Single DirectMedia Layer)
Menggunakan Alegro
Dan masih banyak lagi ...

Core OpenGL (GL) : berisi ratusan fungsi yang diawali dengan "gl" (misal
glColor, glVertex, glTranslate, glRotate). Pemodelan Objek GL
merupakan sekumpulan bentuk primitif, seperti titik, garis, dan polygon.
OpenGL Utility Library (GLU): dibangun diatas core OpenGL untuk
memberikan utiliti penting dan membangun lebih banyak model (seperti
permukan quadric) surfaces). Fungsi GLU diawali dengan "glu" (contoh :
gluLookAt, gluPerspective)
OpenGL Utilities Toolkit (GLUT): memberikan dukungan untuk dapat
beroperasi dengan OS (seperti : membuat window, penanganan keyboard
dan mouse), and dan membangun lebih banyak model (seperti :
sphere(bola) and torus(donat) ). Fungsi GLUT diawali dengan "glut"
(contoh : glutCreatewindow, glutMouseFunc).
Catatan dari opengl.org:
"GLUT dirancang untuk membangun program OpenGL dari ukuran kecil
hingga menengah. Sehingga GLUT hanya cukup untuk belajar OpenGL dan
mengembangkan aplikasi sederhana. GLUT adalah sederhana, mudah dan
kecil
OpenGL Extension Wrangler Library (GLEW): merupakan lintas
platform pustaka open-source C/C++ loading ekstensi. GLEW memberikan
mekanisme runtime yang efisien untuk menentukan ekstensi OpenGL yang
mana yang mendukung platform tujuan. Sumber dan pre-build binary
terdapat pada situs : http://glew.sourceforge.net/.

File header : "gl.h untuk core OpenGL, "glu.h"


untuk GLU, dan "glut.h" (atau "freeglut.h") untuk
GLUT, secara khusus ada difolder "include\GL.
Pustaka static: sebagai contoh, pada Win32,
"libopengl32.a" untuk core OpenGL, "libglu32.a"
untuk GLU, "libglut32.a" (atau "libfreeglut.a"
atau "glut32.lib") untuk GLUT, secara khusus ada
difolder "lib.
Pustaka (optional) shared : sebagai contoh,
"glut32.dll" (atau "freeglut.dll") untuk GLUT
dibawah Win32, secara khusus ada difolder "bin"
atau "c:\windows\system32".

1.

Download freeglut pada


http://www.transmissionzero.co.uk/software/freeglut-devel/
atau disini

2.

Ekstrak file tersebut kedalam folder tertentu (khusus, misal


OPENGL) terdiri atas :

Folder lib : libopengl32.a, libfreeglut.a, libglu32.a


Folder include \GL: freeglut.h, glut.h
Folder bin : freeglut.dll atau glut.dll

3.

Buatlah project serta disimpan pada folder tertentu

4.

Lakukan pengaturan PATH pada System properties +


advanced + environment variables untuk :

Header pada folder include GL

Static lib pada folder lib

Shared library (glut32.dll atau freeglut.dll).

5.

Lakukan pengaturan project option pada :

Parameters linker : -lopengl32 lglu32 lfreeglut

Deklarasi

header

#include <windows.h>
#include <GL/glut.h>

Penanganan

Object

void display()
{
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex2f(-0.5f, -0.5f);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex2f( 0.5f, -0.5f);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex2f( 0.5f, 0.5f);
glColor3f(1.0f, 0.0f, 1.0f);
glVertex2f(-0.5f, 0.5f);
glEnd();
glFlush();
}

Penanganan

Keyboard

void keyboard (unsigned char key, int x, int y)


{
switch (key) {
case 27: exit(0); }
glutPostRedisplay();
}

Program

Utama

int main(int argc, char** argv)


{
glutInit(&argc, argv);
glutInitWindowSize(500, 500);
glutInitWindowPosition(0, 0);
glutCreateWindow( Test OpenGL);
glutKeyboardFunc(keyboard);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

Perintah

Arti

Keterangan

glVertex2i(x,y);

Lokasi titik berada (x,y)

Tipe argumennya adalah integer dan 2D (x,y)

glVertex2f(x,y);

Lokasi titik berada (x,y)

Tipe argumennya adalah float dan 2D (x,y)

glVertex3i(x,y,z);

Lokasi titik berada (x,y,z)

Tipe argumennya adalah integer dan 3D (x,y,z)

glVertex3f(x,y,z);

Lokasi titik berada (x,y,z)

Tipe argumennya adalah float dan 3D (x,y,z)

glClearColour(R,G,B,);

Warna latar belakang

Empat komponen warna RGBA

glColor3f(R,G,B)

Warna latar muka

Tiga komponen warna (RGB)

glColor4f(R,G,B,)

Warna latar muka

Empat komponen warna (RGBA)

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 tertentu

Objek primitif

glClearColor(0.0f, 0.0f, 0.0f, 1.0f);


Untuk memberi warna latar
glClear(GL_COLOR_BUFFER_BIT);
Untuk mengosongkan memori buffer
glBegin(GL_QUADS);
Untuk awal mendesain gambar primitif
glEnd();
Untuk mengakhiri mendesain gambar
primitif
glColor3f(1.0f, 0.0f, 0.0f);
Untuk memberi warna pada gambar
primitif
glVertex2f(-0.5f, -0.5f);
Untuk menggambar titik 2D
glFlush();
Untuk merender gambar

Fungsi GL

glutInit(&argc, argv);
Untuk menyiapkan lingkungan openGL
glutInitWindowSize(500, 500);
Untuk menyiapkan ukuran jendela untuk
openGL
glutInitWindowPosition(0, 0);
Untuk menyiapkan lokasi jendela untuk openGL
glutCreateWindow( Test OpenGL);
Untuk membuat jendela untuk openGL sekaligus
memberi judul
glutKeyboardFunc(keyboard);
Untuk mengaktifkan fungsi keyboard
glutDisplayFunc(display);
Untuk mengaktifkan fungsi penyaji
glutMainLoop();
Untuk menjalankan openGL secara berulang
glutIdleFunc(renderScene);
Untuk tetap melakukan render pada saat aplikasi
sedang idle

Fungsi GLUT

glutInit berfungsi untuk inisialisasi secara umum terhadap nilai-nilai yang ada pada
library GLUT.
glutMainLoop() , yaitu digunakan untuk menjalankan program.

Untuk menginisialisasi modus display dilakukan dengan memanggil


fungsi: glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB) pada procedure
myInit();
glOrtho digunakan untuk membuat kotak tempat obyek yang sedang digambar.

glutDisplayFunc(display)

OpenGL mother site @ www.opengl.org.


Nehe OpenGL Tutorials @
http://nehe.gamedev.net.
One of the best sites on OpenGL.
Nate Robin's OpenGL Tutor @
http://www.xmission.com/~nate/opengl.html.
One of the best sites on OpenGL. Provides a few
animated programs to illustrate OpenGL
functions, such as gluLookAt. Nate Robin also
provide the original GLUT library.
Lighthouse 3D tutorials @
http://www.lighthouse3d.com.
JOGL mother site @ https://jogl.dev.java.net.

(Red book) "OpenGL Programming Guide", 6th Eds, 2008, AddisonWesley.


A must-read for OpenGL programmers.
(Blue book) "OpenGL Superbible - Comprehensive Tutorial and
Reference", 4th eds, Addison-Wesley.
(Orange Book) "OpenGL Shading Language".
Edward Angel, "OpenGL - A Primer", 3rd eds, Pearson Education.
A very "thin" book that gives a good introduction about OpenGL.
The codes in C++ uses GLUT, which greatly simplifies interacting
with the Windows OS.
Edward Angel and David Shreiner "Interactive Computer Graphics
- A top-down approach using OpenGL", 6th ed, Pearson Education,
2012.
Good undergraduate text book on Computer Graphics.
JungHyun Han, "3D Graphics for Game Programming", CRCPress,
2011.
Good and simple explanation for the Graphics Renderer Pipeline
and the various transforms, with many nice diagrams.

Anda mungkin juga menyukai