• Ei tuloksia

T-110.1100 Johdatus tietoliikenteeseen ja Tietokonegrafiikka

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "T-110.1100 Johdatus tietoliikenteeseen ja Tietokonegrafiikka"

Copied!
43
0
0

Kokoteksti

(1)

T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan

kevät 2014

Tietokonegrafiikka

Jyry Suvilehto

(2)

Luennon sisältö

1. Sovellusalueita 2. Rasterigrafiikkaa 3. Vektorigrafiikkaa 4. 3D-grafiikkaa

1. Säteenheitto

2. Säteenseuranta

Luento pohjautuu Timo Tossavaisen ja Jaakko Lehtisen vastaavan luennon esityksiin

(3)

1991

Wolfenstein 3D

2014

Wolfenstein:

The New Order

(4)

Animaatio, elokuvat

 http://vimeo.com/16292363 vs

(5)

Simulointi

(6)

Arkkitehtuuri

The Light of Mies van der Rohe

http://graphics.stanfor d.edu/~henrik/animati ons/

(7)

KAIKKI SOVELLUKSET

RAKENTUVAT SAMOILLE

PERUSPERIAATTEILLE

(8)

Rasterigrafiikka

Digitaaliset kuvat

koostuvat pikseleistä hilassa

Pikselillä voi olla väri

Tyypillinen esitys muistissa

– Pikselit peräkkäin – Saman pikselin

värikomponentit peräkkäin

(9)

Rasteriarkkitehtuuri

(10)

Rasteriesityksen ongelmia

Rakenteeton

– Pelkkiä pikseleitä

Tarvitsee paljon tilaa

Vaikea muokata (zoomata, kiertää)

Toimivuus riippuu näytön tarkkuudesta

(11)

Vektorigrafiikka

 Kuvataan piirrettävä kuva matemaattisten primitiivien avulla

– ”Ääretön” tarkkuus

– Primitiivit muodostavat kokonaisuuksia

Renderoidaan eli muodostetaan kuva rasterille

Resoluutioriippumaton: tarkkuuden voi valita renderointivaiheessa

 Osat erikseen muokattavissa

(12)

Vektorigrafiikka

 Täytyy määritellä

– Primitiivit – Operaatiot:

• Siirto, skaalaus, kierto

• Leikkaukset, etäisyyksien määritteleminen

• Rasterointi eli piirtäminen

(13)

Muunnokset vektorigrafiikassa

Siirrot, kierrot ja skaalaukset on esitettävissä matriiseilla, kun koordinaattivektoreiden

loppuun lisätään 1

– Esim siirto ∆x ∆y verran matriisimuodossa

Kuvauksien yhdistäminen = matriisikertolasku

Käänteismatriisi = käänteiskuvauksen matriisi

Projektiiviset muunnokset esitettävissä homogeenisilla koordinaateilla operoivilla matriiseilla samaistamalla (wx, wy, w) w≠0 pisteen (x, y) koordinaateiksi

1 1

1 0 0

1 0

0 1

y y

x x y

x y x

(14)

Vektorigrafiikan primitiivit

 Säilyttävä muunnoksissa, projektiivisissa esim.

– Suora  suora – Kolmio  kolmio

– Hypertaso  hypertaso

 Tehokas kuvata, leikata ja piirtää

 Suora, puolisuora, jana, hypertaso, pallo, ellipsoidi, kolmio, monikulmio,

kartioleikkaus

(15)

Geometrinen laskenta

 Piirtoalgoritmit rakentuvat primitiivien

välisten geometristen laskelmien päälle

– Etäisyydet ja leikkaukset

P

Q

X1 X2

C r

C

A

B P

u

(16)

Rasterointi

Piirretään kuva geometrisesta primitiivistä

(17)

Mallintaminen

Koostetaan kuvio matemaattisista primitiiveistä

Muunnoksilla voidaan muokata kaikkia pisteitä yksi kerrallaan

– Kierto – Siirto

– Mittakaava

– Voidaan piirtää eri resoluutioisille näytöille

(18)

Katselu ja renderöinti

 Piirrosta katsellaan ikkunan (window) läpi

 Ikkunasta näkyvä osuus piirretään

näyttöalueeseen (viewport) esim. primitiivi kerrallaan

(19)

Leikkaaminen

 Näyttöalueen ulkopuolisia osia ei piirretä

 Hidasta laskea joka pikselille piirretäänkö se

 Yleensä primitiivit leikataan

näyttöalueeseen ennen piirtoa

(20)

Antialiasointi

Primitiivit ovat ”äärettömän” tarkkoja

Pikselin värin poimiminen pistemäisestä näytteestä aiheuttaa laskostumista (aliasing)

Optimi: alipäästösuodatetaan ideaalikuvaa

Käytännössä: piirretään korkeammalla resoluutiolla ja pienennetään tai käsitellään osittainen pikselin peitto

(21)

3D-vektorigrafiikka

Periaatteet samat kuin 2D-grafiikassa

Ulottuvuuksia yksi lisää

– Primitiivit kolmiulotteisia

– Muunnokset kolmiulotteisia (eli 4x4-matriisi, koska lisätään loppuun 1)

Pitää tehdä projektio tasolle

– Perspektiiviprojektio

– Yhdensuuntaisprojektio (esim. Tekniset piirrokset)

Näkyvyysongelma, asiat voivat peittää toisensa

Sävytys, valolla voi olla suunta ja kappaleet voivat olla varjossa

(22)

Perspektiiviprojektio

P katsoja

n

u

projektio

Katselutaso ikkuna

(23)

Näkyvyysongelma

 Myöhemmin piirretyt primitiivit peittävät aiemmin piirretyt

 Kuution voi piirtää sivu kerrallaan monella eri tavalla

(24)

Säteenheitto

 Heitetään säde jokaisen kuvapisteen läpi

 Etsitään säteen leikkaukset primitiivien kanssa

 Lähin leikkauspiste on näkyvä pinnan piste

(25)

Syvyyspuskuri (Z-buffer)

 Pidetään kirjaa jokaiseen pikseliin piirretyn pinnan pisteen syvyydestä

 Piirretään uudelleen pikseli, jos pinnan pistä lähempänä kuin aiempi

 Läpinäkymättömät primitiivit voidaan piirtää mielivaltaisessa järjestyksess

 Nopea: käytetyin tekniikka reaaliaikaisessa grafiikassa

(26)

Sävytys

 Pinnalta havaitun värin muodostaminen

 Valaistus, teksturointi, kuhmutus

(27)

Valaistus

Lambertin malli: pinnan normaali määrittää pisteen valoisuuden määrän

Phongin malli: taustavalo (ambient) +

hajaheijastuva valo (diffuse, mattapinta) + peiliheijastuva valo (specular)

Yksinkertaiset valonlähteet

– Spotti

– Yleisvalo (ambient) – Suuntavalo

(28)

Valaistus

Lambertin malli: pinnan normaali määrittää pisteen valoisuuden määrän

Phongin malli: taustavalo (ambient) +

hajaheijastuva valo (diffuse, mattapinta) + peiliheijastuva valo (specular)

Yksinkertaiset valonlähteet

– Spotti

– Yleisvalo (ambient) – Suuntavalo

n

θ θ

α r

e

(29)

Lambert shading

Phongin malli

Ei tekstuuria

Tekstuuri Pupu koostuu

kolmioista

Kolmion sisällä pisteiden

normaalit

interpoloidaan

(30)

Ohjelmoitava sävytys

Liitetään mallin kulmapisteisiin tietoa, joka interpoloidaan kolmioiden yli

Sävytysfunktio (pixel/fragment shader) laskee pinnan värin vakioista ja interpoloidusta

tiedosta, mm.

– Valonlähteiden paikat ja tyypit

– Materiaalin valaistusominaisuudet – Tekstuurit ja tekstuurikoordinaatit – Pinnan hienorakenne

Joissakin tekniikoissa useita piirtokertoja (mm. varjot)

(31)

Grafiikan liukuhihna

1. Mallinna geometria

– Tässä verkko kolmioita – Pinnnan materiaali on

hyvä olla tiedossa

Objektin koordinaatit

(32)

Grafiikan liukuhihna

1. Mallinna geometria

– Tässä verkko kolmioita – Pinnnan materiaali on

hyvä olla tiedossa

2. Lisää objektit maailman

koordinaatistoon

Jokaisella objektilla on oma

koordinaatistonsa Vain yksi maailman

Objektin koordinaatit Maailman koordinaatit

objekti

Toinen objekti

Maailman origo

(33)

Grafiikan liukuhihna

1. Mallinna geometria

– Tässä verkko kolmioita – Pinnnan materiaali on

hyvä olla tiedossa

2. Lisää objektit maailman

koordinaatistoon

Jokaisella objektilla on oma koordinaatistonsa Vain yksi maailman

koordinaatisto

3. Valitse katselupaikka ja suunta

Objektin koordinaatit Maailman koordinaatit

objekti

Toinen objekti

Maailman origo

Kameran koordinaatit

(34)

Grafiikan liukuhihna

1. Mallinna geometria

– Tässä verkko kolmioita

– Pinnnan materiaali on hyvä olla tiedossa

2. Lisää objektit maailman koordinaatistoon

Jokaisella objektilla on oma koordinaatistonsa Vain yksi maailman

koordinaatisto

3. Valitse katselupaikka ja suunta

4. Muuta objektit

katselukoordinaatistoon ja projisoi kuvatasolle

Objektin koordinaatit

Maailman koordinaatit Kameran koordinaatit

Kuvan koordinaatit

(35)

Grafiikan liukuhihna

Objektin

koordinaatit Maailman koordinaatit

Kameran koordinaatit

Kuvan

koordinaatit

(36)

Grafiikkaliukuhihnan ominaisuuksia

Piirtää primitiivin kerrallaan

Ei tarvitse tietoa koko näkymästä

Läpinäkymättömien primitiivien piirtojärjestys vapaa

Laitteistokiihdytetty

– Monta rinnakkaista liukuhihnaa (pipelineä) laskee yhtä aikaa

Suurelta osin ohjelmoitavissa

Maiseman geometriaa tarvitsevien

tekniikoiden toteutus hankalaa (heijastukset,

(37)

Animaatio

 Animaatiossa muutetaan

koordinaattimuutoksia ajan funktiona

Objektin

koordinaatit Maailman koordinaatit

Kameran koordinaatit

Kuvan

koordinaatit

(38)

Liikkeen mallintaminen

Määritellään mallille ”luuranko” ja sidotaan pinnan primitiivit luurankoon

Käännetään luurankoa ”nivelien” kohdalta ja pinta seuraa mukana

Haaste: pehmeät kudokset, joustavuus

(39)

Virtuaalimaailma

Virtuaalimaailmaa tehtäessä otettava huomioon

– Fysiikka, törmäykset – Maailman kanssa

vuorovaikuttaminen

(40)

Säteenseuranta

 Säteenseurannassa (ray tracing)

grafiikkaliukuhihnan askeleet tehdään käänteisessä järjestyksessä

Objektin

koordinaatit Maailman koordinaatit

Kameran koordinaatit

Kuvan

koordinaatit

(41)

Säteenseuranta

Säteenseurannassa

ammutaan valonsäteitä kamerasta rasterihilan läpi kohti objekteja

Säteet heijastuvat kohtaamistaan

pinnoista kunnes päätyvät

valonlähteeseen

Laskennallisesti raskasta, tarvitsee

tietoa koko maailmasta

Läpinäkyvyys, taittuminen ja

heijastukset mahdollisia

(42)

Säteenseuranta / Fotorealismi

(43)

Grafiikkaa Aallossa

ME-C3100

ME-E4100

 Tuore proffa maailmalta, pitänyt vastaavia kursseja MIT:ssä viimeaikoina

 Suositeltavia, mutta raskaita

– Ohjelmointi ja matematiikka olisi hyvä osata

”riittävän hyvin” etukäteen

Viittaukset

LIITTYVÄT TIEDOSTOT

Ja vastaus kysymykseen mik- si l¨oytyy t¨at¨a kautta – siksi, ett¨a hyv¨aksytyist¨a m¨a¨aritelmist¨a niin (p¨a¨attelys¨a¨ant¨ojen avulla) seuraa?. Vastauksen takana

b) Bijektiivisyys osoitettu Johdatus matemaattiseen päättelyyn -kurssilla (ei tarvitse todistaa, kun vain kertoo, mikä tulos on voimassa).. Bijektiivisyys osoitettu

Kunkin rivin oikeassa reunassa on kaksi vaihtoehtoa T(osi) ja E(pätosi). joista yksi ja vain yksi on rengastettava. Ovat seuraavat väitteet tosia vai epätosia:.. a) G

Hänen mukaansa hyveiden tulisi olla perinteisen tietoteorian ytimessä ja muodostaa siten myös olennainen ja välttämätön osa tiedon mää- ritelmää.. Zagzebskin

Yksi brittiläisistä tapahtuman osallistujista totesi matkan jälkeen, että kyseessä on selkeästi maailman paras kirjastoalan pyöräillen tapahtuva epäkonferenssi. Tähän voi

Verkkokerros: IPv4, IPv6 Linkkikerros: Ethernet, MPSL,. WLAN,

interconnected computer networks that use the standard Internet Protocol Suite (TCP/IP) to serve billions of users

§  Vain yksi laite voi lähettää väylälle kerrallaan. §  Laitteet eivät tiedä koska muut haluavat