Grafik Komputer [English]

                                                                       

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

 

 

Perwakilan Imej

 

Piksel – unsur imej yang terdiskret dlm 2 dimensi

peleraian: tahap butiran ruang imej (bil. piksel per jarak)

 

Perwakilan keamatan dan warna

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

 

Perwakilan geometrian

(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

 

Tukaran imbasan

            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

 

Fail imej

            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)

 

                                                             

 

Transformasi

 

Translasi

oleh 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 (w10): 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 kordinat

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

 

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

 

                                                           

 

Surihan sinar

 

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

 

           

Video

 

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

 

 

Animasi

 

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.

 

 

balik ke sinopsis SMES3103