Kemungkinan-kemungkinan
rujukan:
Objektif
topik:Pelajar harus
menguasai asas grafik komputer termasuk perwakilan imej dan transformasi imej,
dan proses unjuran dan surihan sinar.
|
Pada asasnya, imej imej digitan: tatasusunan 2 dimensi unsur-unsur diskret (raster). Perwakilan geometrian perihalan ringkas bagi objek geometri membolehkan transformasi geometrian ke atas imej. Surihan sinar kaedah membina imej drp objek-objek dlm 3 dimensi dgn mensimulasi pantulan dsb sinar cahaya di atasnya |
Piksel unsur imej yang terdiskret dlm 2
dimensi
peleraian:
tahap butiran ruang imej (bil. piksel per jarak)
skala
keamatan (skala kelabu) terdiskret
warna
skala terdiskret bagi setiap warna asas
-
model warna RGB (kordinat warna) merah, hijau, biru (R,G,B)
sebagai paksi asas warna: (0,0,0) → hitam, (0,1,0) → hijau, (1,1,0) → kuning, (1,1,1) → putih
[model CMY (cyan-magenta-yellow): (C,M,Y)
= (1,1,1) (R,G,B) ]
-
pengkodan terus kod 3 bait (1 bait per warna ⇒ 256 aras keamatan per warna) → warna
-
jadual carian kod 8 bit (lokasi dlm jadual) → masukan 3 bait dlm jadual → warna
kedalaman
warna: tahap kehalusan pendiskretan warna
(imej
vektor)
dibina drp primitif-primitif:
titik (x,y)
2-dim; (x,y,z) 3-dim
garis
lurus 2 titik di atasnya, atau y=mx+c
bulatan 3 parameter
poligon
berisi dibina drp garis-garis lurus yg
membuat gelung tertutup
lengkung: poligarisan
dibina drp garis-garis lurus
bersambungan
permukaan dibina
daripada poligon-poligon (biasanya tigasegi atau empatsegi) bersambungan
(tepi-tepi poligon bersambung ini spt bingkai dawai)
-
jejaring poligon
jadual
verteks mengandungi kedudukan setiap verteks
jadual tepi
mengandungi verteks-verteks setiap tepi
jadual
poligon mengandungi verteks-verteks setiap poligon
perwakilan geometrian → raster
titik: nombor nyata → integer
garisan: mengufuk, menegak, |m|=1
mudah (ubah titik demi titik jarak sepiksel)
|m|>1
ubah y piksel demi piksel dan kira utk x
|m|<1 ubah x
piksel demi piksel dan kira utk y
|
|
Algoritma garisan Bresenham: Utk tukaran imbasan bagi garisan dari (x1,y1) ke (x2,y2) di mana x1<x2 dan 0<m<1: int x=x1, y=y1; int dx=x2-x1, dy=y2-y1,
dT=2*(dy-dx), dS=2*dy; int d=2*dy-dx; setPixel(x,y); while (x<x2) { x++; if (d<0) d=d+dS; else { y++; d=d+dT; } setPixel(x,y); } setiap perubahan x satu piksel tidak mengubah y atau mengubahnya satu piksel, bergantung kepada kecerunan Algoritma ini hanya membabitkan operasi mudah cekap |
pelbagai format: BMP, JPEG, TIFF,
GIF, dll
biasanya terdiri daripada 2
bahagian:
kepala (yang mengandungi maklumat
tentang imej dan struktur fail), dan
badan (yang mengandungi data imej)
Translasioleh vektor (a,b,c) (dlm 3-dim): x'=x+a y'=y+b z'=z+c menggunakan kordinat homogen,
Penskalaan (terhadap asalan) oleh sx dlm arah x, dsb: (>1 pembesaran, <1 pengecilan) x'=
sx x y'= sy y z'= sz z |
Kordinat homogen: Titik Kartesan (a,b,c) berada di atas garislurus menerusi asalan yg diberikan: x=at y=bt z=ct Jika (a1,b1,c1) dan (a2,b2,c2) berada di atas garislurus sebegini yg sama, maka ada t' di mana a1= a2t' b1= b2t' c1= c2t' (a1,b1,c1) dan (a2,b2,c2) dikatakan setara, ditulis (a1,b1,c1) ~ (a2,b2,c2) dan adalah kordinat homogen bagi titik [a,b,c] dlm satah unjuran. Titik Kartesan 2D (x,y) sepadan dgn titik unjuran (x1,y1,z1) yg berkordinat homogen x1= x, y1= y dan z1= 1. Utk 3D kordinat homogen (x1,y1,z1,w1) sepadan dgn titik Kartesan (x,y,z) dgn (w1≠0): x=x1/ w1, y=y1/ w1 dan z=z1/ w1. |
dalam
bentuk matriks:

kordinat homogen:

penskalaan
terhadap sesuatu titik (a,b,c)
≡ translasi (-a,-b,-c) kemudian penskalaan kemudian
translasi (a,b,c)
(lakukan transformasi
kordinat sebelum dan songsangannya selepas transformasi yang dikehendaki)
dalam bentuk matriks: hasildarab matriks translasi, matriks
penskalaan dan matriks translasi
Putaran
keliling asalan
matriks
putaran θ
terhadap
paksi z:

matriks putaran θ terhadap paksi y:

matriks putaran θ terhadap paksi x:

dalam kordinat homogen:
dsb.
putaran
secara am ≡ kombinasi putaran-putaran di atas
dalam bentuk matriks: hasildarab matriks putaran-putaran berkenaan
putaran
terhadap sesuatu titik (a,b,c)
≡ translasi (-a,-b,-c) kemudian putaran kemudian translasi (a,b,c)
dalam bentuk matriks: hasildarab matriks translasi, matriks
putaran dan matriks translasi
putaran
keliling garis tertentu ≡ putaran(-putaran) (dan mungkin
translasi) supaya paksi z (misalnya) bertindih dengan garisan itu
kemudian putaran keliling paksi z kemudian songsangan transformasi
pertama.
dalam bentuk matriks: hasildarab matriks putaran-putaran (dan
translasi) berkenaan
Pantulan
di dalam paksi
dalam paksi
x:

dsb.
Ricihan
Contoh: x'=x+hx(y-y0), y'=y:

dsb.
transformasi
translasi, putaran dan penskalaan supaya asalan, paksi dan skala sistem kordinat
kedua bertindih dengan asalan, paksi dan skala sistem kordinat pertama
-
titik-titik sistem kordinat kedua ditransformasikan menurut transformasi ini
Kordinat seketikaan sistem kordinat bagi satu objek
(subgambar) yang membina sesuatu gambar: perlu lakukan transformasi
kordinat (transformasi seketikaan) untuk menghubungkan setiap sistem kordinat
seketikaan ini dengan sistem kordinat gambar keseluruhan.
Unjuran perspektif
titik unjuran ke atas satah pandangan
ialah titik di atas satah itu yang dibuat oleh garis lurus dari pusat unjuran ke titik yang berkenaan di atas
objek
contoh:
satah pandangan satah x-y, pusat
unjuran C (0,0,-a). Titik P (x,y,z) di objek diunjurkan ke P' (x',y',z').
Gunakan segitiga serupa,

![]()
menggunakan
kordinat homogen, ini diberikan sbg:

anomali perspektif:
pengecilan perspektif semakin jauh sesuatu objek dari
pusat unjuran, semakin kecil saiz unjurannya
titik menghilang garisan-garisan selari (yg tak
serenjang kpd satah pandangan) kelihatan bertemu
kekeliruan pandangan objek di belakang pusat unjuran
diunjurkan terbalik atas-ke-bawah dan depan-ke-belakang
herotan topologian unjuran titik-titik yg berada di atas satah
yg selari dgn satah pandangan dan yg melalui pusat unjuran, adalah ke infiniti
Unjuran selari
titik-titik unjuran dari suatu objek diunjurkan ke atas satah pandangan
menerusi garis-garis lurus yang selari

lazim (orthographic) garis
pengunjur serenjang kepada satah pandangan
mis.
ke atas satah x-y:

senget (oblique) garis pengunjur
tidak serenjang kepada satah pandangan
mis.

Keratan buang
titik, garisan (jika ia tidak bersilang dengan garisan tetingkap keratan), bhg
garisan, dsb yang di luar tetingkap pandangan
3 dim:
boleh wujudkan satah-satah keratan (depan dan belakang) supaya titik dsb yang
tidak berada di antara satah-satah ini tidak dipaparkan
isipadu pandangan
yang di antara pengunjur yang melalui sempadan tetingkap pandangan, dan
satah-satah keratan
Permukaan tersorok
dan garisan tersorok dari pandangan tidak
dipaparkan
Beberapa
kaedah:
♦
bandingan kedalaman: jika dua titik berada di atas garis unjuran yang sama, titik yang
lebih dalam tersorok dan (warna) titik yang satu lagi dipaparkan
♦
algoritma penimbal-Z: dalam proses tukaran imbasan, nilai z (kedalaman)
terkecil semasa bagi titik yang ditukarkan kepada sesuatu piksel itu distor,
dan titik dengan nilai z terkecil terakhir digunakan
♦
pembuangan muka belakang: buang poligon yang menghadapi ke belakang (orientasi poligon boleh
diberikan oleh vektor normal ke permukaan luarnya, atau tepi terarah yang
memberikan pusingan ikut jam atau lawan jam) tidak menangani permukaan yang
dihadang / separa dihadang oleh permukaan lain
♦
algoritma pelukis: paparkan poligon satu demi satu menurut yang belakang (yang dalam)
dahulu
♦
algoritma imbasan garisan: imbas setiap nilai y utk
perolehi segmen garisan poligon yang bertemu setiap satah ini, dan bagi setiap
nilai y imbas pula setiap nilai x utk perolehi titik pertemuan segmen
garisan ini dengan setiap garisan x
ini; isih titik-titik ini mengikut nilai znya
titik dgn z terkecil dipaparkan.
Pengiraan dibantu oleh fakta tentang hubungan unsur, mis.
jika suatu piksel berada dalam satu poligon, piksel-piksel berdekatan
berkemungkinan besar berada dalam poligon yang sama, dsb
♦
algoritma subpembahagian: tentukan poligon terunjur yang mana yang bertindih dgn suatu kawasan
dan yang patut dipaparkan, jika tidak dapat, subbahagikan kawasan ini dan ulang
secara rekursi
Diberi
objek(-objek) dalam 3 dimensi, bina imej dengan mensimulasi sinar cahaya yang
sampai ke mata pemandang
Cahaya
diperihalkan oleh
kecerahan/lar: tenaga jumlah
rona: lebar
jalur yang dominan
ketepuan: darjah
kejelasan warna; = warna tulen/(warna tulen+warna putih)
Warna
dimodelkan oleh pelbagai model mis. teori
penyeluruhan trikromat (merah 700 nm, hijau
546.1 nm dan biru 435.8 nm sebagai tiga warna asas, yang lain merupakan
kombinasi linear), model warna XYZ CIE (menggunakan
3 warna asas sebenar X,Y,Z dan dimodifikasi dengan
kecekapan lar bagi setiapnya), gambarajah
kekromatan CIE (normalkan X+Y+Z=1
→ 2 parameter bebas sahaja
x=X/( X+Y+Z) dan y=Y/( X+Y+Z)
→ plotkan kpd paksi x dan y)
Transformasi
warna mis. dari kordinat RGB ke kordinat warna
sesuatu monitor paparan, atau dari kordinat warna suatu monitor ke satu yang
lain, boleh dilakukan menerusi hasildarab matriks yang sesuai.
Pencahayaan:
model
pencahayaan tempatan
pantulan cahaya daripada permukaan objek kepada mata pemandang
model
pencahayaan sejagat
memasukkan juga kesan sekunder seperti cahaya yang menembusi bahan
lutsinar/lutcahaya dan yang dipantul dari satu permukaan objek kepada permukaan
objek yang lain
Model Phong
model pencahayaan tempatan keamatan cahaya yang sampai kpd pemandang dari
satu permukaan ialah hasiltambah pantulan cahaya
ambien (cahaya yg berpantulan di persekitaran dan
dianggap seragam dalam semua arah dan warna), pantulan
berselerak cahaya dari sumber cahaya (dianggap
berkadaran dengan kosinus sudut tuju), dan pantulan
bintik dari sumber cahaya (dianggap berkadaran
dengan kosinus sudut perbezaaan daripada arah pantulan menurut hukum pantulan,
kuasa k, yang memerihalkan keberkilauan: k=1 permukaan pudar, k=100
permukaan seperti cermin):
I = Ia
ka + Ip (kd L.N + ks
(R.V )k)
di mana Ia
ialah keamatan cahaya ambien, Ip ialah keamatan sumber cahaya
(titik), ka dsb ialah pekali pantulan berkenaan
masing-masing, dan L, N, R dan V adalah vektor unit
dari titik permukaan berkenaan kepada sumber cahaya titik, kepada arah normal
permukaan, kepada arah pantulan menurut hukum pantulan, dan kepada mata
pemandang.
Untuk
warna, hasiltambahkan komponen-komponen berkenaan.
Mengira
warna permukaan di setiap titik memerlukan banyak operasi perlukan kaedah lorekan utk menjimatkan operasi.
-
lorekan malar:
gunakan nilai warna titik terpilih utk seluruh permukaan yang sama (ok utk sumber cahaya yg jauh)
-
lorekan Gouraud:
kira nilai warna bagi titik di verteks poligon dalam jejaring poligon yang
mewakili permukaan, kemudian interpolasikan warna di titik-titik di permukaan (boleh tangani permukaan lengkung terutama dengan
jejaring halus)
-
lorekan Phong:
spt Gouraud, tapi interpolasikan juga vektor normal di titik-titik lain (lebih banyak operasi tapi berkesan dalam menangani
tonjolan cahaya bintik)
ira permukaan
perlu tambahkan ira kepada lorekan permukaan:
-
ira terunjur:
unjurkan ira ke atas objek (spt songsangan unjuran
objek ke atas satah pandangan)
-
pemetaan ira:
petakan kordinat ruang ira kepada
kordinat permukaan objek (biasanya diandaikan pemetaan linear, mis. (u,w) → (θ,φ) dgn θ=Au+B dan φ=Cw+D )
-
ira pepejal:
ruang ira 3 dimensi, dgn permukaan objek mengerat ruang ini (dapat menangani ketakpadanan tersirat di antara peta ira
2 dimensi dengan permukaan dalam tiga dimensi)
Imej dibina
drp surihan sinar dari objek menerusi kamera lubang pin.
Sinar
dibina ke belakang (dari pemandang ke objek) sinar utama
-
jika
tak kena objek berikan sesuatu warna latar
-
jika
kena objek - warna piksel berkenaan
ditentukan oleh lorekan permukaan:
3 komponen (sinar
sekunder)
sumbangan tempatan dari sinar
bayang/sinar pencahayaan surih ke
sumber cahaya (kalau dihadang dalam bayang)
sumbangan
pantulan dari sinar terpantul bintik dari permukaan objek lain
sumbangan
hantaran dari sinar terhantar bintik terbias menerusi objek
lutsinar
Tambahan
dimensi masa imej dipaparkan satu demi satu secara berjujuk
(bingkai-bingkai).
Kadar
bingkai tahap pendiskretan masa
Fail
dipadatkan utk
menjimatkan ruang
hantaran cepat melalui rangkaian
kaedah-kaedah
pemadatan membabitkan pembuangan maklumat berulang
Format
fail: MPEG dsb
Jujukan
imej-imej untuk memberi kesan masa dan pergerakan
ledingan regangan, padatan ruang imej (penskalaan) yang tidak secara homogen
perubahan
bentuk (morphing)
mengubah bentuk suatu objek dalam imej kepada bentuk lain mengikut perubahan
masa [unjurkan bentuk-bentuk pertengahan dalam
bingkai-bingkai di antara bingkai awal dan bingkai akhir & lakukan
transformasi/ledingan yang sesuai]
Animasi
menggunakan jadual carian: objek dilukis di semua kedudukan yang ingin
ditunjukkan pada setiap bingkai, tapi warna setiapnya ditentukan oleh jadual
carian dalam cara mana hanya satu kedudukan objek (yang berkenaan bagi bingkai
berkenaan) dilihat, yang lain punyai warna seperti warna latar.