Tugas Grafik Komputer & Pengolahan Citra (Open GL)

Beberapa minggu yang lalu saya mendapat kan tugas dari dosen Tugas Grafik Komputer & Pengolahan Citra (OpenGL). OpenGL (Open Graphics Library) adalah spesifikasi standar yang mendefinisikan sebuah lintas-bahasa, lintas platform API untuk mengembangkan aplikasi yang menghasilkan grafis komputer 2D maupun3D. Antarmuka terdiri dari lebih dari 250 panggilan fungsi yang berbeda yang dapat digunakan untuk menggambar tiga dimensi yang adegan-adegan kompleks dari bentuk-bentuk primitif sederhana. OpenGL dikembangkan oleh Silicon Graphics Inc (SGI) pada tahun 1992 dan secara luas digunakan dalam CAD, realitas maya, visualisasi ilmiah, visualisasi informasi, dan simulasi penerbangan. Hal ini juga digunakan dalam video game, di mana bersaing dengan Direct3D on Microsoft Windows platform (lihat vs OpenGL Direct3D). OpenGL dikelola oleh sebuah teknologi konsorsium nirlaba yaitu Khronos Group.
Karena saya disini menggunakan Linux Backtrack 5 R3 maka sebelum itu kita diharuskan menginstall dan mendownload beberapa file dari repository.
 
Pertama – tama kita install dulu header files OpenGL libraries dengan perintah :
 
apt-get update
apt-get install libgl1-mesa-dev
 
Kedua buat yang belum ada GCC C/C++ compiler kita diharuskan menginstallnya terlebih dahulu, disini Backtrack 5 R3 compiler tersebut sudah terinstall dari sananya. Buat yang belum bisa menginstall dengan perintah :
 
apt-get update
apt-get install build-essential
 
 
 
Ketiga kita diharuskan menginstall library GLEW, FreeGLUT dan GLM dengan perintah :
 
apt-get install libglew1.5-dev freeglut3-dev libglm-dev
 
Keempat cek instalasi OpenGL dengan perintah :
 
glxinfo | grep OpenGL atau glxgears
 
 
 
Kelima kita masuk ke terminal lalu ketikkan :
 
vi tugas.c
 

maka akan terbuka halaman edit lalu ketik “i” untuk menginsert codingan, copy paste codingan yang ada di bawah ini ke terminal anda. Setelah itu tekan tombol esc pada keyboard lalu ketikkan “:wq” pada terminal lalu tekan enter.

Codingnya
#include "GL/freeglut.h"
#include "GL/gl.h"

// program utama
int main(int argc, char **argv) {
 int pil;
 float x, y;

 // menampilkan menu dan pilihan
 printf("              [ MENU ]             \n\n");
 printf(" 1. Garis Vertikal\n");
 printf(" 2. Garis Horizontal\n");
 printf(" 3. Garis Diagonal\n\n");
 printf("Masukkan pilihan anda [1..3] : ");
 scanf("%i", &pil);

 // seleksi kondisi pilihan
 if (pil == 1) {
  printf("\n\n        [ Garis Vertikal ]        \n\n");
  printf("Masukkan y [1..99] : ");
  scanf("%f", &y);
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
  // posisi kotak (x,y)
  glutInitWindowPosition(405,95);
  // besarnya kotak (x,y)
  glutInitWindowSize(500,500);
  glutCreateWindow("Garis Vertikal OpenGL");
  glClear(GL_COLOR_BUFFER_BIT);
  // gambar garisnya
  glBegin(GL_LINES);
  glVertex2f (0.0, 0.0);
  glVertex2f (0.0, y/100);
  glEnd();
  glFlush();
  glutMainLoop();
 } else if (pil == 2) {
  printf("\n\n       [ Garis Horizontal ]       \n\n");
  printf("Masukkan x [1..99] : ");
  scanf("%f", &x);
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
  // posisi kotak (x,y)
  glutInitWindowPosition(405,95);
  // besarnya kotak (x,y)
  glutInitWindowSize(500,500);
  glutCreateWindow("Garis Horizontal OpenGL");
  glClear(GL_COLOR_BUFFER_BIT);
  // gambar garisnya
  glBegin(GL_LINES);
  glVertex2f (0.0, 0.0);
  glVertex2f (x/100, 0.0);
  glEnd();
  glFlush();
  glutMainLoop();
 } else if (pil == 3) {
  printf("\n\n        [ Garis Diagonal ]        \n\n");
  printf("Masukkan x [1..99] : ");
  scanf("%f", &x);
  printf("Masukkan y [1..99] : ");
  scanf("%f", &y);
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
  // posisi kotak (x,y)
  glutInitWindowPosition(405,95);
  // besarnya kotak (x,y)
  glutInitWindowSize(500,500);
  glutCreateWindow("Garis Diagonal OpenGL");
  glClear(GL_COLOR_BUFFER_BIT);
  // gambar garisnya
  glBegin(GL_LINES);
  glVertex2f (0.0, 0.0);
  glVertex2f (x/100, y/100);
  glEnd();
  glFlush();
  glutMainLoop();
 } else {
  // print error
  printf("ERROR!! Masukkan pilihan antara 1-3 !\n");
 }

 return 0;
}
Keenam compile dengan menggunakan perintah :
gcc -lglut -Wall tugas.c -o tugas

 

 
Lalu jalankan dengan dengan perintah :
 
./tugas
 
karena disini saya menggunakan VGA NVIDIA OPTIMUS dan sudah saya install di dalam Backtrack 5 ini driver NVIDIA BUMBLEBEE  maka saya menggunakan perintah seperti dibawah ini untuk menjalankannya :
 
optirun ./tugas
 
 
Hasil Output
 
Garis Diagonal
Garis Horizontal
Garis Vertikal

Leave a Reply