Minggu, 17 Mei 2009

Belajar OPEN GL

DOKUMENTASI TUGAS TUTORIAL GLUT
EL5130 Grafika komputer dan pemograman GPU









Oleh

Nama : Gigin Ginanjar
NIM : 23208318









MAGISTER TEKNIK ELEKTRO DAN INFORMATIKA
BIDANG KHUSUS DIGITAL MEDIA DAN GAME TEKNOLOGI
INSTITUT TEKNOLOGI BANDUNG
2009



Dokumentasi Tutorial OpenGL menggunakan GLUT

Untuk menjalankan program pada Suplemen Diktat Kuliah OpenGL Tutorial[1] dengan GLUT: Fixed Pipeline maka ada hal yang harus dilakukan dahulu seperti membuat compiler yang dalam hal ini menggunakan Compiler CodeBlock[2] untuk melink baik library maupun include yang diperlukan. Untuk mensetting Glut diperlukan file file seperti yang terlihat dari Tabel1.

Tabel 1 File Yang diperlukan untuk meninstal Glut
No Nama File Lokasi
1. glut32.lib c:\program files\mingw\lib
2. glut.lib c:\program files\mingw\lib
3. glut.h c:\program files\mingw\include\GL
4. glut.dll c:\windows\system
5. glut32.dll c:\windows\system


File tersebut dapat diperoleh dari alamat resmi pembuat openGL[3]Atau pada alamat Nate Robins [4][5].
Secara keseluruhan CodeBlock telah menyediakan suatu project khusus untuk glut akan tetapi CodeBlok masih memerlukan file yang terdapat pada tabel1 agar program sample tersebut bekerja. Adapun cara untuk menginstal program glut pada Codeblok terdapat pada [6]. Detail cara menginstall glut terdapat pada lampiran1.
Maka apa bila program sample dari code blok itu berjalan maka akan tampil seperti gambar1 dibawah ini

Gambar1 Hasil akhir sample program glut pada Codeblock
Apabila telah diperoleh seperti gambar 1maka Codeblock telah siap digunakan dan Program pertama dari tutorial.
Tutorial 1 “Hello World” dengan GLUT

Program 1 GLUT “Hello World” & Gambar Segiempat
Dengan mengubah program sample dengan program 1 pada [1] maka hasil yang akan diperoleh adalah dapat dilihat dari gambar2

Gambar 2 Tampilan dari program 1 tutorial

Gambar 3 Tampilan dari console program 1
Istilah penting dari program pertama

glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glVertex2f(-0.5, -0.5);
glEnd();
glFlush();
glutCreateWindow("simple “);
glutDisplayFunc(mydisplay);
glutMainLoop();



Tutorial2 OpenGL Primitives

Program 2 Segitiga

Hasil program ini dapat dilihat dari gambar 4



Gambar 4. Tampilan dari program 2.

Program 3

Hasil program ini dapat dilihat dari gambar 5

Gambar 5 Tampilan dari program 3.

Istilah baru dalam program 3
glColor3f(0, 1, 0);

Tugas1: Buat Program untuk menggambar jenis OpenGL Geometric Primitive yang lain
Bentuk geometric primitiv ayng sipergunakan adalah GL_QUADS dimana bentuk segiempat tidak beraturan yang dapat dilihat dari gambar 6


Gambar 6 Tampilan tugas 1



Program 4
Hasil program 4 dapat dilihat dari gambar 7

Gambar 6 Tampilan dari program 4.
Tutorial 03. 3D Vertex
Program 5

Hasil program 9 dapat dilihat dari gambar 8

Gambar 8 Tampilan dari program 5.

Istilah pada program 5 adalah

glVertex3f(-0.5, -0.5, 1);


Tutorial 04. Callback Reshape
Program 6

Istilah pada program yang digunakan untuk program yang dapat meresize adalah

glutReshapeFunc(resize);
glViewport(0, 0, (GLsizei)h, (GLsizei)h) ;

maka hasil dari program 6 adalah dapat dilihat dari gambar 9 (a) dan 9(b) re dibawah initelah digrag memperlebar ukuran size windowsnya

(a)

(b)
Gambar 9 Tampilan program resize
Tutorial 04. Modeling & Transformasi Proyeksi
Program 07 Proyeksi Perspektif

Hasil tampilan dari program 7 dapat dilihat dari gambar 10


Gambar 10 Tampilan progaram 07 Proyeksi Perspektif


Hasil dari program 7 adalah:
1. Projectif Prespektif
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glTranslatef(0.0,0.0f,z_pos);
glRotatef(rot, 0, 0, 1);
glutSwapBuffers(); //mengindari flicker
2. Fungsi dari keyboard
glutKeyboardFunc(myKeyboard);
3. Reshape
4. Timer
glutPostRedisplay();
glutTimerFunc(100, myTimeOut, 0);
Istilah baru dalam program 7

Tutorial 05. Urutan Transformasi
Program 8
Hasil program8 dapat dilihat dari gambar 11

Gambar 11. Program objek kompleks
Istilah penting dalam program 8 adalah
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );


Tutorial 06. Texture Mapping & Blending
Program 09
Program ini menggunakan library glaux.h dan yang untuk membuat suatu texure yang dibuat pada program 8 sebelumnya dengan image bitmap. Untuk menggunakan glux ini dipergunakan liblary yang tutorial pemasangan dan liblarynya terdapat pada glaux.h dan glaux,lib dan glaux.dll pada tempat tertentu seperti pada seting awal GLUT. Untuk program yang memangil file disarankan untuk tidak menggunakakan project template GLUT pada CodeBlock akan tetapi menggunakan application console seperti menggunakan bahasa pemogaman C/C++ setting dengan cara ini akan dibahas pada lampiran 2 dan gambar yang dipergunakan adalah yang berukuran 256x256 pixel.
Hasil dari program 9 dapat dilihat dari gambar 12

(a)

(b)
Gambar 12 Program texture dan filter

Isilah yang digunakan dalam program 9 adalah

Program 10 Blending
Blending adalah mengabungkan gambar untuk hal ini dapat dilihat darigambar 13 dimana terdapat perbedaan warna bila dilihat dari gambar 12 terjadi pencampuran antara warna hijau dan biru terhadap gambar akhirnya


Gambar 13 Program Blending

Istilah istilah pada program 10 adalah

glEnable(GL_BLEND); // Turn Blending On
glColor3f(1.0,0.0,0.0);
glBindTexture(GL_TEXTURE_2D, texture[filter]);

Program 11 Transparansi
Tampilan transparansi dari program 9 adalah dapat dilihat dari program program 11 dan dapat dilihat dari gambar 14


Gambar 14 Program transparansi


Istilah istilah pada program 11 adalah

glColor4f(1.0f, 1.0f, 1.0f, 0.5);// Full Brightness. 50% Alpha
glBlendFunc(GL_SRC_ALPHA,GL_ONE);

Program 12 Fog

Hasil dari program fog dapat dilihat dari gambar 15


Gambar 15 Program fog

Tutorial 09. Obyek Kompleks
Program 13.

Hasil dari program 13 dapat dilihat dari gambar 16


Gambar 16 Progam 3D

Program 14 3ds loader
Program ini membaca file 3ds dan texturenya dapat dilihat dari [7] hasil dari program ini adalah dapat dilihat dari gambar 17

Gambar 17 Program 3ds loader dan texture

Program 16 Particle
Gambar dari partikel seperti air mancur dari program 16 dapat dilihat dari gambar 18


Gambar 18 Tampilan program partikel

Program 17
Tampilan dari program ini dapat didari gambar 19. Program ini menggunakan file obj yang penggunaaannya dapat dilihat dari Nate Robin tutorial [8].


Gambar 19 Program light dan texture

Program 18

Hasil Akhir dari program 18 adalah dapat dilihat dari gambar 20.


Gambar 20 Program Light Positisioning.

Tutorial 12.Vertex Animation

Program 19

Hasil program dari progran 19 dapat dilihat dari gambar 21.

Gambar 21 Vertex animation


Referensi
[1] Suplemen Diktat Kuliah EC5130 – Grafika Komputer dan Pemrograman GPU
[2] http://www.sci.brooklyn.cuny.edu/~goetz/codeblocks/glut/
[3] http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
[4] http://www.xmission.com/~nate/glut/glut-3.7.6-src.zip
[5] http://www.xmission.com/~nate/glut/glut-3.7.6-bin.zip
[6] http://www.sci.brooklyn.cuny.edu/~goetz/codeblocks/glut/
[7] http://www.spacesimulator.net/tut4_3dsloader.html
[8] http://www.xmission.com/~nate/tutors/tutors-win32.zip