Membuat Bola 3D Sederhana dengan OpenGL di Code::Blocks

Halo, teman-teman penggemar grafika komputer! 👋

Pada kesempatan kali ini, saya akan membagikan contoh program sederhana untuk menampilkan bola 3D menggunakan OpenGL di IDE Code::Blocks. Program ini memanfaatkan fungsi glutWireSphere untuk membuat bola dalam bentuk wireframe, serta glRotatef untuk memberikan efek rotasi.


🔧 Tools yang Digunakan:

  • IDE: Code::Blocks

  • Library: OpenGL (glut.h, GLU, dll.)

  • Platform: Windows (menggunakan <windows.h>)


🧠 Konsep Utama

Program ini terdiri dari beberapa bagian utama:

  1. Inisialisasi Tampilan (init)

  2. Fungsi Display untuk menggambar bola

  3. Fungsi reshape untuk menyesuaikan viewport

  4. Fungsi main sebagai titik awal program


📜 Source Code Lengkap

#include<windows.h>
#include<math.h>
#include<gl\glut.h>
#define PI 3.14

// Fungsi alternatif untuk membuat bola secara manual (tidak dipakai di main)
void Bola(GLfloat radius)
{
    GLdouble inc = PI/12;
    GLdouble theta, phi;

    for (theta=-PI/2;theta<(PI/2-inc);theta+=inc){
        for (phi=0;phi<2*PI;phi+=inc){
            glBegin(GL_POLYGON);
                glVertex3f(radius*cos(theta)*cos(phi), radius*sin(theta), radius*cos(theta)*sin(phi));
                glVertex3f(radius*cos(theta+inc)*cos(phi), radius*sin(theta+inc), radius*cos(theta+inc)*sin(phi));
                glVertex3f(radius*cos(theta+inc)*cos(phi+inc), radius*sin(theta+inc), radius*cos(theta+inc)*sin(phi+inc));
                glVertex3f(radius*cos(theta)*cos(phi+inc), radius*sin(theta), radius*cos(theta)*sin(phi+inc));
            glEnd();
        }
    }
    glFlush();
}

void Display(void){
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1,1,1);

    // Menggambar bola wireframe
    glutWireSphere(0.5, 25, 10);

    // Efek rotasi (sedikit animasi)
    glRotatef(0.05, 1, 0, 0);

    glFlush();
    glutSwapBuffers();
    glutPostRedisplay();
}

void reshape(int w, int h){
    glViewport(0, 0, (GLsizei)w, (GLsizei)h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glMatrixMode(GL_MODELVIEW);
    glOrtho(-2, 2, -2, 2, 2, 20);
    gluLookAt(0, 0, 3, 0, 0, -100, 0, 1, 0);
}

void init(void){
    glClearColor(0, 0, 0, 0);
    glPolygonMode(GL_FRONT, GL_LINE); // Menampilkan hanya garis luar (wireframe)
    glPolygonMode(GL_BACK, GL_LINE);
}

int main(int argc, char* argv[]){
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(500, 500);
    glutInitWindowPosition(500, 200);
    glutCreateWindow("Tugas TM12");
    init();
    glutDisplayFunc(Display);
    glutReshapeFunc(reshape);
    glutMainLoop();
}
Codeblocks,Komputer Grafik,

🖼️ Hasil yang Ditampilkan

Program akan menampilkan bola 3D wireframe berwarna putih di atas latar belakang hitam. Bola akan tampak seperti berputar perlahan karena adanya perintah glRotatef.


📌 Catatan Tambahan

  • Jika ingin menggambar bola tanpa wireframe, kamu bisa menggunakan glutSolidSphere() alih-alih glutWireSphere().

  • Untuk membuat animasi lebih halus, sebaiknya gunakan GLUT_DOUBLE untuk glutInitDisplayMode.


Semoga tutorial sederhana ini bermanfaat buat kamu yang sedang belajar grafika komputer dengan OpenGL. Yuk, coba modifikasi sendiri efek rotasinya atau coba tambahkan pencahayaan agar bola tampak lebih realistis!

Kalau ada pertanyaan atau butuh bantuan debugging, feel free untuk komentar di bawah ya! 😊

Komentar