Grafika komputer BAB V


Bab IV
Atribut Output Primitif
 

Tujuan:
1)                  Mahasiswa memahami atribut output primitif.
2)                  Mahasiswa mampu berbagai atribut output primitif dan proses pembentukannya
 

Pada umumnya, setiap parameter yang memberi pengaruh pada output primitive ditampilkan sesuai dengan parameter atribut. Beberapa parameter atribut, seperti ukuran dan warna ditentukan  sebagai karakteristik dasar dari parameter. Sedangkan yang lain ditentukan untuk penampilan pada kondisi tertentu.
Teks dapat dibaca dari kiri ke kanan, miring searah diagonal (slanted diagonal), atau vetical sesuai kolom. Salah satu cara untuk mengatur atribut output primitif, yaitu dengan daftar parameter fungsi yang berkaitan, contohnya fungsi menggambar garis dapat berisi parameter untuk warna, tebal, dan lainnya.

4.1              Atribut Garis
Atribut dasar untuk garis lurus adalah  type  (tipe),  width  (tebal), dan  color
(warna). Dalam berapa paket aplikasi grafik, garis dapat ditampilkan dengan menggunakan pilihan pen atau brush.

4.1.1        Tipe Garis
Garis mempunyai beberapa linetype (tipe garis) diantaranya solid line, dashed line (garis putus), dan dotted line (garis titik-titik). Algoritma pembentukan garis dilengkapi dengan pengaturan panjang dan jarak yang menampilkan bagian solid sepanjang  garis. Garis putus dibuat dengan memberikan nilai jarak dengan bagian solid yang sama. Garis titik-titik dapat ditampilkan dengan memberikan jarak yang lebih besar dari bagian solid.

4.1.2        Tebal Garis
Implementasi dari tebal garis tergantung dari kemampuan alat output yang digunakan. Garis tebal pada video monitor dapat ditampilkan sebagai garis adjacent parallel (kumpulan garis sejajar yang berdekatan), sedangkan pada plotter mungkin menggunakan ukuran pen yang berbeda.
Pada implementasi raster, tebal garis standar diperoleh dengan menempatkan satu pixel pada tiap posisi, seperti algoritma Bressenham. Garis dengan ketebalan didapatkan dengan perkalian integer positif dari garis standar, dan menempatkan tambahan pixel pada posisi sejajar. Untuk garis dengan slope kurang dari 1, routine pembentukan garis dapat dimodifikasi untuk menampilkan ketebalan garis dengan menempatkan pada posisi vertikal setiap posisi x sepanjang garis.
Untuk garis dengan slope lebih besar dari 1, ketebalan garis dapat dibuat dengan horizontal span.

4.1.3        Pilihan Pen dan Brush
Pada beberapa paket aplikasi grafik, dapat ditampilkan dengan pilihan pen maupun brush. Kategori ini meliputi bentuk, ukuran, dan pola (pattern). Ketebalan yang bermacam-macam dari garis yang mempunyai bentuk pen dan brush dapat ditampilkan dengan cara mengubah ukuran dari mask.

4.1.4        Warna Garis
Bila suatu sistem dilengkapi dengan pilihan warna (atau intensitas),  parameter yang akan diberikan pada indeks warna termasuk dalam daftar nilai atribut dari sistem. Routine polyline membuat garis pada warna tertentu dengan mengatur nilai warna pada frame buffer untuk setiap posisi pixel, menggunakan prosedur set pixel. Jumlah warna tergantung pada jumlah bit yang akan digunakan untuk menyimpan informasi warna.

4.2              Fill Area Primitif
Fill area (pengisian area) output primitif standar pada paket aplikasi grafika pada umumnya adalah warna solid atau pola raster. Terdapat dua dasar  pendekatan untuk mengisi area pada raster sistem:
·                     Menentukan overlap interval untuk scan line yang melintasi area
·                     Dengan memulai dari titik tertentu pada posisi di dalam poligon dan menggambar dengan arah menyebar ke pinggir, sampai batas poligon.

4.2.1        Algoritma Boundary Fill
Metode ini bermanfaat untuk paket aplikasi grafik interaktif, dimana titik dalam dapat dengan mudah ditentukan. Prosedurnya yaitu menerima input koordinat dari suatu titik (x,y), warna isi dan warna garis batas. Dimulai dari titik (x,y) prosedur memeriksa posisi  titik tetangga, yaitu apakah merupakan warna batas, bila tidak maka titik tersebut digambarkan dengan warna isi. Proses ini dilanjutkan sampai semua titik pada batas diperiksa. Ada dua macam metode yaitu 4-connected dan 8-connected.

4.2.2        Algoritma Flood Fill
Metode ini dimulai pada titik (x,y) dan mendefinisikan seluruh pixel pada bidang tersebut dengan warna yang sama. Bila bidang yang akan diisi warna mempunyai beberapa warna, pertama-tama yang dilakukan adalah membuat nilai pixel yang baru, sehingga semua pixel mempunyai warna yang sama.

4.3              Pembentukan Karakter
Huruf, angka dan karakter lain dapat ditampilkan dalam berbagai ukuran (size) dan style. Jenis huruf dibagi menjadi 4 macam, yaitu serif, sanserif, agyptian dan dekoratif.
·                     Serif
Huruf dalam kategori serif mempunyai kait pada ujungnya. Misalnya : times new roman, book antiqua.
·                     Sanserif
Huruf dalam kategori sanserif tidak mempunyai kait pada ujungnya. Misalnya : arial, helvetica, tahoma.
·                     Agyptian
Huruf dalam kategori agyptian mempunyai kait dengan bentuk segi empat yang mempunyai karakter kokoh.
·                     Dekoratif
Huruf dalam kategori dekoratif mempunyai bentuk indah.  Misalnya :monotype corsiva
Dua macam metode dapat digunakan untuk menyimpan jenis huruf dalam komputer. Metode sederhana bitmap menggunakan pola grid dengan bentuk segi empat, dan karakternya disebut dengan bitmap font. Grid dari karakter dipetakan pada posisi frame  buffer, bit yang mempunyai nilai 1 berhubungan dengan tampilan pixel pada monitor.Metode lain, yaitu dengan stroke menggunakan garis lurus dan kurva, karakternya  disebut dengan outlilne font. Huruf ditampilkan menurut koordinat relatif (x,y) dimana pusat dari koordinat adalah pada posisi kiri bawah dimana karakter pertama yang ditampilkan.

4.4              Antialiasing
Seperti yang telah dikatakan sebelumnya bahwa konversi raster-scan adalah pengisian nilai-nilai elemen suatu "matriks" (yaitu frame buffer) sedemikian rupa sehingga secara visual "tergambarkan" primitif-  primitif grafik yang bersangkutan. Jadi pada dasarnya adalah semacam diskretisasi obyek tersebut. Selanjutnya sebagai sesuatu yang diskret, masalah yang timbul adalah distorsi informasi yang disebut aliasing. Secara visual obyek garis atau batas suatu area akan terlihat sebagai tangga (effek tangga atau "jaggies"). Peningkatan resolusi frame buffer dapat mengurangi efek ini namun tidak dapat dihilangkan sama sekali karena keterbatasan teknologi (ingat faktor-faktor yang menentukan resolusi: refresh rate, dan ukuran frame buffer).
Pada sistem raster dengan tingkat intensitas > 2 bisa diaplikasikan metoda antialiasing dengan memodifikasi intensitas pixel-pixel "batas" obyek dengan latar atau obyek lainnya. Modifikasi tersebut akan memper-"halus" batas-batas tersebut sehingga mengurangi penampakan yang "jaggies" tersebut. Ada tiga pendekatan:
·                     Supersampling (postfiltering)
·                     Area sampling
·                     pixel phasing

4.4.1        Supersampling dan Postfiltering
Secara lojik metoda ini "memperhalus" ukuran pixel ke dalam subpixel-subpixel dan "menggambarkan" garis  pada grid subpixel tsb. lalu nilai intensitas suatu pixel ditentukan sesuai dengan berapa banyak subpixelnya dikenai "garis" tersebut. Relasi: intensitas pixel ~ jumlah subpixel pada garis.
Ada dua cara penghitungan relasi tersebut :
·                     Menganggap garis adalah garis dengan ketebalan infinitesimal 0 (hanya garis lojik). Untuk subsampling  3x3 ada 4 kemungkinan tingkatan: 3 subpixel, 2 subpixel, 1 subpixel, dan tidak ada. Pemberian intensitas  sesuai dengan keempat tingkat tersebut.
Contoh:
·                     Menganggap garis adalah garis dengan tebal tetap yaitu 1 pixel (yaitu suatu segiempat dengan lebar 1 pixel)  dan intensitas dihitung sesuai dengan jumlah subpixel yang "tertutupi" oleh segi empat ini (Perlu diambil  acuan bahwa suatu subpixel "tertutupi", misalnya jika sudut kiri bawah subpixel ada di dalam segi empat).Yang paling sederhana adalah menggunakan nilai rasio jumlah subpixel
terhadap total subpixel  pada pixel sebagai fungsi intensitas.  Untuk subsampling
3x3 total subpixel adalah 9 sehingga ada 10 tingkat intensitas yang bisa diberikan. Khusus titik ujung yang bernilai bilangan bulat (karena bisa untuk  koordinat bilangan real) Akan diberi nilai penuh
Alternatif penghitungan sederhana (rasio tsb.) ini adalah dengan pembobotan dengan mask diskret (Pixelweighting  Mask), dan pembobotan dengan mask kontinyu (continuous filtering). 

Pixel-weighting Masks
Alternatif menggunakan rasio secara langsung di atas, teknik fitering dalam pengolahan citra (bedanya:  pengolahan citra pada pixel sedangkan di sini pada subpixel) dengan suatu mask (atau kernel) sesuai dengan subdivision pixel misalnya 3x3 subpixel digunakan untuk menghitung. Ada beberapa bentuk mask.
Contohnya:
- box mask (berefek averaging)
- gaussian mask
Kadang-kadang mask meliputi juga subpixel di pixel tetangganya untuk mendapatkan hasil yang lebih smooth.

Continuous Filtering
Smoothing mirip weighting mask di atas pada subpixel-subpixel (dari pixel ybs. dan juga dari subpixel tetangganya) namun menggunakan fungsi permukaan kontinyu: box, konus, atau gaussian. Jadi secara  teoritis dilakukan konvolusi antara fungsi filter dengan fungsi citra pada tingkat subpixel. Secara praktis untuk mengurangi komputasi digunakan suatu table-lookup dari kombinasi pixel dengan pixel-pixel tetangganya.

4.4.2        Area Sampling
Pada Unweighted Area Sampling suatu garis diangap sebagai segiempat dengan lebar 1 pixel seperti halnya pada supersampling cara kedua di atas. Yang dihitung adalah luas bagian pixel yang tertutup "segiempat" garis tersebut secara geometris. Penghitungan lebih akurat tetapi karena memerlukan perhitungan yang lebih rumit maka metoda ini lebih banyak digunakan untuk anti-aliasing batas dari fill-area. Metoda ini menghitung luas bagian dari pixel yang tertutup area (garis atau fill-area) dan dari rasio luas tsb. terhadap luas pixel dapat  ditentukan bobot foreground terhadap background untuk mendapatkan intensitas pixel. Cara penghitungannya?
Pitteway & Watkinson: untuk fill-area dengan memodifikasi midpoint algorithm untuk garis sehingga fungsi diskriminan p menentukan juga persentasi tsb. Dalam algoritma ini pada persamaan garis
y = m x + b, m £ 1
digunakan fungsi keputusan:
p = m (xi + 1) + b - (yi + ½)
Sementara bagian pixel yang tertutup area di bawah garis tersebut adalah suatu trapesium dengan ketinggian kiri y = m  (xi  - ½) + b  -  (yi – ½) dan ketinggian kanan y = m (xi + ½) + b - (yi – ½) serta lebar 1 (satuan pixel). Luas trapesium ini adalah = m xi + b - (yi - 0.5) = p - (1 - m)

4.4.3        Pixel Phasing
Pergeseran mikro (microposition) yang dilakukan oleh deflektor elektron sebesar 1/4, 1/2 atau 3/4 diameter pixel. 

Kompensasi Perbedaan Intensitas Garis
Secara normal garis diagonal (tanpa antialiasing) lebih tipis dari garis horisontal/vertikal karena pada garis tsb.  pixel-pixel lebih spanned dari pada pixel-pixel pada garis hosrisontal/diagonal. Jadi secara visual efek ini dapat  juga dikurangi dengan menaikkan intensitas garis yang mengarah diagonal sesuai dengan sudut dan mencapai maksimum pada 450 dengan faktor Ö2 dari garis horisontal/vertikal.

Tidak ada komentar: