Penghasilan gambar pada
grafika komputer menggunakan primitif grafik dasar. Primitif ini memudahkan
untuk menggambar pada layar monitor sebagaimana penggunaan persamaan geometrik
sederhana. Contoh primitif grafik dasar adalah :
o Titik
o Garis, Segiempat
o Kurva, Lingkaran, ellipse, kurva bezier, kurva
lainnya
o Fill area
o Text
Objek kompleks dapat dibuat
dengan kombinasi dari primitif ini. Adapun contoh grafik primitif yang lain
adalah :
o Poligaris yaitu urutan garis
lurus yang saling terhubung.
o Teks adalah bentuk bahasa
tulisan dengan simbol-simbol tertentu. Teks merupakan kumpulan lebih dari dua
karakter.
o Citra raster adalah gambar yang
dibuat dengan piksel yang membedakan bayangan dan warna. Citra raster disimpan
dalam komputer sebagai larik bernilai numerik. Larik tersebut dikenal sebagai
piksel map atau bitmap. Ada tiga cara untuk menghasilkan citra grafik yaitu
Citra didisain dengan tangan, Citra yang didapat dari perhitungan dan Citra
yang discan. Pemaparan citra raster dinyatakan oleh piksel dengan video
displays (Cathod-ray Tube CRT), flat panel dispalys (LCD), hardcopy (printer
laser, dot matrix printers, ink-jet printers). Contoh proses pemaparan
permukaan adalah citra yang ditangkap lalu disimpan di frame buffer, kemudian
digunakan untuk mewarnai sebuah titik pada permukaan pemapar. Selanjutnya
proses scan di CRT. Frame buffer adalah matriks 2 dimensi yang mewakili piksel
pada pemapar. Ukuran matriks harus cukup untuk menyimpan kedalam warna pemapar
untuk semua piksel. Sebagai contoh pemapar (monitor) berresolusi 1280 x 1024
mempunya kedalaman warna 24 bit (~16 juta warna) membutuhkan ruang simpan
sekitar 4 Mb.
o Piksel dan Bitmap. Jumlah bit
yang digunakan untuk mewakili warna/bayangan dari masin-masing piksel (picture
element = pixel). 4 bit/piksel = 24 = 16 level abu-abu
IMPLEMENTASI
Contoh
program untuk merepresentasikan model obyek segiempat 2D. OpenGL memiliki
beberapa komponen dasar untuk merepresentasikan suatu obyek. Komponen dasar
tersebut, disebut sebagai OpenGL Geometric primitives.
Setiap obyek
harus dimodelkan sebagai kombinasi dari komponen-komponen dasar tersebut.
Sebagai contoh, obyek segiempat dimodelkan dengan menggunakan komponen dasar
GL_POLYGON. Obyek tersebut dapat pula dimodelkan dengan komponen dasar
GL_TRIANGLES atau pun GL_QUAD.
Dalam OpenGL, menggambar geometric primitives selalu dilakukan di antara fungsi
Setiap OpenGL geometric primitive dispesifikasi
oleh urutan vertex-vertex-nya dalam bentuk urutan koordinat homogenous.
Koordinat homogenous adalah koordinat dalam bentuk ( x, y, z, w ). Setiap
primitive memiliki standar tentang bagaimana vertex-vertex diorganisasikan.
Bentuk umum coding untuk pembuatan garis
:
glBegin(GL_LINES); /* Ingin menggambar garis */
glVertex2(tipe_data)(koordinat X1, koordinat Y1); /* menyatakan sejumlah titik */
glVertex2(tipe_data)(koordinat X2, koordinat Y2); /* menyatakan sejumlah titik */
glEnd(); /* Akhir menggambar titik */
glBegin(GL_LINES); /* Ingin menggambar garis */
glVertex2(tipe_data)(koordinat X1, koordinat Y1); /* menyatakan sejumlah titik */
glVertex2(tipe_data)(koordinat X2, koordinat Y2); /* menyatakan sejumlah titik */
glEnd(); /* Akhir menggambar titik */
Bentuk
umum coding untuk pembuatan segitiga (triangle):
glBegin(GL_TRIANGLES); //
awal menggambar segitiga
glVertex2d(x0,y0);
//menyatakan sejumlah titik
glVertex2d(x1,y1);
//menyatakan sejumlah titik
glVertex2d(x2,y2);
//menyatakan sejumlah titik
glVertex2d(x3,y3);
//menyatakan sejumlah titik
glVertex2d(x4,y4);
//menyatakan sejumlah titik
glVertex2d(x5,y5);
//menyatakan sejumlah titik
glEnd(); //Akhir menggambar titik
Bentuk coding untuk pembuatan kotak :
glBegin(GL_POLYGON); // awal
membuat objek kotak
glVertex2d(x0,y0); //menyatakan sejumlah titik
glVertex2d(x1,y1); //menyatakan sejumlah titik
glVertex2d(x2,y2); //menyatakan sejumlah titik
glVertex2d(x3,y3); //menyatakan sejumlah titik
glVertex2d(x4,y4); //menyatakan sejumlah titik
glVertex2d(x5,y5); //menyatakan sejumlah titik
glVertex2d(x6,y6); //menyatakan sejumlah titik
glVertex2d(x7,y7); //menyatakan sejumlah titik
glEnd(); // Akhir
menggambar tit
0 comments:
Post a Comment