Open GL
Menampilkan Garis
Menampilkan garis dalam OpenGL menggunakan perintah GL_LINES. Menggambarkan garis hanya menggunakan 2 buah vertex,yaitu titik mulai dan titik akhir. Untuk jelasnya, perhatikan gambar dibawah ini :
Program untuk membuat garis adalah:
glBegin(GL_LINES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.8, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();
Program Lengkap untuk membuat garis adalah:
#include <gl/glut.h>
void Draw() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_LINES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.8, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();
glFlush();
}
void Initialize() {
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
int main(int iArgc, char** cppArgv) {
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250, 250);
glutInitWindowPosition(200, 200);
glutCreateWindow(“Line”);
Initialize();
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}
Hasil Kompile program garis diatas adalah :
Menampilkan Segitiga
Menampilkan Segitiga menggunakan perintah GL_TRIANGLES dengan 3 buah vertex. Segitiga yang dibentuk bisa searah dengan jarum jam atau berlawanan. Pada contoh ini gambar pertama berlawanan dengan arah jarum jam dan yang kedua sebaliknya.
Perintah menampilkan segitiga adalah:
glBegin(GL_TRIANGLES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.8, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();
Perintah lengkap menampilkan segitiga adalah :
#include <gl/glut.h>
void Draw() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_TRIANGLES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.8, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();
glFlush();
}
void Initialize() {
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
int main(int iArgc, char** cppArgv) {
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250, 250);
glutInitWindowPosition(200, 200);
glutCreateWindow(“Triangles”);
Initialize();
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}
Hasil Kompiler program segitiga diatas adalah:
Menampilkan garis dalam OpenGL menggunakan perintah GL_LINES. Menggambarkan garis hanya menggunakan 2 buah vertex,yaitu titik mulai dan titik akhir. Untuk jelasnya, perhatikan gambar dibawah ini :
Program untuk membuat garis adalah:
glBegin(GL_LINES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.8, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();
Program Lengkap untuk membuat garis adalah:
#include <gl/glut.h>
void Draw() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_LINES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.8, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();
glFlush();
}
void Initialize() {
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
int main(int iArgc, char** cppArgv) {
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250, 250);
glutInitWindowPosition(200, 200);
glutCreateWindow(“Line”);
Initialize();
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}
Hasil Kompile program garis diatas adalah :
Menampilkan Segitiga
Menampilkan Segitiga menggunakan perintah GL_TRIANGLES dengan 3 buah vertex. Segitiga yang dibentuk bisa searah dengan jarum jam atau berlawanan. Pada contoh ini gambar pertama berlawanan dengan arah jarum jam dan yang kedua sebaliknya.
Perintah menampilkan segitiga adalah:
glBegin(GL_TRIANGLES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.8, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();
Perintah lengkap menampilkan segitiga adalah :
#include <gl/glut.h>
void Draw() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_TRIANGLES);
glVertex3f(0.2, 0.2, 0.0);
glVertex3f(0.8, 0.2, 0.0);
glVertex3f(0.2, 0.5, 0.0);
glVertex3f(0.8, 0.5, 0.0);
glVertex3f(0.2, 0.8, 0.0);
glVertex3f(0.8, 0.8, 0.0);
glEnd();
glFlush();
}
void Initialize() {
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}
int main(int iArgc, char** cppArgv) {
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(250, 250);
glutInitWindowPosition(200, 200);
glutCreateWindow(“Triangles”);
Initialize();
glutDisplayFunc(Draw);
glutMainLoop();
return 0;
}
Hasil Kompiler program segitiga diatas adalah:
Color
Untuk memberi warna pada objek, seperti titik atau garis, dapat dilakukan dengan menggunakan fungsi à glColor3f(red,green,blue);
Di mana red, green, blue berada pada 0 sampai dengan 1, yang menunjukkan skala pencerahan dari masing-masing skala.
Berikut adalah beberapa fungsi color :
- glColor3f(0,0,0);//black
- glColor3f(0,0,1);//blue
- glColor3f(0,1,0);//green
- glColor3f(0,1,1)//cyan
- glColor3f(1,0,0)//red
- glColor3f(1,0,1)//magenta
- glColor3f(1,1,0);//yellow
- glColor3f(1,1,1);//white
Program ini menampilkan 4 buah titik dengan ukuran tertentu dengan warna yang berbeda-beda. Warna dasar dari dalam OpenGL itu adalah merah,hijau dan biru (RGB).
Kode Program pewarnaan adalah :
Kode Program pewarnaan adalah :
Program di atas bila dikompel hasilnya :#include <windows.h> #include <gl/glut.h> void Display(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); glColor3f(0.0,1.0,0.0); glVertex2f(10.,10.); glColor3f(1.0,1.0,0.0); glVertex2f(10.,110.); glColor3f(0.0,0.0,1.0); glVertex2f(150.,110.0); glColor3f(1.0,1.0,1.0); glVertex2f(150.,10); glEnd(); glFlush(); } void reshape(int w,int h) { glViewport(0,0,(GLsizei)w,(GLsizei)h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0,160.0,0.0,120); } void init(void) { glClearColor(1.0,0.0,0.0,1.0); glPointSize(20.0); } void main(int argc,char* argv[]) { glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(320,240); glutCreateWindow("ProgramPertama"); init(); glutDisplayFunc(Display); glutReshapeFunc(reshape); glutMainLoop(); }
Catatan :
glPushMatrix berfungsi untuk menyimpan koordinat yang ada. Sedangkan glPopMatrix adalah suatu fungsi guna memangil suatu fungsi yang telah disimpan pada glPushMatrix.