6.3. Iterpoloivt sävytysmeetelmät Seurvksi trkstell, mite esitettyä pistee vlo itesiteettimlli void käyttää moikulmiolle j lske vlo itesiteetti tämä tsolle. Käytettävissä o Gourudi j Phogi meetelmät. Eemmä käytetty Phogi meetelmä t trkemmt kirkksti vlistut kohdt. Gourudi meetelmä o kuiteki huomttvsti opempi suoritusjlt. Molempi meetelmiä käytetää lskem iterpoloiti kärkie iformtio perusteell moikulmio pisteille. Smll väheetää moikulmio särmie erottumist lopullisess kuvss. Iterpoloivt sävytysmeetelmät Gourudi sävytys Gourudi meetelmässä lsket kuvtull loklill heijstusmllill vlo itesiteetti moikulmio kärjissä, jok jälkee iterpoloid iide välillä projisoitvie pisteide itesiteetit. Tähä käytetää luvu 1.5. ilieri yhtälöä, joss omiisuus p o kärje itesiteetti I. Ku käytetää erityisiä kärkiormlej, särmie erottumie kuvss väheee. Kärkie ormlit A lsket kuv 6.15. muk ympäröivie tsopitoje ormlie ormoitu keskirvo: ( + + + A 1 + 2 + 3 + 4 / 1 2 3 4 6. luku 326 6. luku 327 Vilkist välillä tietorkeett, jok tulee kyseesee moikulmioverko tlletmisee tässä yhteydessä (kuv 6.16.. Tähdellistä siiä o esittää, mitkä moikulmiot liittyvät mihiki kärkii. Kuv 6.15. Kärje ormli sd ympäröivie moikulmioide ormlie keskirvo. Iterpoloitiyhtälöt lsket ikremetlisesti tehokkuussyide tki. Oleist tämä o luvu 1.5. kolme yhtälö tpuksess, jok lsket jokiselle pikselille. Olkoo lisäysrvo selussuorll. Itesiteeti muutos pikseliltä seurvlle o: I I s s, I s, 1 ( I + I I s Kuv 6.16. Moikulmioverko listoj sisältävä tietorkee. 6. luku 328 6. luku 329
Kosk itesiteetti lsket kärjissä, meetelmä ei os riittävästi ott huomioo kirkksti vlistuj kohti, mikä o heikkous. Kuv 6.17. ( hviollist tätä. Muistettkoo moikulmioverko olev krev pi pproksimtio. Määrätyille ktselu j vlo suuille voi esiityä diffuusi kompoetti A:ss j B:ssä sekä peiliheijstus rjoittu iide välille. Ku iterpoloid itesiteetti pisteessä P A: j B: iformtio perusteell, ei kirkksti vlistu koht lsket. Sitä vstoi kuv 6.17. ( tpuksess Phogi meetelmä iterpoloi kärkie ormleist eikä itesiteeteistä, jolloi kirkksti vlistut kohdt sävyttyvät premmi. Kuv 6.17. ( Gourudi sävytys j ( Phogi sävytys. 6. luku 330 6. luku 331 Iterpoloivt sävytysmeetelmät Phogi sävytys Tässä meetelmässä lsket kärkie ormleill moikulmio sisäos pikseliprojektioide ormlit. Iterpoloitu ormli käytettää sitte sävytysyhtälölle. Tällä o geometrie vikutus (kuv 6.17. (, jok säilyttää hiem krevuutt moikulmiopiss. Pretu mlli hitt o heiketyyt tehokkuus suoritusj klt. Ikremetlie lsket tehdää itesiteettilske kltisesti: s, sy, sz, s, 1 sy, 1 sz, 1 + + + Tässä s, sy j sz ovt selussuor ormlivektori s kompoetit j : s sy sz ( ( ( y z s sy sz y z 6. luku 332 6. luku 333
Sävytysvihtoehdot Rederöitijärjestelmissä o moesti hierrki, jok muk vlit suoritusj j ldu välillä: o Rutlkmlli: Rederöitiä ti sävytystä ei tehdä ollek. Tätä käytetää mm. sijoittm kohde kuv. Sitä käytetää myös imoiiss suuiteltess kohteide liikertoj. Tällöi täyttä sävytystä ei välttämättä trvit. o Litteät sävytetyt moikulmiot: Tämä o suoritusjlt ope vihtoehto. Ku sekä ktsoj että vlolähde ovt etäisiä, vektorit V j I void olett vkioiksi (kuv 6.18.. Kukisuus void tulkit myös moikulmio koo suhtee äihi etäisyyksii. Ku myös ormli oletet vkioksi, sd litteä ti vkiosävytys. Tällist o hviollistettu kuvss 6.18. j esimerkkitpust kuvss 6.19. Kuv 6.18. Kukiset vlolähde j ktsoj. Jos moikulmioverkko käytetää tsisee pit, tulos ei ole yleesä hyvä, kute ei kuv 6.19 tpuksessk. Ihmissilmä erott hyvi pieet sävyerot vierekkäiste moikulmioide välillä, j ihmise äköjärjestelmällä o huomttv herkkyys vlo itesiteetille. 6. luku 334 6. luku 335 o Gourudi sävytys: Tämä o perussävytysvihtoehto. Ku se ei pysty kuoll käsittelemää peiliheijstuksi, sitä käytetää lähiä diffuusie heijstuste lskemisee. o Phogi sävytys: Tämä void imetä hyväksi stdrdimeetelmäksi, mutt o eljä, viisi kert hitmpi kui Gourudi sävytys. o Gourudi j Phogi sekoitus: äitä void yhdistää suorittmll Gourud diffuusille j Phog heijstville. Kuv 6.19. Moikulmioverkolle käytetty litteää eli vkiosävytystä. 6. luku 336 6. luku 337
6.4. Rsteroiti Tähä meessä o esitetty, mite moikulmioide pisteille määrätää itesiteetit kärkie rvoje perusteell. Seurvksi pohdit, mite vrsiiset pikselit määrätää, joille itesiteettirvot trvit. Prosessi o imeltää rsteroiti. Jet käsittely khtee os. Esiksi ktsot, mite moikulmio särmää sivuvt pikselit käsitellää, j toiseksi, mite tämä iformtio järjestetää moikulmio sisäpisteide määräämiseksi. Rsterisärmät Särmä rsteroiti vrte o kksi tp, jotk perustuvt suor piirtoo ti luee täyttöö. Edellistä ei esitetä, kosk keskitytää kolmiulotteisii j kiiteisii kohteisii, mutt se piirtämisessä (esim. Bresehmi lgoritmi, 1965 pääpiirre o, että tulee muodost pikselie lierie sekvessi ilm ktkoj välissä (kuv 6.20. Kuv 6.20. Pikselisekvessi ( suor piirtämistä j ( moikulmio täyttämistä vrte. 6. luku 338 6. luku 339 Vähemmä trkk meetelmä soveltuu kiiteä luee täyttöö. Moikulmio täytetää vksuorie joje vull. ämä void jtell tvll moikulmio j selussuor leikkukse. Tällöi o muodostettv kulleki särmälle pikselisekvessi, jok vst särmä leikkuksi selussuorie kss (kuv 6.20. (. Tvllisesti ämä pikselikoorditit muodostet lskemll itertiivisesti, kuik pljo koordittirvo ksv kullki selussuorll j tekemällä tämä lisäys toistuvsti. Olkoot ( s,y s j ( e,y e särmä lku j loppupiste (y e > y s. Yksikertisi rsteroitilgoritmi o tyyppiä: : s m : ( e s /(y e y s for y : y s to y e do output(roud(,y : +m Meetelmä huoo puoli o, että m j o esitettävä liukulukui j muk o liukulukuyhteelsku sekä pyöristys liukuluvust kokoisluvuksi jokisell silmuk suorituskerrll. Edellisestä o johdettviss vi kokoislukuj käyttävä lgoritmi (Swso & Thyer 1986. Erotet esi rvoist m j kokoislukuos j murtolukuos. Silmuk jokisell kierroksell lsket yhtee eriksee ämä kksi os otte huomioo mhdollie muistiitti murtolukuos ylivuodo tpuksess. 6. luku 340 6. luku 341
Aluksi murtolukuos rvoksi setet 0.5, jott pyöristys o helposti suoritettviss. Esitetää meetelmä pseudokoodi: Ku murto os ei riipu kokoisosst, se void sklt kutt lij rvoll 2(y e y s, mikä muutt kike lske kokoislukuritmetiikk: i : s f : 0.5 mi : ( e s div (y e y s mf : ( e s / (y e y s mi for y : y s to y e do output(i,y i : i+mi f : f+mf if f>0.0 the {i:i+1; f:f 1.0} i : s f : (y e y s mi : ( e s div (y e y s mf : 2*(( e s mod (y e y s for y : y s to y e do output(i,y i : i+mi f : f+mf if f>0 the {i:i+1; f:f 2* (y e y s } 6. luku 342 6. luku 343 Edelliset liukulukulsket oli korvttu kokoislukulskell, jok o huomttvsti opemp. Aluss olev mod opertio lskee itse siss suor edeltävä jo jkojääökse. Lisäksi silmuk rvo 2(y e y s o vkio (jok hyvä käätäjä optimoi, ellei ohjelmoij sitä itse muut selliseksi. Rsterimoikulmiot Siirrytää särmie rsteroiist moikulmioide täyttöö. Sävytykse olless kyseessä moikulmio täyttö trkoitt sisäpisteide pikselie etsimistä j äille rvoje lskemist käyttäe edellä ettuj ikremetlisi sävytyslgoritmej. Tällöi tulee lske joje lku j loppupisteet sekä täyttää vksuorss suuss iide välit. Tätä vrte tehdää yleesä kuki moikulmio särmälist. Luod listt sisältävä tulukko, joss o lkio jokist selussuor vrte. Aluksi kuki iistä o tyhjä. Moikulmioide kuki särmä rsteroid vuoroll j pikseli (,y koorditti lisätää y koorditi määräämää ketjutettuu list (kuv 6.21.. 6. luku 344 6. luku 345
Kuv 6.21. Moikulmio rsteroiti vrte luotu ketjutettu list. Moikulmio täyttämistä vrte jokise selussuor peräkkäiset rvot poimit vstvst listst j täytetää rvopri väli. (Ku moikulmio o suljettu, listss o oltv i prillie määrä lkioit. Meetelmä selviytyy myös reikiä sisältävistä kokveist moikulmioist. Listt o tehokkit ljitell yleesä luotiviheess (eikä eriksee lopuksi j smll lske sävytysrvot. Mikäli kohde sisältää vi koveksej moikulmioit, särmie tietorkee yksikertistuu eikä ljittelu trvit. Käytäö klt rjoittumie kovekseihi ei ole mikää merkittävä seikk. Toistiseksi huomiott jätetty yksityiskoht o, missä moikulmio rjt trkk otte sijitsevt. Vierekkäiset moikulmiot sttisivt äet jättää uko väliisä ti meä päällekkäi. Kuvss 6.22. o esimerkki, kuik 3 levyie moikulmio vtii rederöitii 16 yksikköä, vikk peritteess 9 tulisi riittää. Kuv 6.22. Ogelm moikulmio rjoje suhtee: 9 pikselie täyttää 16 pikselise moikulmio. 6. luku 346 6. luku 347 Tvomie rtkisu tähä o sett äytteeottopiste pikselisä keskikoht (+0.5,y+0.5. (Pikseli mielletää 1.0 1.0 eliöksi, j äytteeottopiste o pikseliluee pikk, joss se äytteistetää pikseli rvo määräämiseksi. Tämä o kuiteki kömpelö meettely. Prempi o käyttää äytteeottopisteeä yhtä pikseli eljästä kulmpisteestä. Käytetää oike yläurkk. Tosi tällöi koko kuv siirtyy puoli pikseliä vsemmlle j ls, mutt tällä ei ole mitää käytäö merkitystä. 6. luku 348