BAB I
PENGENALAN GLUT
A. Tujuan
1. Memahami
GLUT
2. Memahami
instalasi dan dasar pemrograman GLUT
3. Memahami
dasar menampilkan windows GLUT
B. Perangkat
yang digunakan
1. Visual
C++ 2008
2. PC
3. Modul
Bab 1 Pengenalan GLUT
C. Dasar
Teori
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. Ini mahal dan
mengakibatkan banyak duplikasi usaha.
Pada awal
1990-an, Silicon Graphics (SGI) adalah seorang pemimpin dalam grafis 3D untuk
workstation. Mereka IRIS GL API dianggap keadaan seni dan menjadi standar
industri de facto, membayangi terbuka berbasis standar PHIGS. Ini karena GL
IRIS dianggap lebih mudah digunakan, dan karena itu mendukung modus langsung
rendering. By contrast, Sebaliknya, PHIGS dianggap sulit untuk digunakan dan
ketinggalan zaman dalam hal fungsionalitas.SGI’s pesaing (termasuk Sun
Microsystems, Hewlett-Packard dan IBM) juga dapat membawa ke pasar 3D hardware,
didukung oleh ekstensi yang dibuat pada PHIGS standar.
Hal ini pada
gilirannya menyebabkan pangsa pasar SGI untuk melemahkan karena lebih banyak
hardware grafis 3D pemasok memasuki pasar. Dalam upaya untuk mempengaruhi
pasar, SGI memutuskan untuk mengubah IrisGL API menjadi standar terbuka. SGI
menganggap bahwa IrisGL API itu sendiri tidak cocok untuk membuka karena
masalah lisensi dan paten. Juga, IrisGL memiliki fungsi-fungsi API yang tidak
relevan dengan grafis 3D. Sebagai contoh, termasuk windowing, keyboard dan
mouse API, sebagian karena dikembangkan sebelum Sistem X Window dan Sun’s NEWS
sistem dikembangkan. Selain itu, SGI memiliki sejumlah besar pelanggan
perangkat lunak; dengan mengubah ke OpenGL API mereka berencana untuk
mempertahankan pelanggan mereka terkunci ke SGI (dan IBM) hardware untuk
beberapa tahun sementara pasar dukungan untuk OpenGL matang. Sementara itu, SGI
akan terus berusaha untuk mempertahankan pelanggan mereka terikat pada hardware
SGI dengan mengembangkan maju dan kepemilikan Iris Inventor dan Iris Performer
pemrograman API.Akibatnya, SGI merilis standar OpenGL.
OpenGL adalah
suatu library grafis standart yang digunakan untuk keperluan-keperluan
pemrograman grafis. Sebenarnya ada banyak library pemrograman grafis disini
selain openGL, misalnya DirectX.
Architecture
dari OpenGL ada dua:
-
OpenGL sebagai media
-
OpenGL sebagai mesin aliran data.
Mengapa
memakai openGL?? karena openGL ini bersifat Open-Source, multi-platform dan
multi-languange. selain itu openGL mendukung semua bahasa pemrograman dan dapat
bekerja di lingkungan Windows, Unix, SGI, Linux, freeBSD, dll.
Library
dasar dari openGL adalah GLUT. GLUT disini ialah fasilitas library yang dapat
dikembangkan.
Untuk
sistem operasi Windows, library ini terdiri dari 3 file, yaitu :
-
glut.h
-
glut32.lib
-
glut32.dll
lalu
bagaimana instalasi GLUT pada Windows? Instalasi GLUT ini dilakukan setelah
instalasi kita melakukan insatalasi Microsoft Visual C++.
-
Copykan file glut.h ke dalam folder c:\Program Files\Microsoft Visual
Studio\VC98\Include\GL
-
Copykan file glut32.lib di dalam folder c:\Program Files\Microsoft Visual
Studio\VC98\lib
-
Copykan file glut32.dll di dalam folder c:\Windows\System32
D. Praktikum
1. Praktikum
1
a. Script
#include
<stdlib.h>
#include
<glut.h>
void
renderScene(void){
/*....*/
}
void
main(int argc, char **argv){
glutInit(&argc, argv);
/*....*/
glutCreateWindow("Pemrograman Grafis
GLUT");
glutDisplayFunc(renderScene);
glutMainLoop();
}
b.
Printscreen
hasil
2. Tugas
Praktikum 2
a. Script
#include<stdlib.h>
#include<glut.h>
void renderScene(void){
/*....*/
}
void main (int argc, char **argv){
glutInit(&argc,
argv);
glutInitDisplayMode(GLUT_DEPTH
| GLUT_SINGLE |GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("GLUT : Harist Ar Rosyid");
glutDisplayFunc(renderScene);
glutMainLoop();
}
b.
Printscreen
hasil
3. Tugas
Praktikum 3
a. Script
#include<stdlib.h>
#include<glut.h>
void renderScene(void){
/*...*/
}
void main (int argc, char **argv){
glutInit(&argc,
argv);
/* ...*/
glutInitDisplayMode(GLUT_DEPTH|GLUT_SINGLE|GLUT_RGBA);
glutInitWindowPosition(200,150);
glutInitWindowSize(320,320);
glutCreateWindow("GLUT : Harist Ar Rosyid");
glutDisplayFunc(renderScene);
glutMainLoop();
}
b. PrintscreenHasil
4. Tugas
Praktikum 4
a. Script
#include<gl/glut.h>
void renderScene(){
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(5);
glBegin(GL_POINTS);
glVertex3f(0.0,0.0,0.0);//a
glEnd();
glFlush();
}
void main (int argc, char **argv){
glutInit(&argc,
argv);
glutInitDisplayMode(GLUT_DEPTH
| GLUT_SINGLE |GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutCreateWindow("GLUT : Shela-Imel");
glutDisplayFunc(renderScene);
glutMainLoop();
}
b. PrintscreenHasil
5. Tugas
Praktikum 5
d. Script
#include<gl/glut.h>
void renderScene(){
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(5);
glBegin(GL_POINTS);
glVertex3f(0.0,0.0,0.0);//a
glEnd();
glFlush();
}
void main (int argc, char **argv){
glutInit(&argc,
argv);
glutInitDisplayMode(GLUT_DEPTH
| GLUT_SINGLE |GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
glutCreateWindow("GLUT : Shela-Imel");
glutDisplayFunc(renderScene);
glutMainLoop();
}
e. PrintscreenHasil