T-111.1100 Johdatus Tietoliikenteeseen ja Multimediaan Tietokonegrafiikka Timo Tossavainen Mediatekniikan laitos Timo.Tossavainen@tkk.fi T-111.1100 p. 1
Sisältö Rasterigrafiikka Grafiikan matematiikkaa Vektorigrafiikkaa Mallintaminen Sävytys Animaatio Virtuaalimaailmat Tutkimus Grafiikan kurssit T-111.1100 p. 2
Rasterigrafiikka Digitaaliset kuvat koostuvat pikseleistä hilalla, rasterilla Pikselillä voi olla väri Tyypillinen esitys muistissa Pikselin värikomponentit peräkkäin muistissa Kuva taulukkona pikseleiden värejä Näytönohjain näyttää taulukon sisällön kuvaruudulla. T-111.1100 p. 3
PutPixel, GetPixel Pikselin värin muuttaminen. Kirjoitetaan väri taulukkoon. PUTPIXEL(x,y,c) Image[x][y] c. Pikselin värin lukeminen. Luetaan väri taulukosta. GETPIXEL(x,y) return Image[x][y]. Monimutkaisemmat piirto-operaatiot rakentuvat näiden päälle. T-111.1100 p. 4
Bresenhamin jananpiirto Liikutaan sitä koordinaattiakselia pitkin, jolla jana on pidempi, ja väritetään rivin tai sarakkeen pikseli joka on janaa lähimpänä. Algoritmissa nerokas tapa laskea seuraava lähin piste edellisestä ilman kertolaskuja ja pyöristysvirheitä. y x x y (y 0 x x 0 y) = 0 ( y, x) e (x 1,y 1 ) y (x 0,y 0 ) x T-111.1100 p. 5
Alueen värittäminen Värjättävä jokin alue uudella värillä Väri tai reunan väri määrittelee alueen x Rekursiivinen algoritmi: Jos alkupikseli ei ole reunaa tai uuden värin värinen, väritä pikseli ja yritä täyttää alue alkupikselin naapureista. T-111.1100 p. 6
Monikulmion täyttäminen Etene ylhäältä alas, laske jokaisella vaakarivillä monikulmion ja vaakarivin leikkaukset ja täytä joka toinen leikkausten väli. T-111.1100 p. 7
Rasterigrafiikan ongelmia Ohjelman toiminta eri näytöillä Muistin tarve, tehokkuus Kuvan siirtäminen vaatii jokaisen pikselin kopiointia Kuvan skaalaaminen ja kiertäminen laskennallisesti raskaita T-111.1100 p. 8
Vektorigrafiikkaa Kuvataan piirrettävä kuva äärettömän tarkkojen matemaattisten primitiivien avulla Piirretään l. renderoidaan kuva halutun resoluution rasterille Kuvan osia voidaan muokata toisistaan riippumatta. Tarvitaan laskennallisesti tehokkaita objekteja. Objektin siirtäminen, skaalaus, kierto Leikkaukset, etäisyydet T-111.1100 p. 9
Muunnokset Siirtojen, kiertojen ja skaalausten yhdisteet ovat ns. affiineja muunnoksia, jotka voidaan esittää matriiseilla, kun koordinaattivektoreiden loppuun lisätään 1. Esimerkki: Siirto tasolla eli 2D:ssä: 1 0 x x x + x 0 1 y y = y + y 0 0 1 1 1 Kuvausten yhdiste = matriisikertolasku. Käänteismatriisi = käänteiskuvauksen matriisi. T-111.1100 p. 10
Muunnokset Käyttämällä homogeenisia koordinaatteja, esim. 2D (x,y, 1) on sama piste kuin kaikki (wx,wy,w), w 0, voidaan esittää yleisillä matriiseilla ns. projektiiviset kuvaukset, kuten perspektiiviprojektio. Esimerkiksi (x,y,z) (x/z,y/z) x 1 0 0 0 y 0 1 0 0 z = 0 0 1 0 w x y z x/z y/z 1 T-111.1100 p. 11
Geometriset primitiivit Suora, puolisuora, jana Hypertaso Pallo, ellipsoidi Kolmio, monikulmio Muunnokset nopeita laskea Primitiivit säilyvät muunnoksissa suora suora kolmio kolmio hypertaso hypertaso kartioleikkaus kartioleikkaus T-111.1100 p. 12
Resoluutioriippumattomuus Mallinnetaan piirros aiemmin käsitellyillä matemaattisilla primitiiveillä Piirretään primitiivit rasterille (rasterointi). Muunnokset: Voidaan tuottaa kuva piirroksesta eri asennoissa, eri mittakaavoissa ja eri resoluutioilla. V 1 V 8 V 2 V 3 V 6 V 7 V 4 V 5 T-111.1100 p. 13
Rasterointi Piirretään approksimaatio geometrisesta primitiivistä. P C r Q T-111.1100 p. 14
Ikkuna, näyttöalue Piirrosta katsellaan ikkunan (window) läpi Ikkunasta näkyvä osuus piirretään näyttöalueeseen (viewport) T-111.1100 p. 15
Leikkaaminen Rasterista ulos jääviä primitiivejä ei voida piirtää Leikataan primitiivit näyttöalueen sisälle, piirretään tulos Leikkausalgoritmeja: Cohen-Sutherland (janat), Sutherland-Hodgman (monikulmiot). T-111.1100 p. 16
3D-vektorigrafiikka Suorat, kolmiot ja monikulmiot säilyvät perspektiiviprojektiossa n projektio P katsoja projektion keskus u ikkuna katselutaso projektiotaso projektori T-111.1100 p. 17
Mallintaminen Objektien pintageometria mallinnetaan tyypillisesti kolmioilla. Projisoidaan kärkipisteet ja piirretään kolmiot. T-111.1100 p. 18
Näkyvyys Myöhemmin piirretyt peittävät aiemmin piirretyt. Kuution piirto sivu kerrallaan voi tuottaa ao. tulokset. T-111.1100 p. 19
Näkyvyys - maalarin algoritmi Piirretään monikulmiot takaa eteen. Oh wait. T-111.1100 p. 20
Näkyvyys - säteenheitto T-111.1100 p. 21
Näkyvyys - syvyyspuskuri Pidetään kirjaa etäisyydestä, jolla viimeksi piirretty pinnan piste on. Piirretään uusi pinnan piste, jos se on lähempänä. 1 3 2 1 2 3 Kuva yläpuolelta, katsoja alhaalla. T-111.1100 p. 22
Sävytys Pinnalta havaitun värin muodostaminen (shading). T-111.1100 p. 23
Ohjelmoitava sävytys Liitetään mallin kulmapisteisiin tietoa, joka interpoloidaan kolmioiden yli. Sävytysfunktio laskee pinnan värin vakioista ja interpoloidusta tiedosta. Esimerkiksi Valonlähteiden paikat ja tyypit Materiaalin valaistusominaisuudet Tekstuurit ja tekstuurikoordinaatit Pinnan hienorakenne (kuhmut) Joskus kuva muodostetaan useiden piirtokertojen avulla (esim. varjot). T-111.1100 p. 24
Volumetrinen sumu T-111.1100 p. 25
Paikallinen valaistus - Phong Taustavalo (ambient) Hajaheijastuva valo (diffuse), mattapinnat Peiliheijastuva valo (specular), kiiltävät pinnat x θ l n r θ θ θ α e x cos θ T-111.1100 p. 26
Varjot T-111.1100 p. 27
Varjot (2) T-111.1100 p. 28
Globaali valaistus - säteenseuranta Lähetetään säde silmästä pinnan pisteeseen, seurataan heijastuvaa sädettä ja kerätään valo pinnan pisteistä. T-111.1100 p. 29
Animaatio Muutetaan piirrettävän maailman tilaa suhteessa aikaan. Piirretään kuvia tietyillä ajanhetkillä. Pieni muutos kuvien välillä saa aikaan liikehavainnon. Reaaliaikainen 20+ kuvaa/s. Ongelman monimutkaisuuden takia tarvitaan työkaluja helpottamaan animaation määrittelyä. Liikkeet voivat olla suunniteltuja tai pohjautua fysiikkaan tai interaktioon. T-111.1100 p. 30
Käänteiskinematiikka Artikuloidun rakenteen liikkeen laskeminen tavoitteiden perusteella. T-111.1100 p. 31
Virtuaalimaailmat Törmäykset, fysiikka, interaktio T-111.1100 p. 32
Tutkimus Kuvapohjainen mallinnus ja renderointi T-111.1100 p. 33
Tutkimus (2) T-111.1100 p. 34
Kurssit Vuorovaikutteisen tietokonegrafiikan perusteet Vuorovaikutteisen tietokonegrafiikan jatkokurssi 3D-tuotanto Tietokoneanimaatio Tietokonegrafiikan seminaari Keinotodellisuus Erikoiskurssit/tutkimusseminaarit T-111.1100 p. 35
Kysymyksiä? Seuraava luento: Keino- ja lisätty todellisuus. T-111.1100 p. 36