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:
Posting Komentar