Pertemuan 13 - Pemrograman Komputer Grafik Menggunakan API

Pemrograman Grafis 3D dengan OpenGL

Simulasi interaktif objek 3D dengan kontrol rotasi pada tiga sumbu

Kontrol Rotasi

Rotasi X 30°
Rotasi Y 45°
Rotasi Z 20°

Kontrol Objek

Apa itu OpenGL?

OpenGL (Open Graphics Library) adalah API grafis 2D dan 3D yang dikembangkan oleh Silicon Graphics Inc. (SGI).

Karakteristik utama OpenGL:

  • Antarmuka yang efisien dan tidak bergantung pada perangkat keras
  • Dapat diimplementasikan pada berbagai platform
  • Menggunakan primitive geometris (titik, garis, poligon)
  • Membentuk dasar dari game, CAD, dan industri VR
  • Mendukung transformasi 3D dan rendering tingkat lanjut
Contoh Kode OpenGL untuk Kubus 3D C++
#include <GL/glut.h>

void display() {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    gluLookAt(3, 3, 3, 0, 0, 0, 0, 1, 0);
    
    glRotatef(angleX, 1.0, 0.0, 0.0);
    glRotatef(angleY, 0.0, 1.0, 0.0);
    glRotatef(angleZ, 0.0, 0.0, 1.0);
    
    glBegin(GL_QUADS);
        // Depan
        glColor3f(1.0, 0.0, 0.0);
        glVertex3f(-1.0, -1.0, 1.0);
        glVertex3f(1.0, -1.0, 1.0);
        glVertex3f(1.0, 1.0, 1.0);
        glVertex3f(-1.0, 1.0, 1.0);
        
        // Belakang
        glColor3f(0.0, 1.0, 0.0);
        glVertex3f(-1.0, -1.0, -1.0);
        glVertex3f(1.0, -1.0, -1.0);
        glVertex3f(1.0, 1.0, -1.0);
        glVertex3f(-1.0, 1.0, -1.0);
        
        // Kiri
        glColor3f(0.0, 0.0, 1.0);
        glVertex3f(-1.0, -1.0, 1.0);
        glVertex3f(-1.0, -1.0, -1.0);
        glVertex3f(-1.0, 1.0, -1.0);
        glVertex3f(-1.0, 1.0, 1.0);
        
        // Kanan
        glColor3f(1.0, 1.0, 0.0);
        glVertex3f(1.0, -1.0, 1.0);
        glVertex3f(1.0, -1.0, -1.0);
        glVertex3f(1.0, 1.0, -1.0);
        glVertex3f(1.0, 1.0, 1.0);
        
        // Atas
        glColor3f(1.0, 0.0, 1.0);
        glVertex3f(-1.0, 1.0, 1.0);
        glVertex3f(1.0, 1.0, 1.0);
        glVertex3f(1.0, 1.0, -1.0);
        glVertex3f(-1.0, 1.0, -1.0);
        
        // Bawah
        glColor3f(0.0, 1.0, 1.0);
        glVertex3f(-1.0, -1.0, 1.0);
        glVertex3f(1.0, -1.0, 1.0);
        glVertex3f(1.0, -1.0, -1.0);
        glVertex3f(-1.0, -1.0, -1.0);
    glEnd();
    
    glutSwapBuffers();
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
    glutInitWindowSize(800, 600);
    glutCreateWindow("Kubus 3D dengan OpenGL");
    glEnable(GL_DEPTH_TEST);
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}
                        

Pengolahan Citra Digital

Manipulasi dan transformasi gambar menggunakan teknik pengolahan citra

Unggah Gambar

Operasi Citra

Gambar Asli

Hasil Pengolahan

Konsep Dasar Citra Digital

Citra digital adalah representasi dari citra yang diambil oleh mesin dengan bentuk pendekatan berdasarkan sampling dan kuantisasi.

Sampling menyatakan besarnya kotak-kotak yang disusun dalam baris dan kolom (piksel).

Kuantisasi menyatakan besarnya nilai tingkat kecerahan yang dinyatakan dalam nilai tingkat keabuan.

Citra Biner (Monokrom)

Hanya terdiri dari dua warna: hitam dan putih. Dibutuhkan 1 bit di memori.

Citra Grayscale

Berbagai tingkat keabuan. Semakin besar jumlah bit warna, semakin halus gradasi.

Citra Warna (True Color)

Setiap piksel merupakan kombinasi dari tiga warna dasar (RGB).

Teknik Pengolahan Citra

  • Image Enhancement: Perbaikan citra dengan meningkatkan kualitas citra
  • Image Restoration: Proses memperbaiki model citra
  • Color Image Processing: Proses yang melibatkan citra berwarna
  • Segmentation: Proses untuk membedakan atau memisahkan objek-objek
  • Object Recognition: Proses untuk mengenali objek-objek dalam citra