• Ei tuloksia

TimoTossavainen Tietokonegrafiikka

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "TimoTossavainen Tietokonegrafiikka"

Copied!
35
0
0

Kokoteksti

(1)

T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan

Tietokonegrafiikka

Timo Tossavainen

Mediatekniikan laitos, Aalto-yliopiston perustieteiden korkeakoulu Timo.Tossavainen@tkk.fi

25.3.2011

(2)

Sisältö

I Historiaa

I Rasterigrafiikkaa

I Vektorigrafiikkaa

I 3D-grafiikkaa

(3)

Historiaa

1940 Tietokoneet (Z3)

1950 CRT näyttö tietokoneessa (Whirlwind, SAGE) 1960 Vuorovaikutteinen grafiikka (Sketchpad)

1970 Grafiikan perusalgoritmit (mm. Utahin yliopisto) 1980 Fotorealistinen globaali valaistus

1990 Vuorovaikutteinen 3D-grafiikka yleistyy, OpenGL 2000 Ohjelmoitava kiihdytetty grafiikan liukuhihna

(4)

Rasterigrafiikkaa

I Digitaaliset kuvat koostuvat pikseleistä hilalla, rasterilla

I Pikselillä voi olla väri

I Tyypillinen esitys muistissa

I Pikselit peräkkäin

I Pikseleiden värikomponentit peräkkäin

(5)

Rasteriarkkitehtuuri

Väylä

CPU Näytönohjain

Näytönohj.

muisti Kuvapuskuri

Muisti

Videokontrolleri Monitori

(6)

Rasteriesityksen ongelmia

I Rakenteeton eli kasa pikseleitä

I Tilantarve

I Heikko muokattavuus (zoom, kierto)

I Riippuu näytön tarkkuudesta

(7)

Vektorigrafiikka

I Kuvataan piirrettävä kuva rakenteisesti “äärettömän”

tarkkojen matemaattisten primitiivien avulla

I Renderoidaaneli muodostetaan kuva rasterille

I Resoluutioriippumaton: tarkkuus voi vaihdella

I Kuvan osat erikseen muokattavissa

I Tarvitaan sopivatprimitiivitja operaatiot

I Muunnokset: siirto, skaalaus, kierto

I Leikkaukset, etäisyydet

I Rasterointi eli piirtäminen

(8)

Vektorigrafiikan muunnokset

I Siirtojen, kiertojen ja skaalausten yhdisteet esitettävissä matriiseilla, kun koordinaattivektoreiden loppuun lisätään 1.

I Esim. Siirto(x,y)7→(x+ ∆x,y+ ∆y)matriisimuodossa

1 0 ∆x 0 1 ∆y

0 0 1

 x y 1

=

x+ ∆x y+ ∆y

1

I Kuvausten yhdiste = matriisikertolasku.

I Käänteismatriisi = käänteiskuvauksen matriisi.

I Projektiiviset muunnokset esitettävissä homogeenisilla koordinaateilla operoivilla matriiseilla samaistamalla

(wx,wy,w), w 6=0, pisteen(x,y)koordinaateiksi.

(9)

Vektorigrafiikan primitiivit

I Säilyttävä muunnoksissa. Projektiivisissa esim.

I suora7→suora

I kolmio7→kolmio

I hypertaso7→hypertaso

I kartioleikkaus7→kartioleikkaus

I Tehokas kuvata, leikata, piirtää

I Suora, puolisuora, jana, hypertaso, pallo, ellipsoidi, kolmio, monikulmio, kartioleikkaus

I Parametrinen esitys. Esim. JanaPQ (1−t)P+tQ, 0≤t ≤1

I Implisiittinen esitys. Esim. Ympyrä ja suora x2+y2−r2=0, ax +by +c =0.

(10)

Geometrinen laskenta

I Piirtoalgoritmit rakentuvat primitiivien välisten geometristen laskelmien päälle

I Etäisyydet ja leikkaukset

P

Q

r X2

C X1

P

C

B A

u

(11)

Rasterointi

I Piirretään approksimaatio geometrisesta primitiivistä.

P

Q

C r

(12)

Mallintaminen

I Mallinnetaan piirros aiemmin käsitellyillä matemaattisilla primitiiveillä

V5

V4

V6

V3

V8

V1

V7

V2

I Muunnokset: Voidaan tuottaa kuva piirroksesta eri asennoissa, eri mittakaavoissa ja eri resoluutioilla.

(13)

Katselu ja renderointi

I Piirrosta katsellaan ikkunan (window) läpi

I Ikkunasta näkyvä osuus piirretään näyttöalueeseen (viewport) esim. primitiivi kerrallaan

(14)

Leikkaaminen

I Näyttöalueen ulkopuolisia osia ei piirretä

I Hidasta testata pikseli kerrallaan (saksiminen)

I Yleensä primitiivit leikataan näyttöalueeseen ennen piirtoa

(15)

Antialiasointi

I Primitiivien määrittelemä ideaalikuva on äärettömän tarkka

I Pikselin värin poimiminen pistenäytteestä aiheuttaa laskostumista (aliasing)

I Optimaalinen: Alipäästösuodatetaan ideaalikuvaa

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

(16)

3D-vektorigrafiikka

I Sama periaate kuin 2D-vektorigrafiikassa

I Primitiivit ja muunnokset kolmiulotteisia

I Tarvitaan projektio tasolle

I Perspektiiviprojektio (realistinen)

I Yhdensuuntaisprojektio (esim. tekniset piirrokset)

I Näkyvyysongelma

I Sävytys

(17)

Perspektiiviprojektio

P ikkuna

katselutaso projektiotaso projektion keskuskatsoja

projektori projektio

u n

(18)

Näkyvyysongelma / Piilopintojen poisto

I Myöhemmin piirretyt peittävät aiemmin piirretyt.

I Kuution piirto sivu kerrallaan voi tuottaa ao. tulokset.

(19)

Säteenheitto

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

I Haetaan säteen leikkaukset primitiivien kanssa

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

(20)

Syvyyspuskuri (Z-buffer / depth buffer)

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

I Piirretään pinnan piste, jos lähempänä kuin aiemmin piirretty

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

I Nopea: Käytetyin tekniikka reaaliaikaisessa grafiikassa

I Tarkkuusongelmia, jos suuria mittakaavaeroja

(21)

Sävytys (Shading)

I Pinnalta havaitun värin muodostaminen

I Valaistus, teksturointi, kuhmutus

(22)

Paikallinen valaistus

I Phongin malli: taustavalo (ambient) + hajaheijastuva valo (diffuse, mattapinnat) + peiliheijastuva valo (specular, kiiltävät pinnat)

I Yksinkertaisia valonlähteitä: piste, suunta, spotti

x cosθ x

θ

θ

θ θ n

e

l r

α

(23)

Grafiikan liukuhihna (yksinkertaistettu)

I Reaaliaikaisessa grafiikassa käytetty laskennan malli

Primitiivien

kokoaminen Leikkaus

Rasterointi Sävytys

kärkipisteet kolmiot

kolmiot näkyvät

pintapisteet kolmion pinnalla interpoloitu data

pikselin kolmion väri

läpikäynti syvyyspuskuri

katselupyramidiin leikkaaminen interpoloitava

data

tekstuurit vakiot ym.

(24)

Ohjelmoitava sävytys

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

I Sävytysfunktio (pixel/fragment shader) laskee pinnan värin vakioista ja interpoloidusta tiedosta, mm.

I Valonlähteiden paikat ja tyypit

I Materiaalin valaistusominaisuudet

I Tekstuurit ja tekstuurikoordinaatit

I Pinnan hienorakenne (kuhmut)

I Joissakin tekniikoissa useita piirtokertoja (esim. varjot).

(25)

Esimerkki: Volumetrinen sumu

I Väri muuttuu valonsäteen sumun sisällä kulkeman matkan mukaan

(26)

Esimerkki: Varjot

I Piste varjossa -testi piirtämällä varjotilavuudet

(27)

Esimerkki: Varjot (2)

(28)

Grafiikkaliukuhihnan ominaisuuksia

I Piirtää primitiivin kerrallaan

I Ei tarvitse tietoa koko näkymästä

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

I Laitteistokiihdytetty

I Suurelta osin ohjelmoitavissa

I Maiseman geometriaa tarvitsevien tekniikoiden toteutus hankalaa (heijastukset, varjot, globaali valaistus).

(29)

Fotorealistinen kuvanmuodostus

I Simuloidaan valon heijastumista maisemassa

I Tarvitsee tietoa koko maisemasta

I Laskennallisesti raskasta

(30)

Tietokoneanimaatio

I Muutetaan piirrettävän maailman tilaa suhteessa aikaan

I Piirretään kuvia tietyillä ajanhetkillä

I Pieni muutos kuvien välillä saa aikaan liikehavainnon

I Reaaliaikainen 20+ kuvaa/s.

I Kaksoispuskurointi: Näytetään yksi kuva, piirretään toinen, vaihdetaan kun piirto valmis

I Ongelman monimutkaisuuden takia tarvitaan työkaluja helpottamaan animaation määrittelyä.

I Liikkeet voivat olla suunniteltuja tai pohjautua fysiikkaan tai interaktioon.

(31)

Esimerkki: Käänteiskinematiikka

I Nivelrakenteen liikkeen laskeminen tavoitteiden perusteella

(32)

Virtuaalimaailmat

I Törmäykset, fysiikka, interaktio

(33)

Tutkimus: Kuvapohjainen mallinnus

(34)

Grafiikan kurssit

I Vuorovaikutteisen tietokonegrafiikan perusteet

I Vuorovaikutteisen tietokonegrafiikan jatkokurssi

I 3D-tuotanto

I Tietokoneanimaatio

I Tietokonegrafiikan seminaari

I Keinotodellisuus

I Erikoiskurssit/tutkimusseminaarit

(35)

A ?

Viittaukset

LIITTYVÄT TIEDOSTOT

(P3) Jos on annettu kaksi pistettä, voidaan piirtää ym- pyrä siten, että toinen piste on keskipiste ja ympyrän kehä kulkee toisen pisteen kautta.. (P4) Kaikki suorakulmat

Ratkaisu. Piste K on pisteen U kautta kulke- van janan BC normaalin ja suoran AO leik- kaupiste. Olkoon piste I kolmion ABC sis¨a¨anpiirretyn ympyr¨an keskipiste, piste X

Olkoon piste I kolmion ABC sisäänpiirretyn ympyrän keskipiste, piste X ympyrän sivuamispiste janalla BC ja piste Y ympyrän sivuamispiste janalla CA.. Olkoon piste P suoran XY ja

Veltolla harpilla voidaan piirtää vain sellaisia ympyröitä, joista tunnetaan keskipiste ja vähintään yksi kehän piste.. Veltolla harpilla voidaan

Määritä C siten, että sivujen AC ja BC neliöiden sum­.. ma saa pienimmän

5. Määritä vektorin loppupiste. a) Autonkuljettaja ajoi tietyn matkan vakionopeudella. Jos nopeus olisi ollut 20 km/h pienempi, aika olisi pidentynyt tunnilla. Laske

Koska piste O on yhtä etäällä pisteistä A, B ja C , voidaan piste O keskipisteenä ja esimerkiksi jana OA säteenä piirtää ympyrä, jonka kehällä ovat pisteet A, B ja C (kolmion

The existence of three different main types of bilingualism, simultaneous, successive and subordinative, defined on the basis of the ontogenetic development and