10 October 2011

Tugas Peng.Grafik Komp. & Olah Citra


OPENGL


Sesuai dengan tugas yang diberikan oleh dosen saya, kali ini sedikit saya menjelaskan cara membuat grafik berbentuk Kotak, Garis dan Segitiga menggunakan OpenGL. Disini saya menggunakan Dev C++ sebagai buildernya.

Berikut sedikit pembahasan tentang OpenGL, yaitu sebagai graphics library yang sebagian bersifat open source, dapat dipakai pada banyak platform (Windows ataupun Linux) dan dapat digunakan pada berbagai jenis compiler bahasa pemrograman seperti C++, Delphi ataupun VB. Jadi dengan kata lain OpenGL adalah sebuah library tambahan yang dapat ditambahkan dalam berbagai platform dan bahasa pemrograman yang berbasis graphics dan OpenGL itu bukan bahasa pemrograman. Melainkan Application Programming Interface (API).

Selanjutnya apabila kita akan merubah atau menambahkan source code dan bereksperimen menggunakan OpenGL, kita hanya perlu mengubahnya pada bagian didalam /* OpenGl animation code goes here */. Pada badan Program inilah yang kita gunakan untuk mencoba pemograman grafik pada OpenGl dengan builder DevC++. Langsung saja kita mainkan codingnya.

Pertama, Membuat Garis menggunakan OpenGL

Saya memberikan code berikut:

glBegin (GL_LINES);
glColor3f (0.0f, 0.0f, 0.0f); glVertex2f (-0.8f, 0.0f);
glColor3f (9.0f, 9.0f, 9.0f); glVertex2f (0.8f, -0.0f);
glEnd ();

SwapBuffers (hDC);

bagian glBegin (GL_LINES); pembuatan garis.
glColor3f (0.0f, 0.0f, 0.0f); untuk pemberian warna dengan 3 float, pertama Merah, Hijau dan Biru.
glVertex2f (-0.8f, 0.0f); berfungsi untuk peletakan titik (koordinat) untuk ditampilkan pada output.
glEnd (); Akhir peletakan titik (program).
Terakhir SwapBuffers (hDC); digunakan untuk menukar bagian belakang buffer menjadi buffer layar (screen buffer).

Berikut output yang berhasil ditampilkan, terlihat dua buah titik yang saling dihubungkan hingga membentuk garis.


Kedua, Membuat Persegi Empat(Kotak) menggunakan OpenGL

Perhatikan Code Berikut :

glBegin(GL_QUADS);
glVertex3f (-0.6, -0.6, 0.0);glColor3f (0.1, 0.1, 0.1);
glVertex3f (0.6, -0.6, 0.0);glColor3f (6.0, 7.0, 7.0);
glVertex3f (0.6, 0.6, 0.0);glColor3f (0.1, 0.1, 0.1);
glVertex3f (-0.6, 0.6, 0.0);glColor3f (7.0, 7.0, 7.0);
glEnd();

SwapBuffers (hDC);

bagian glBegin (GL_QUADS); pembuatan persegi (empat titik).
glVertex3f (-0.6, -0.6, 0.0); berfungsi untuk peletakan titik (koordinat) untuk ditampilkan pada output.
glColor3f (0.0f, 0.0f, 0.0f); untuk pemberian warna pertama Merah, Hijau dan Biru untuk masing-masing titik.
glEnd (); Akhir peletakan titik (program).
Terakhir SwapBuffers (hDC); digunakan untuk menukar bagian belakang buffer menjadi buffer layar (screen buffer).

Dan hasil (output) terbentuk terdapat pada gambar dibawah, terlihat empat buah titik yang saling dihubungkan hingga membentuk persegi empat.


Selanjutnya, Membuat SegiTiga menggunakan OpenGL

Saya input coding berikut :

glBegin (GL_TRIANGLES);
glColor3f (0.0f, 0.0f, 0.0f); glVertex2f (0.0f, 0.8f);
glColor3f (9.0f, 9.0f, 9.0f); glVertex2f (0.79f, -0.7f);
glColor3f (0.0f, 0.0f, 0.0f); glVertex2f (-0.79f, -0.7f);
glEnd ();
SwapBuffers (hDC);

bagian glBegin (GL_TRIANGLES); pembuatan segitiga (tiga titik).
glColor3f (0.0f, 0.0f, 0.0f); untuk pemberian warna dengan 3 float, pertama Merah, Hijau dan Biru untuk masing-masing titik.
glVertex2f (0.0f, 0.8f); berfungsi untuk peletakan titik (koordinat) untuk ditampilkan pada output.
glEnd (); Akhir peletakan titik (program).
Terakhir SwapBuffers (hDC); digunakan untuk menukar bagian belakang buffer menjadi buffer layar (screen buffer).

Hasil dari program tersebut terdapat tiga titik yang saling dihubungkan sehingga membentuk segitiga.


Sekian, apabila ada pertanyaan silahkan comment dibawah. Credit untuk Agung dan Doni atas beberapa bantuannya. Terima Kasih

2 comments:

  1. kita juga punya nih artikel mengenai OpenGL, silahkan dikunjungi dan dibaca untuk menambah wawasan, berikut linknya
    http://repository.gunadarma.ac.id/bitstream/123456789/2325/1/Texture%20Mapping%20for%20Solar%20System%20Simulation(OpenGL%20Implementation).pdf
    trimakasih

    ReplyDelete
  2. gan, klo buat persegi, trus di dalemnya di isi per segi lagi..
    bisa ngga y?

    ReplyDelete