Membuat Program OpenGL untuk Menggambar Poligon di Windows

Codeblocks,Komputer Grafik

OpenGL adalah salah satu API (Application Programming Interface) grafis yang banyak digunakan untuk membuat aplikasi grafis seperti game, animasi, dan visualisasi data. Pada tutorial ini, kita akan belajar cara membuat aplikasi OpenGL menggunakan C++ dan GLUT (OpenGL Utility Toolkit) untuk menggambar sebuah poligon pada jendela aplikasi di Windows.

1. Persiapan

Sebelum memulai, pastikan Anda sudah menginstal OpenGL dan GLUT pada sistem Anda. Anda juga perlu memastikan bahwa Anda memiliki compiler C++ seperti MinGW atau Visual Studio untuk menyusun program OpenGL.

2. Membuat Program OpenGL

Berikut adalah penjelasan kode dari program OpenGL untuk menggambar poligon:

#include <windows.h>
#include <gl/glut.h>  // Menyertakan header GLUT

// Fungsi untuk menggambar objek
void Display() {
    glClear(GL_COLOR_BUFFER_BIT);  // Membersihkan layar
    glBegin(GL_POLYGON);           // Memulai menggambar poligon
    glColor3f(1, 0, 0);            // Mengatur warna poligon (merah)
    
    // Menentukan titik-titik vertice poligon
    glVertex2f(380, 140);
    glVertex2f(278, 74);
    glVertex2f(265, 113);
    glVertex2f(105, 150);
    glVertex2f(125, 179);
    glVertex2f(60, 244);
    glVertex2f(140, 269);
    glVertex2f(133, 305);
    glVertex2f(245, 279);
    glVertex2f(140, 395);
    glVertex2f(188, 400);
    glVertex2f(190, 500);
    glVertex2f(275, 443);
    glVertex2f(308, 481);
    glVertex2f(360, 350);
    glVertex2f(390, 438);
    glVertex2f(420, 410);
    glVertex2f(469, 456);
    glVertex2f(503, 374);
    glVertex2f(540, 375);
    glVertex2f(480, 245);
    glVertex2f(510, 195);
    glVertex2f(398, 145);
    glVertex2f(438, 70);
    glVertex2f(425, 60);
    glEnd();  // Selesai menggambar poligon

    glFlush();  // Menampilkan gambar yang sudah digambar
}

// Fungsi untuk merubah ukuran jendela
void reshape(int w, int h) {
    glViewport(0, 0, (GLsizei)w, (GLsizei)h);  // Menentukan ukuran viewport
    glMatrixMode(GL_PROJECTION);  // Menggunakan mode proyeksi
    glLoadIdentity();             // Menghapus matriks proyeksi sebelumnya
    gluOrtho2D(0, 600, 0, 550);  // Menentukan sistem koordinat 2D
}

// Inisialisasi OpenGL
void init() {
    glClearColor(1, 1, 1, 0);  // Menentukan warna latar belakang (putih)
}

int main(int args, char* argv[]) {
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);  // Menentukan mode display
    glutInitWindowSize(600, 550);  // Ukuran jendela aplikasi
    glutCreateWindow("Windows OpenGL Pertama Saya");  // Membuat jendela aplikasi
    init();  // Memanggil fungsi inisialisasi
    glutDisplayFunc(Display);  // Fungsi untuk menggambar objek
    glutReshapeFunc(reshape);  // Fungsi untuk merubah ukuran jendela
    glutMainLoop();  // Memulai proses utama GLUT
    return 0;
}

3. Penjelasan Kode

Berikut adalah penjelasan bagian-bagian utama dari kode di atas:

  • Header File:

    #include<windows.h>
    #include<gl/glut.h>
    

    Kode ini menyertakan header file yang diperlukan untuk menggunakan OpenGL dan GLUT. windows.h untuk kompatibilitas dengan sistem operasi Windows, dan glut.h untuk fungsi GLUT.

  • Fungsi Display:

    void Display() {
        glClear(GL_COLOR_BUFFER_BIT);
        glBegin(GL_POLYGON);
        glColor3f(1, 0, 0);
        ...
    }
    

    Fungsi ini menggambar poligon. Dimulai dengan membersihkan buffer warna, kemudian menggunakan glBegin(GL_POLYGON) untuk memulai menggambar sebuah poligon. Setiap titik pada poligon ditentukan menggunakan glVertex2f(x, y).

  • Fungsi Reshape:

    void reshape(int w, int h) {
        glViewport(0, 0, (GLsizei)w, (GLsizei)h);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        gluOrtho2D(0, 600, 0, 550);
    }
    

    Fungsi ini digunakan untuk mengubah ukuran viewport OpenGL saat ukuran jendela aplikasi berubah. gluOrtho2D digunakan untuk mendefinisikan proyeksi ortogonal 2D.

  • Inisialisasi OpenGL:

    void init() {
        glClearColor(1, 1, 1, 0);
    }
    

    Fungsi ini menginisialisasi warna latar belakang menjadi putih menggunakan glClearColor.

  • Main Function:

    int main(int args, char* argv[]) {
        ...
        glutDisplayFunc(Display);
        glutReshapeFunc(reshape);
        ...
    }
    

    Fungsi utama ini mengatur ukuran jendela dan memulai loop utama GLUT yang akan terus berjalan hingga jendela ditutup. glutDisplayFunc mengatur fungsi untuk menggambar objek, sedangkan glutReshapeFunc mengatur fungsi untuk menangani perubahan ukuran jendela.

4. Menjalankan Program

Setelah Anda menulis program ini, Anda bisa menyusunnya menggunakan compiler C++ dan menjalankannya. Jika Anda menggunakan MinGW, pastikan Anda sudah menginstal OpenGL dan GLUT dengan benar.

Codeblocks,Komputer Grafik,

5. Kesimpulan

Pada tutorial ini, kita telah membuat program OpenGL pertama kita di Windows menggunakan GLUT. Program ini menggambar sebuah poligon di jendela aplikasi menggunakan koordinat 2D. Anda bisa mengembangkan aplikasi ini lebih lanjut dengan menambahkan fitur-fitur grafis lainnya menggunakan OpenGL.

Komentar