T-106.1041 Tietotekniikan peruskurssi: TietokonegrafiikkaT-106.1041 Tietotekniikan peruskurssi:...
Transcript of T-106.1041 Tietotekniikan peruskurssi: TietokonegrafiikkaT-106.1041 Tietotekniikan peruskurssi:...
T-106.1041 Tietotekniikan peruskurssi:
Tietokonegrafiikka
Tassu Takala TKK, Tietoliikenneohjelmistojen ja
multimedian laboratorio
4.10.2007 Tietokonegrafiikka
2
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)
4.10.2007 Tietokonegrafiikka
3
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]
4.10.2007 Tietokonegrafiikka
4
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.10.2007 Tietokonegrafiikka
5
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
4.10.2007 Tietokonegrafiikka
6
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
4.10.2007 Tietokonegrafiikka
7
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ä
4.10.2007 Tietokonegrafiikka
8
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
4.10.2007 Tietokonegrafiikka
9
Esimerkki hierarkiasta: ihmismalli
VRML/MPEG-4: h-anim
4.10.2007 Tietokonegrafiikka
10
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ä
4.10.2007 Tietokonegrafiikka
11
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)
4.10.2007 Tietokonegrafiikka
12
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)
4.10.2007 Tietokonegrafiikka
13
Erilaisia renderointitapoja
‘wire frame’
‘flat shading’
muodon siloittaminen, teksturointi, varjot,
heijastukset, jne.
4.10.2007 Tietokonegrafiikka
14
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]
4.10.2007 Tietokonegrafiikka
15
Ää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)
4.10.2007 Tietokonegrafiikka
16
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ä)
4.10.2007 Tietokonegrafiikka
17
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
4.10.2007 Tietokonegrafiikka
18
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)
4.10.2007 Tietokonegrafiikka
19
Loppukevennys:�‘Kick Ass Kung Fu’�
http://www.kickasskungfu.net/gallery/video/kickass.mpg
4.10.2007 Tietokonegrafiikka
20
Kysyttävää ?