1.5. Vertailua Silmäillään laskostumisen estoa tietokonegrafiikan kannalta. Kuva 1.8. luonnehtii vaihtoehtoja. (1)Esisuodatus äärettömästi näytteitä pikseliä kohti Lasketaan projisoidun kohteen palojen täsmällinen vaikutus pikselissä. Tämä arvo on pikselin väri. Lähestymistavan käytännöllinen vaikutus on äärettömän tarkkuuden vähentäminen pikselinäytön äärelliseksi tarkkuudeksi. Jos pikselin fysikaalinen alue on pieni, tämä on laadukas, mutta täysin epäkäytännöllinen menetelmä. Tässä oletettiin valon intensiteetin olevan vakio mille tahansa kuvan palalle. Kyseessä on esisuodatus. Suodatetaan ennen näytteistämistä suorakulmionmuotoisella eli laatikkosuodattimella. Menetelmä lähestyy kuvan 1.6. (c) suodatusta. Kuva 1.8. Neljän lähestymistavan vertailua laskettaessa yksittäinen pikselin arvo. 1. luku 618 1. luku 619 () Ei suodatusta yksi näyte pikseliä kohti Otetaan ainoastaan yksi näyte pikseliä kohti. Tämä on ekvivalentti ensimmäisen vaihtoehdon kanssa silloin ja vain silloin, jos projektiossa pikseli sisältää yhden geometrisen rakenteen ja kaikki rakennerajat yhtyvät pikselin reunoihin. Tämä ehto on käytännössä mahdoton! Tällainen älä tee mitään lähestymistapa on tavallinen reaaliaika animoinnissa. Sitä voidaan käyttää myös joissakin esikatselumenetelmissä, joissa laskostumisen esto tehdään vasta jatkettaessa varsinaiseen kuvankäsittelyyn. 3) Jälkisuodatus n tasavälein otettua näytettä pikseliä kohti Tämä on tavallisin lähestymistapa laskostumisen estoa varten ja käsittää virtuaalisen kuvan renderöintiä n kertaa lopullisen kuvan tarkkuus. Tämä on jatkuvan kuvan approksimointia. Lopullinen kuva tuotetaan näytteistämällä virtuaalinen kuva ja rekonstruoimalla se konvoluutiolla. Molemmat operaatiot yhdistetään yhdeksi. Lähestymistavan tehokkuus riippuu ylinäytteistyksen määrästä sekä pikselin kuvarakenteen ja näytteistyksen välisestä suhteesta. Vaikka tätä voi pitää ensimmäisen vaihtoehdon approksimointina, saman kuvan palan näytteillä voi nyt olla eri intensiteetit. (4) Jälkisuodatus stokastiset näytteet Tämä mielletään edellisen muunnoksena. Tasavälisen näytteistyksen asemesta pikselissä näytteitä värisytetään hieman jonkin kaavan mukaan, ts. käytetään satunnaistamista esim. tavalla, joka oli edellä Monte Carlo menetelmän yhteydessä. 1. luku 60 1. luku 61
1.6. Esisuodatusmenetelmät Algoritmi (alkujaan Catmull 1978) perustuu alipikseligeometriaan jatkuvissa kuvissa ja palauttaa jokaiselle pikselille intensiteetin, joka lasketaan näkyvien alipikselien palojen aloja käyttäen painoarvoina intensiteettisummassa. Tämä on ekvivalenttia kuvan ja laatikkosuodattimen konvoluution kanssa sekä konvoluutiointegraalin arvon käytön kanssa yhdessä pisteessä lopullisena pikseliarvona. Tätä voidaan kutsua myös aluenäytteistämiseksi. Menetelmä sisältyy selaussuorarenderöintiin. Se etenee jakaen jatkuvaa kuvaa neliönmuotoisiin pikseleihin. Jokaisen tällaisen intensiteetti lasketaan leikkaamalla monikulmioita vasten pikselirajaa. Jos monikulmioiden palat menevät päällekkäin neliön sisällä, ne lajitellaan z arvon suhteen ja leikataan toisiaan vasten näkyvien palojen saamiseksi. Lopullinen intensiteetti lasketaan kertomalla monikulmion sävytys sen näkyvän palan mukaan. Menetelmä on laskennallisesti hyvin raskas, joten sitä on käytetty vain kaksiulotteisessa animoinnissa, kun kuvassa on ollut vain muutamia suurehkoja kohteita. Myöhemmin (Carpenter 1984, Fiume ym. 1983) on kehitetty alipikselipalojen approksimointia bittimaskeilla. Tällöin liukulukulaskenta voidaan ohittaa, mikä merkitsee paljon pienempää suoritusaikaa. Eräässä tehokkaassa menetelmässä (Abram ym. 1985) lasketaan aluksi konvoluutiointegraalin osuus ja tallennetaan tämä monikulmiopaloilla indeksoituun hakutauluun. Menetelmä perustuu siihen, että pikselin peittämistä monikulmiolla voidaan approksimoida rajatulla määrällä tapauksia. Algoritmi sisällytetään selaussuoramenettelyyn. Konvoluutio ei rajoitu yhteen pikseliin, vaan kattaa esim. 3 3 alueen. 1. luku 6 1. luku 63 Katsotaan 3 3 pikselialuetta ja 3 3 suodatinkerneliä (kuva 1.9.). Yksittäinen näkyvä pala keskipikselissä vaikuttaa konvoluutiointegraaliin, kun suodatin keskitetään kuhunkin yhdeksästä neliöstä. Nämä yhdeksän vaikutusta voidaan laskea esiprosessointina ja tallentaa hakutauluun. Prosessin kaksi päävaihetta ovat: (1)Etsitään näkyvät palat ja tunnistetaan tai luokitellaan niiden muoto. ()Indeksoidaan esiprosessoitu hakutaul joka antaa yhdeksän vaikutusarvoa kullekin muodolle. Yksittäinen palan intensiteetin kertominen esiprosessoidulla painoarvolla antaa halutun tuloksen. Kuva 1.9. Yksittäinen pala keskipikselissä vaikuttaa jokaisen yhdeksän neliön suodattamisessa. 1. luku 64 1. luku 65
1.7. Ylinäytteistys tai jälkisuodatus Tässä menetelmässä oletetaan, että muodot ovat seuraavaa seitsemää tyyppiä: (1) Pikselissä ei ole yhtään palaa. () Pala peittää pikselin kokonaan. (3) Pala on puolisuunnikkaanmuotoinen ja jakaa pikselin vastakkaisia reunoja pitkin. (4) Pala on kolmionmuotoinen ja jakaa pikselin vierekkäisiä reunoja pitkin. (5) Edellisen kohdan komplementti (viisikulmainen pala). (6) Pala on erikoistyyppinen, joka voidaan kuvata kahden tai useamman edellisen tapauksen erotuksena. (7) Palaa ei voi helposti määritellä edellisillä yksinkertaisilla tyypeillä. Ylinäytteistys on tavallisin keino estää laskostumista kuvien yhteydessä. Se soveltuu hyvin monikulmioverkon käsittelyyn. Lasketaan virtuaalinen kuva tilaresoluutioltaan eli tilatarkkuudeltaan suurempana kuin pikseliresoluutio ja keskiarvoistetaan alas korkean resoluution kuvasta matalan pikseliresoluution kuvaksi. Ajateltaessa tämä näytteistämisenä näytteenottotaajuutta nostettiin. Menetelmän etu on sen yksinkertaisuus, mutta huomattava heikkous sen laskennallinen raskaus ja kasvanut Z puskurin muistin tarve. Fourier teorian mielessä voidaan: (1)Luoda kuvan I(x,y):n näytteiden joukko jollakin resoluutiolla (suurempi kuin pikseliresoluutio). () Alipäästösuodattaa tämä kuva, jota pidetään jatkuvan kuvan approksimaationa. (3) Uudelleennäytteistää kuva pikseliresoluutiolla. 1. luku 66 1. luku 67 Vaiheet ja 3 toteutetaan samanaikaisesti konvoloimalla suodatin virtuaalisen kuvan kanssa ja käyttäen pikselin leveyttä askelina konvoluutiossa. Täten 3 virtuaaliselle kuvalle suodatin asetettaisiin ylipikseleille virtuaalisessa kuvassa käyttäen kolmen ylipikselin askelpituutta. Kuva 1.10. on esitys menetelmän toiminnasta ja kahdesta suodattimesta normalisoituina (summa yhtä kuin yksi) suodatinkertoimina eli painoarvoina. Parittomalle skaalaustekijälle S ja k ulotteiselle (suodatusikkunan leveys k+1) suodattimelle h saadaan: Si+ k Sj+ k I '( i, j) = I( p, q) h( Si p, Sj q) p= Si k q= Sj k Menetelmä toimii hyvin useimmille kuville ja on helposti otettavissa mukaan Z puskurialgoritmiin. Kuville, joiden spektri ei laske tilataajuuden noustessa, se ei sovellu. Kuva 1.10. konvoluutiolla. Virtuaalisen kuvan supistaminen 1. luku 68 1. luku 69
Ylinäytteistysmenetelmät eroavat n:n arvon suhteen ja käytetyn suodattimen muodon suhteen. Esim. keskinkertaiselle resoluutiolle, 51 51, riittää tavallisesti ylinäytteistää lukumäärällä 048 048, ts. n = 4. Suuri resoluutio voidaaan supistaa lopulliseen kokoonsa 51 51, mikä on ekvivalenttia konvoluution kanssa käyttäen laatikkosuodatinta. Parempia tuloksia saadaan kuitenkin käyttämällä muotoiltuja suodattimia, joiden kertoimet vaihtelevat niiden kernelin (maskin) sisällä. Näistä on sangen laaja kirjallisuus olemassa. Tosin valtaosa tästä tietämyksestä liittyy yksiulotteisiin signaaleihin. Tietokonegrafiikassa on erityisongelmia, joten kaikki yksiulotteisen maailman menetelmät eivät ole suoraan laajennettavissa useampiulotteisiin. Esim. tekstuurikuvaukset vaativat tilariippuvia suodattimia, joissa sekä suodattimen kernelin kertoimet että muoto vaihtelevat. Oheisessa taulukossa on kolmen Bartlettsuodatusikkunan eli maskin kertoimet, jotka muodostavat tavanomaisia, ei vaihtelevia suodattimia. Taulukko 1.1. Bartlett ikkunoita ylinäytteistetyn kuvan jälkisuodatukseen. 3 3 5 5 7 7 1 1 1 3 1 1 3 4 3 1 4 4 6 4 4 6 8 6 4 1 1 3 6 9 6 3 3 6 9 1 9 6 3 4 6 4 4 8 1 16 1 8 4 1 3 1 3 6 9 1 9 6 3 4 6 8 6 4 1 3 4 3 1 1. luku 630 1. luku 631 1.8. Kuvien Fourier muunnos Fourier teoriaa ei laajasti sovelleta kuvien yhteydessä, kuten on laita yksiulotteisille signaaleille. Kuville sitä käytetään lähinnä erikoistilanteissa, esim. maaston korkeuskenttien luomiseen. Kuva I(x,y) esitetään kahden tilamuuttujan intensiteettifunktiona. Kuvan Fourier muunnoksen laskeminen tarkoittaa, että kuva esitetään tilataajuuksien painotettuna joukkona. Yksittäisiä tilataajuuksia kutsutaan kantafunktioiksi. Fourier menetelmää hyödyntävät prosessit käsittävät yleensä kolme vaihetta. Aluksi kuvalle suoritetaan Fourier muunnos, joitakin operaatiota tehdään tehtävän ja tarpeen mukaan sekä lopuksi suoritetaan käänteinen Fourier muunnos päätyen takaisin tilamäärittelyalueeseen. Kuvan muuntamisessa ei menetetä mitään informaatiota, mutta kuvan visuaalinen informaatio vain esitetään toisella tavalla. Fourier muunnoksen piste sisältää informaatiota koko kuvasta. Se kertoo, kuinka paljon kyseistä tilataajuutta kuvassa esiintyy. Kuvan I(x,y) Fourier muunnos määritellään: 1 j ( ux+ vy) F( = I( x, y) e dxdy π Käänteismuunnos määritellään: 1 j ( ux+ vy) I( x, y) = F( e dudv π Fourier muunnos käsittää imaginäärisymbolin j, jolloin se voidaan esittää reaali ja imaginääriosina: 1. luku 63 1. luku 633
F ( = Re( + j Im( F( voidaan esittää kahtena funktiona, joita kutsutaan amplitudi ja vaihespektriksi: F( = (Re q( = tan 1 ( + Im ( ) (Im( / Re( ) 1/ Jotta muunnos olisi helpommin ymmärrettävissä lähdetään liikkeelle jälleen yksiulotteisesta. Muunnettaessa I(x) saadaan F(u). Amplitudispektri tai vaste F(u) määrää sinien joukon, jotka yhteenlaskettuina tuottavat alkuperäisen funktion I(x). Vaihespektri tai vaste määrää kunkin sinin vaihesuhteen (sen arvon kohdassa x=0). Näin mikä tahansa funktio I(x) hajautuu siniaaltojen kertoimien joukoksi. Kuva 1.11. esittää tilanteen. Kuva 1.11. Yksiulotteinen Fourier muunnos: (a) Siniaalto kuvautuu yhdeksi pisteeksi (impulssiksi). (b) Sen sijaan monimutkaisemman informaatioaallon ikkuna kuvautuu taajuusspektriksi. 1. luku 634 1. luku 635 Kaksiulotteinen funktio I(x,y) hajautuu tilataajuuksien F( joukoksi. Tilataajuus on pinta, jonka taajuus saadaan pisteen ( etäisyytenä origosta: Sen suunta on: u + v Yksittäinen piste F( kertoo, kuinka paljon kyseistä tilataajuutta esiintyy kuvassa. Kuva 1.1. esittää esimerkin, joka on analoginen edelliselle kuvalle. tan 1 ( u / Kuva 1.1. Yksittäisen tilataajuuden sisältävä kuva ja tämän Fourier muunnos. Kuvissa 1.13. 15. on lisää esimerkkejä. Kuvissa 1.16. ja 1.17. on suodatusesimerkkejä. 1. luku 636 1. luku 637
Kuva 1.13. (a) Kuva luonnosta. Kuvan Fouriermuunnos ei sisällä juuri mitään koherenssia. (b) Säännöllisiä osia sisältävä, ihmisen tekemän rakennelman kuva, jonka kuvallinen rakenteisuus tuottaa koherenssia muunnokseen. Kuva 1.14. Tekstuurikuvausten muunnoksia. Molemmat vasemman puolen tekstuurit ovat säännöllistä rakennetta sisältäviä, mutta niihin on lisätty häiriönä kasvin lehti. Tämä tuottaa muunnokseen epäselvän pystysuoran. 1. luku 638 1. luku 639 Kuva 1.15. Kuvan spektri rajoitettu ympyräalueina vastaten prosenttiosuuksia muunnoksessa. Tämä osoittaa, että kuvan sisällöstä pääosa on keskittynyt mataliin tilataajuuksiin. Kuva 1.16. Vasemmalla kuva ennen suodatusta ja oikealla sen jälkeen. Jälkimmäinen on saatu kahdeksasta vasemman puolen kaltaisesta pykäläisestä (jittered) kuvasta ylinäytteistyksen avulla. 1. luku 640 1. luku 641
Kuva 1.17. Vasemmanpuoleiselle kuvalle ei ole tehty suodatusta laskostumisen estämiseksi, mutta oikeanpuoleiselle on tehty. Huomaa erot korkokuvien reunoissa; oikealla ne ovat tasaisemmat. 1. luku 64