T-106.1041 Tietotekniikan peruskurssi: Tassu Takala TKK, Tietoliikenneohjelmistojen ja multimedian laboratorio
Luennon aiheita (1) mitä on tietokonegrafiikka? tietokone piirtää kuvia mikä on digitaalinen kuva? rasterikuva = suorakulmainen taulukko pisteitä (pixel) mistä kuvat saavat alkunsa? digikamera / skanneri käsin piirtäminen tietokoneen ruudulla matemaattinen malli (simulaatio) tai muu ohjelmoitu koodi (algoritmi) 2
Luennon aiheita (2) kuinka kuvia tuotetaan ja käsitellään? kolmiulotteisen maailman esittäminen kuvien esitystavat ja muokkaus mihin grafiikkakorttia tarvitaan? miten tuotetaan liikkuvaa (animoitua) kuvaa? nopea sarja kuvia = näennäinen liike vuorovaikutus (human-computer interaction, HCI) graafiset käyttöliittymät [muut mediat: ääni ja liike] 3
Digitaalinen kuva rasterikuva pikseli = pienin kuvaelementti, piste resoluutio = pikseleiden määrä (x- ja y- suunnissa) kuvan sisältö muodostuu pikseleiden väreistä väri muodostuu kolmesta komponentista Red + Green + Blue vektorigrafiikka = matemaattisen tarkkoja muotoja mittakaava muutettavissa tarkkuuden kärsimättä esim. kirjasimet (font) 4
Sovellusesimerkki: tietokonepeli Habbo Hotel 2-ulotteinen (2D) sarjakuvamainen ilmiasu hahmot toistuvat lähes samanlaisina tilanteesta toiseen Max Payne 3-ulotteinen (3D) realistinen ulkomuoto näkymä riippuu katselusuunnasta ja valaistuksesta nopeaa, reaaliaikaista toimintaa 5
Mitä peliin tarvitaan? pelimaisema ja pelihahmot kolmiulotteinen muoto (3D-geometria) pintakuviointi (tekstuuri) hahmojen (agenttien) liikkuminen (animaatio) ja mielekäs käyttäytyminen (tekoäly) usein myös: pelaajan sijaishahmo (avatar) pelitilanteen esittäminen (display) kuva virtuaalisella kameralla (renderointi) peliäänet: tapahtumaefektit ja taustamusiikki vuorovaikutus (interaktio) pelaajan kanssa pelaajan liikkuminen ja näkökulma ohjainlaitteiden (hiiri, näppäimet, anturit) seuranta 6
Geometrinen mallintaminen matemaattinen esitystapa 3-ulotteiselle muodolle kolmioista muodostuva monitahokaspinta parametriset käyrät ja pinnat (splini) määritellään ohjauspisteiden avulla piste ilmaistaan koordinaatteina (x,y,z) kolmio = kolme pistettä; monikulmio = jono pisteitä käyräelementti = päätepisteet + suunnat päätepisteissä monimutkainen muoto voi koostua suuresta joukosta peruselementtejä 7
Hierarkkinen mallinnus suuret kokonaisuudet muodostuvat osista nämä edelleen pienemmistä osista nämä edelleen vielä pienemmistä osista jne... kunkin osan sijainti määritellään suhteessa seuraavaksi isompaan kokonaisuuteen sijainti = siirtymä (translaatio) + asento (rotaatio) + mittakaavamuutos (skaalaus) esim. robottinivel = pelkkä rotaatio 8
Esimerkki hierarkiasta: ihmismalli VRML/MPEG-4: h-anim 9
Animaatio liike näytetään sarjana hetkellisiä näkymiä (snapshot) esim. elokuvassa 24 ruutua/s liikkeen määrittely (animointi) perinteinen tapa: piirretään kuva kerrallaan matemaattinen tapa: sijainti ajan funktiona [x,y,z](t) kukin näkymä lasketaan tietyllä ajan arvolla sovelletaan hierarkkisen mallin kaikkiin osiin liikeradat geometrisina (parametri)käyrinä 10
Pintarakenne (teksturointi) usein monikulmiomalli sellaisenaan ei riitä (tarvittaisiin liikaa kolmioita) esitetään hienorakenne monikulmion päälle liimattuna rasterikuvana (tekstuuri) määriteltävä, mikä osa kuvasta osuu monikulmion alueelle (texture mapping) tekstuuri voidaan tulkita monella tavalla väri (pinnan heijastuskertoimet pääväreille) muotopoikkeama geometriasta (bump/offset map) 11
Kuvantaminen (renderointi) mallinnettu 3D-maailma projisoidaan kuvatasolle virtuaalisen kameramallin avulla määriteltävä katselupiste ja -suunta (kuvatason normaali) sekä kuvan rajaus (frustrum) monikulmion kuva = nurkkapisteiden projisoidut sijainnit kuvatasolla monikulmion sisään jäävät pikselit väritetään pisteiden värin määrää käytetty valaistusmalli (ks. kuvat seuraavalla sivulla) 12
Erilaisia renderointitapoja muodon siloittaminen, teksturointi, varjot, heijastukset, jne. wire frame flat shading 13
Grafiikkakortti kuvan laskenta työlästä, jos esitettävänä suuri määrä monikulmioita / pikseleitä rinnakkaisprosessointi keskusyksikkö (CPU) käsittelee mallia (esim. animaatio) monikulmioina grafiikkaprosessori (GPU) laskee 3D-projisoinnin ja yksittäisten pikseleiden valaistuksen [grafiikkakortilla paljon laskentatehoa - voidaan ohjelmoida myös muuhun tarkoitukseen] 14
Äänet (auditory display) mitä tekemistä grafiikan kanssa? monella tavoin analoginen valon kanssa aaltoliike, säteittäinen eteneminen optiikan periaatteilla voidaan mallintaa myös akustiikkaa sound rendering 3D-äänentoisto äänen tulosuunta tehdään aistittavaksi stereon (vaakasuora panorointi) laajennus ääniefektit synkronissa animaation kanssa esim. puhe + huulten liike (lip-sync) 15
Vuorovaikutus (interaktio) vuorovaikutus = informaation kulkua molempiin suuntiin, ja siihen reagoimista ohjainlaitteiden (hiiri, näppäimet, anturit) seuranta tapahtumien (esim. näppäimen painallus) ohjaaminen suorittavalle ohjelmalle ohjauksen vaikutusten näyttäminen kaiku (esim. yhden kirjaimen kuvan ilmestyminen) vuorovaikutuksen tila (esim. mikä työkalu on käytössä) käyttökohteen tila (esim. tekstidokumentti kullakin hetkellä) 16
Graafinen käyttöliittymä (GUI) virtuaaliset työkalut (widget), esim. rullauskahva (scroll bar) rajattu alue (ikkuna) kullekin toiminnalle / sovellusohjelmalle grafiikan rooli = käyttöliittymäelementtien ja sisällön piirtäminen 17
Uusia suuntauksia multimodaalisuus (ei pelkkä grafiikka) ääni, tunto- ja liikeaisti uusia syöttölaitteita (näppäinten ja hiiren lisäksi) videokamera + liikkeen/kuvan tunnistus liike- (kiihtyvyys) ja paikka-anturit (mm. GPS) biosensorit (verenpaine, aivoaallot, jne.) uusia kommunikointikanavia esim. tunneilmaisut (kasvojen ilmeet, eleet) 18
Loppukevennys: Kick Ass Kung Fu http://www.kickasskungfu.net/gallery/ video/kickass.mpg 19
Kysyttävää? 20