JellyPages.com
Silahkan membaca, silahkan menilai. Enjoy it !

Jumat, 26 Oktober 2012

Membuat Garis dengan OpenGL



Sekilas tentang OpenGL
OpenGL adalah sebuah program aplikasi interface yang digunakan untuk mendefinisikan komputer grafis 2D dan 3D. Program lintas-platform API ini umumnya dianggap ketetapan standar dalam industri komputer dalam interaksi dengan komputer grafis 2D dan juga telah menjadi alat yang biasa untuk digunakan dengan grafis 3D. Singkatnya, Open Graphics Library, OpenGL menghilangkan kebutuhan untuk pemrogram untuk menulis ulang bagian grafis dari sistem operasi setiap kali sebuah bisnis akan diupgrade ke versi baru dari sistem.

Fungsi dasar dari OpenGL adalah untuk mengeluarkan koleksi perintah khusus atau executable ke sistem operasi. Dengan demikian, program ini bekerja dengan perangkat keras grafis yang berada pada hard drive atau sumber tertentu lainnya. Setiap perintah dalam dirancang untuk melakukan tindakan tertentu, atau memulai efek khusus tertentu yang terkait dengan grafis.

Pada mata kuliah Grafis Komputer dan pengolahan citra, saya mendapat tugas untuk membuat macam-macam garis dengan OpenGL. Berikut adalah penjelasannya :

1. Garis Vertikal
Setelah membuka project baru, kita cari di bagian lembar kerja kalimat "OpenGL animation", lalu kita dapat mengetikkan kode untuk membuat garis vertikal. 
Kode untuk membuat garis vertikal yaitu :

glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix ();             
glClearColor(1,1,1,0);    
glColor3f(1,1,1); //        
glBegin(GL_LINES);              
glVertex3f(0.10,10.0,13.13);
glVertex3f(0,0,0.0);               

glEnd ();          

glPopMatrix ();
SwapBuffers (hDC);
Sleep (1);
}
}

Setelah kita mengcopas kode-kode tersebut, maka kita dapat mencompilenya dan setelah proses compile sukses, kita dapat langsung merunning. Hasilnya outputnya adalah sebagai berikut.



2. Garis Horizontal
Untuk membuat garis horizontal, kodingannya yaitu :


glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix ();
glClearColor(1,1,1,0);
glColor3f(1,1,1); //
glBegin(GL_LINES);
glVertex3f(-0.6f, 0.0f, 0.0f);
glVertex3f(0.6f, 0.0f, 0.0f);
glEnd ();
glPopMatrix ();
SwapBuffers (hDC);
Sleep (1);
}
}

Setelah semua kode diketikkan pada lembar kerja, maka kita dapat segera mencompilenya dan jika proses compile telah sukses, kita dapat merunningnya. Berikut adalah outputnya :




3. Garis Diagonal

Garis yang terakhir yang akan kita buat adalah garis diagonal. Berikut adalah kodingan untuk membuat garis diagonal.

glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix ();
glClearColor(1,1,1,0);
glColor3f(1,1,1);
glBegin(GL_LINES);
glVertex3f(0,0,-0.8);
glVertex3f(9.9,8.9,0.1);
glEnd ();
glPopMatrix ();
SwapBuffers (hDC);
Sleep (1);
}
}

Setelah kita selesai mengetikkan seluruh kodingan di lembar kerja, maka kita dapt langsung mengcompilenya dan jika proses compile telah selesai maka kita dapat langsung merunningnya. Berikut adalah outputnya :


Penjelasan.
glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
Menandakan warna apa yang digunakan sebagai background. Warna dinyatakan dalam bentuk RGBA. Jadi angka pertama mewakili warna merah, kedua hijau, ketiga biru, dan keempat adalah Alpha atau tingkat transparansi. Tiap warna berkisar antara 0 hingga 1.

glClear (GL_COLOR_BUFFER_BIT);
Fungsi ini akan menghapus window dan memberi warna yang telah kita definisikan sebelumnya dengan menggunakan glClearColor.

glPushMatrix() dan glPopMatrix()
glPushMatrix berfungsi untuk menyimpan koordinat yang ada. Sedangkan glPopMatrix adalah suatu fungsi guna memangil suatu fungsi yang telah disimpan pada glPushMatrix.
Dengan glPushMatrix() dan glPopMatrix(), kita tidak perlu mengembalikan posisi titik tengah sumbu koordinat. Apapun perubahan yang dilakukan setelah glPushMatrix() akan dikembalikan ke nilai awal setelah glPopMatrix. Untuk penggambaran objek dasar berikutnya, semua akan menggunakan cara ini. Untuk menggambar banyak titik, memasukkan posisinya satu demi satu tidaklah efisien. Maka diperlukan looping untuk mengambar banyak titik. Caranya adalah dengan menyimpan data ke variabel, lalu variabel tersebut digunakan dalam looping untuk dimasukkan ke dalam glVertex3f(…). Penggambaran titik keempat menggunakan looping untuk menggambar beberapa titik.

glColor3f(1,1,1);
adalah tiga warna utama yaitu Red, Green, da Blue dimana 1 berarti yes dan 0 berarti no. Gabungan tiga warna red, green, dan blue adalah putih maka garis yg dihasilkan adalah putih. 


glBegin(GL_LINES);

Unttuk mulai menggambar dalam bentuk garis. Setiap pasangan verteks sebagai segmen garis independen. Setiap dua verteks akan digambar sebuah garis.

glVertex3f(  ,  ,  );
untuk menentukan poisi sebuah garis yaitu x, y, dan z.


 glEnd();
untuk mengakhiri penggambaran sebuah garis. 

SwapBuffers (hDC);
digunakan untuk menukar bagian belakang buffer menjadi buffer layar (screen
buffer) 




Nama : Yuniar elfrida
Npm   : 18110777
Kelas  : 3KA31

1 komentar: