5. Grafiikkaliukuhihna: () geometriset operaatiot Johdanto Grafiikkaliukuhihnan tarkoitus on kuvata kolmiulotteisen kohdeavaruuden kuva kaksiulotteiseen kuva eli nättöavaruuteen. aikka kolmiulotteisiakin nättölaitteita on, kaksiulotteinen on tietsti tavallisin. 5. luku 25 Se ei ole vain tavanomaisissa kuvaputkinätöissä T:n kaltaisissa monitoreissa tai litteissä nätöissä, vaan mös virtuaalitodellisuuden katselulaitteissa, sillä näissä on kuvapari (ksi kumpaakin silmää varten) stereonäkmän luomiseksi, ts. svsvaikutelman aikaansaamiseksi. Seuraavassa tarkastellaan monikulmioverkkomalleja. Erilaiset kokonaisuuteen liittvät prosessit voidaan löhästi luokitella kahteen luokkaan: geometriset (tämä luku) ja algoritmiset (6. luku). Geometriset prosessit pitävät sisällään monikulmioiden kärkien käsittelä, niiden muunnoksia koordinaatistoavaruudesta toiseen ja osan monikulmioista poistamista. Renderöinti käsittää sävtksen ja tekstuurikuvaukset ja ovat edellistä laskennallisesti vaativampia. 5. luku 252 5.. Grafiikkaliukuhihnan koordinaattiavaruudet Kuvassa 5.. on kaavio, jossa siirrtään kolmiulotteisesta avaruudesta toiseen aina kuva avaruuteen asti, jossa renderöinti suoritetaan. asta tämän jälkeen lopuksi tulee kaksiulotteinen avaruus. Lokaalit eli mallintamiskoordinaattijärjestelmät Mallintamisen helpottamiseksi on kätevää tallentaa monikulmioverkkokohteen kärjet jonkin läheisen pisteen suhteen. Esim. asetetaan jokin kuution kärjistä origoon tai kiinnitetään pörähdskappaleen smmetriaakseliksi Z akseli. Tällöin monikulmion kärjet sijaitsevat kohteen lokaalissa koordinaatistossa. Mös monikulmion normaali ja kärkien normaalit tallennetaan siinä. Kärjille ja normaaleille voidaan tehdä lokaaleja muunnoksia. Kuva 5.. Kolmiulotteinen renderöintiliukuhihna. 5. luku 253 5. luku 254
Maailmankoordinaattijärjestelmä Kun kohde on mallinnettu, seuraava vaihe on sijoittaa se valmiiksi renderöintiä varten. Kun kullakin kohteella on oma lokaali lähtökoordinaatistonsa, ne pitää kuvata hteiseen globaaliin avaruuteen, maailmankoordinaatistoon. Kuvaukset tehdään muunnoksina tähän koordinaatistojärjestelmään, jossa kohteiden sijainnit tulee määrätä toisiinsa nähden. Mikäli kohdetta animoidaan, animointijärjestelmän tulee liittää ajasta riippuva muunnos kohteeseen. Avaruuden näkmää valaistaan. Tätä varten määritellään valolähteet. Mikäli sävts on tässä mukana, kse on lopullisesta muunnoksesta, jossa kohteen normaalit tulee käsitellä. Kohteen pinnan attribuutit, kuten, tekstuuri ja väri, määritellään mös. Kamera, silmä eli katselukoordinaatisto Kamera, silmä eli katselukoordinaatistossa perustetaan katseluparametrit (katselupiste ja suunta) ja katselutilavuus. Toisinaan sovelletaan virtuaalikameraa analogiana katselujärjestelmälle. Useimmat renderöintijärjestelmät matkivat eräänlaista (linssitöntä) tädellistä neulansilmäkameraa, jossa filmi olisi asetettavissa mille tahansa etäisdelle reiästä. Tietokonegrafiikan suhteen tällä analogialla on kuitenkin rajoituksia. 5. luku 255 5. luku 256 Hahmotellaan tilannetta ensin leisessä mielessä. Kuvassa 5.2. nähdään kohde pelkistettnä kahden katsojan suunnista; näkmä on luonnollisesti erilainen eri suunnista. Kuvassa 5.3. katsotaan kameran näkmää, ja kuvassa 5.4. mukaan on lisätt valolähde. Kuvassa 5.5. on esitett neulansilmäkameran periaate ja tästä vielä halkileikkaus kuvassa 5.6. Tästä tulee snteettinen kameramalli kuvassa 5.7. Edelleen tarkastellaan kuvassa 5.8. kameran kuvan siirtoa kameran eteen mallissa, jolloin saadaan tavallaan kuvan 5.9. tilanne. Lopuksi kuvassa 5.. pohditaan kuvan siirron vaikutusta näkmään. Kuva 5.2. äkmä nähtnä eri suunnista. Kuva 5.3. Kamerajärjestelmä. 5. luku 257 5. luku 258
Kuva 5.4. Kamerajärjestelmä ja valolähde. Kuva 5.6. Halkileikkaus neulansilmäkameran toiminnasta. Kuva 5.5. eulansilmäkameran periaate. Kuva 5.7. Snteettinen kameramalli. 5. luku 259 5. luku 26 Kuva 5.8. Ekvivalentteja näkmiä: (a) kameran kuva normaalissa paikassa ja (b) siirrettnä kameran eteen. Kuva 5.. Ikkunanäkmä (a) alkuperäisestä paikasta ja (b) ikkunan siirron jälkeen. Seuraavaksi silmäillään peruskatselukoordinaatistojärjestelmää. Tämä on katselukoordinaatiston ja muutamien käsitteiden, kuten katselutilavuus, hdistelmä. Kuva 5.9. Snteettisen kameran näkmä. 5. luku 26 5. luku 262
Yksinkertaisin järjestelmä käsittää osat: Katselupiste, joka määrää kuvitellun katsojan paikan maailmankoordinaatistossa. Tämä voi olla katselukoordinaatiston origo tai projektion keskipiste hdessä katselusuunnan kanssa. Katselukoordinaatisto määriteltnä katselupisteen suhteen. Katselutaso, jolle näkmän kaksiulotteinen projektio luodaan. Katkaistu katselupramidi (frustum), joka määrittelee näkökentän. Osat on esitett kuvassa 5.. Katselukoordinaatistossa U on katselusuuntana sekä vektorien ja U muodostama taso, joka on hdensuuntainen katselutason kanssa. Kuva 5.. Peruskatselujärjestelmä: (a) katselupiste C ja suunta, (b) katselutason normaali d ksikön päässä C:stä, (c) katselukoordinaatiston origo C ja akselit U ja, jonka taso on hdensuuntainen katselutason kanssa sekä (d) katselutilavuus, joka on C:n ja katselutasoikkunan muodostama katkaistu pramidi. 5. luku 263 5. luku 264 Olkoon origo pisteessä C. Määritellään katselutilavuus eli katkaistu pramidi, joka määrittää katselutasoon ikkunan. Tämä ikkuna käsittää kuvatason, jolle lopullinen kuva projisoidaan. irtuaalikamera analogiaa soveltaen kamera on asetettavissa mielivaltaisesti valittuun paikkaan maailmankoordinaatistossa ja suunnattuna mihin tahansa suuntaan sekä kierrettnä katselusuuntaan. Pisteiden siirtämistä varten maailmankoordinaatistossa tehdään koordinaatiston siirto, mikä jakautuu kahdeksi muunnokseksi, siirto ja kierto (ks.. lukua): v v = T v näkmä 5. luku 265 Tässä on: ja: T = T = RT näkmä U R = Kättäjän on määriteltävä C, ja. C on helppo määritellä. Katselusuunta tai katselutason normaali on annettavissa kahden pallokoordinaatiston (kuva 5.2.) kulman ja avulla, missä ovat: = sinθ cosϕ = sinθ sinϕ = cosθ U 5. luku 266 U
Kuva 5.2. Pallokoordinaatisto. on edellisiä hankalampi. Järkevä tapa on, että kättäjä määrää likimääräisen suunnan, josta järjestelmä laskee suunnan (kuva 5.3.). Tämä projisoidaan katselutasolle ja normoidaan. = ' ( ' ) Kuva 5.3. ektori on laskettavissa :n avulla. U on määrättävissä: U = 5. luku 267 5. luku 268