OpenGL adalah sebuah pustaka perangkat lunak untuk rendering grafik 2D dan 3D. Dalam pemrograman C++, OpenGL dapat digunakan untuk membuat aplikasi grafis yang sangat interaktif dan menarik. Pada artikel kali ini, kita akan membuat sebuah program OpenGL pertama menggunakan C++ dan GLUT (OpenGL Utility Toolkit) untuk menampilkan empat titik dengan warna yang berbeda.
Langkah-Langkah Membuat Program
1. Persiapan Lingkungan
Untuk menjalankan program OpenGL di C++, Anda harus memiliki beberapa perangkat lunak yang telah terinstal, seperti:
- GLUT: Sebuah pustaka yang menyediakan API untuk pengelolaan window, event handling, dan input/output.
- OpenGL: Pustaka grafis untuk menggambar objek 2D/3D.
- Compiler: Sebagai contoh, Anda bisa menggunakan MinGW atau Visual Studio.
Jika perangkat lunak tersebut telah terinstal dengan benar, Anda siap memulai.
2. Kode Program
Berikut adalah program OpenGL pertama yang akan menggambar empat titik dengan warna yang berbeda di layar:
#include<windows.h>
#include<gl\glut.h>
// Fungsi untuk menggambar objek
void Display(){
glClear(GL_COLOR_BUFFER_BIT); // Menghapus buffer warna
glBegin(GL_POINTS); // Memulai menggambar titik
glColor3f(0.0,1.0,0.0); // Mengatur warna hijau
glVertex2f(10.,10.); // Titik pertama
glColor3f(1.0,1.0,0.0); // Mengatur warna kuning
glVertex2f(10.,110.); // Titik kedua
glColor3f(0.0,0.0,1.0); // Mengatur warna biru
glVertex2f(150.,110.); // Titik ketiga
glColor3f(1.0,1.0,1.0); // Mengatur warna putih
glVertex2f(150.,10.); // Titik keempat
glEnd(); // Mengakhiri penggambaran titik
glFlush(); // Menyegarkan layar
}
// Fungsi untuk mengatur ulang ukuran jendela
void reshape(int w, int h){
glViewport(0, 0, (GLsizei)w, (GLsizei)h); // Menyesuaikan viewport
glMatrixMode(GL_PROJECTION); // Menyetel mode matriks proyeksi
glLoadIdentity(); // Memuat identitas matriks
gluOrtho2D(0.0, 240.0, 0.0, 240.0); // Menetapkan koordinat 2D ortogonal
}
// Fungsi inisialisasi OpenGL
void init(){
glClearColor(1.0, 0.0, 0.0, 1.0); // Mengatur warna latar belakang menjadi merah
glPointSize(5.0); // Menentukan ukuran titik yang akan digambar
}
// Fungsi utama
int main(int args, char* argv[]){
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // Menentukan mode display
glutInitWindowSize(240, 240); // Menetapkan ukuran jendela
glutCreateWindow("Windows OpenGL Pertama Saya"); // Membuat jendela dengan judul
init(); // Memanggil fungsi inisialisasi
glutDisplayFunc(Display); // Fungsi untuk menampilkan objek
glutReshapeFunc(reshape); // Fungsi untuk mengatur ulang ukuran jendela
glutMainLoop(); // Memulai loop utama GLUT
}
3. Penjelasan Program
- Inisialisasi:
- Fungsi
init()
mengatur warna latar belakang menjadi merah menggunakanglClearColor()
dan mengatur ukuran titik denganglPointSize()
.
- Fungsi
- Display:
- Fungsi
Display()
digunakan untuk menggambar objek pada layar. Dalam hal ini, kita menggambar empat titik dengan warna yang berbeda (hijau, kuning, biru, putih) menggunakan fungsiglColor3f()
danglVertex2f()
untuk menentukan posisi titik pada layar.
- Fungsi
- Pengaturan Jendela:
- Fungsi
reshape()
menangani perubahan ukuran jendela. Ini memastikan bahwa proyeksi tetap ortogonal dengan menggunakangluOrtho2D()
, yang menetapkan batas koordinat 2D pada layar.
- Fungsi
- GLUT Main Loop:
- Fungsi
glutMainLoop()
memastikan aplikasi tetap berjalan dan menunggu event, seperti input dari pengguna atau perubahan jendela.
- Fungsi
4. Hasil Output
Setelah menjalankan program ini, Anda akan melihat sebuah jendela yang menampilkan empat titik dengan warna berbeda (hijau, kuning, biru, dan putih). Titik-titik tersebut akan terletak di koordinat yang telah ditentukan pada fungsi glVertex2f()
.
5. Kesimpulan
Program ini menunjukkan dasar-dasar pemrograman grafis menggunakan OpenGL dan GLUT dalam C++. Meskipun hanya menggambar titik-titik dengan warna berbeda, Anda bisa mengembangkan lebih jauh untuk membuat objek 2D dan 3D yang lebih kompleks, serta memanipulasi interaktivitasnya. OpenGL menyediakan banyak sekali kemampuan untuk rendering grafik, baik untuk aplikasi desktop, game, atau simulasi.
Komentar
Posting Komentar