Membuat Gambar 2D Sederhana dengan OpenGL di Code::Blocks

Codeblocks,Komputer Grafik

OpenGL adalah sebuah pustaka grafis yang digunakan untuk menggambar objek 2D dan 3D pada aplikasi. Salah satu implementasi yang dapat digunakan untuk menggambar objek dengan OpenGL adalah dengan memanfaatkan C++.

Pada artikel kali ini, kita akan membahas contoh pemrograman C++ yang menggunakan OpenGL untuk menggambar beberapa bentuk geometris seperti kotak besar, kotak kecil, dan segitiga.

Langkah-langkah dalam Pemrograman C++ dengan OpenGL:

  1. Menyiapkan Library OpenGL dan GLUT
    Untuk menggunakan OpenGL di C++, Anda harus memastikan bahwa pustaka OpenGL dan GLUT sudah terpasang. GLUT (OpenGL Utility Toolkit) adalah pustaka yang menyediakan fungsi dasar untuk membuat jendela, menangani input, dan menggambar objek.

    Dalam contoh ini, kita menggunakan:

    • windows.h untuk platform Windows.
    • glut.h untuk fungsi GLUT.
  2. Fungsi Display untuk Menggambar Objek Fungsi Display digunakan untuk menggambar objek di dalam jendela OpenGL. Di dalam fungsi ini, kita dapat mendefinisikan berbagai bentuk geometris seperti garis, titik, dan poligon.

    Berikut adalah implementasi fungsi Display yang menggambar kotak besar, kotak kecil, dan segitiga:

    void Display(){
        glClear(GL_COLOR_BUFFER_BIT);  // Membersihkan layar
    
        // Kotak besar (Line Strip)
        glBegin(GL_LINE_STRIP);       
        glColor3f(1,0,0);       // Warna merah
        glVertex2f(60,50);      // Titik satu
        glVertex2f(60,190);     // Titik dua
        glVertex2f(250,190);    // Titik tiga
        glVertex2f(250,50);     // Titik empat
        glVertex2f(60,50);      // Titik lima
        glEnd();
    
        // Kotak kecil (Line Strip)
        glBegin(GL_LINE_STRIP);
        glColor3f(0,1,1);       // Warna cyan
        glVertex2f(120,95);     // Titik satu
        glVertex2f(120,150);    // Titik dua
        glVertex2f(190,150);    // Titik tiga
        glVertex2f(190,95);     // Titik empat
        glVertex2f(120,95);     // Titik lima
        glEnd();
    
        // Segitiga pertama dan kedua (Line Strip)
        glBegin(GL_LINE_STRIP);
        glColor3f(1,0,1);       // Warna ungu
        glVertex2f(60,50);      // Titik satu
        glVertex2f(115,65);     // Titik dua
        glVertex2f(160,50);     // Titik tiga
        glVertex2f(200,65);     // Titik empat
        glVertex2f(250,50);     // Titik lima
        glEnd();
    
        // Segitiga ketiga dan keempat
        glColor3f(1,0,1);       // Warna ungu
        glVertex2f(240,50);     // Titik satu
        glVertex2f(225,85);     // Titik dua
        glVertex2f(240,120);    // Titik tiga
        glEnd();
    
        glFlush(); // Menampilkan hasil
    }
  1. Fungsi reshape untuk Menyesuaikan Ukuran Layar
    Fungsi reshape digunakan untuk menangani perubahan ukuran jendela agar tampilan objek tetap sesuai dengan ukuran layar. Fungsi ini akan mengubah proyeksi sesuai dengan dimensi jendela yang baru.

    void reshape(int w, int h){
        glViewport(0,0,(GLsizei)w,(GLsizei)h);  // Mengubah viewport
        glMatrixMode(GL_PROJECTION);             // Mengubah mode matriks
        glLoadIdentity();                        // Mengatur ulang matriks proyeksi
        gluOrtho2D(0,320,0,240);                 // Mengatur proyeksi 2D
    }
    
  2. Inisialisasi dan Fungsi Utama Fungsi init digunakan untuk menginisialisasi pengaturan dasar OpenGL seperti warna latar belakang dan ukuran titik yang digunakan.

    void init(){
        glClearColor(1,1,1,1); // Warna latar belakang putih
        glPointSize(5);        // Ukuran titik
    }
    

    Fungsi utama main digunakan untuk memulai program, membuat jendela, dan menjalankan loop utama dari OpenGL:

    int main(int args, char* argv[]){
        glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);  // Mengatur mode tampilan
        glutInitWindowSize(400, 400);                 // Ukuran jendela
        glutCreateWindow("Window OpenGl Pertama Saya");  // Judul jendela
        init();                                       // Inisialisasi
        glutDisplayFunc(Display);                     // Fungsi untuk menggambar
        glutReshapeFunc(reshape);                     // Fungsi untuk meresize layar
        glutMainLoop();                               // Memulai loop utama GLUT
    }
    

Kesimpulan

Dalam artikel ini, kita telah mempelajari cara menggunakan OpenGL dengan C++ untuk menggambar objek geometris sederhana seperti kotak dan segitiga. Program ini menggunakan fungsi dasar OpenGL seperti glBegin, glVertex, dan glEnd untuk mendefinisikan bentuk yang akan digambar. Fungsi glut juga digunakan untuk menangani jendela dan tampilan grafis. Dengan memahami struktur dasar program ini, Anda dapat mengembangkan aplikasi grafis 2D lainnya menggunakan OpenGL.

Semoga artikel ini bermanfaat sebagai referensi awal dalam pemrograman grafis menggunakan OpenGL!

Komentar