8.7. Kolmiulotteiset tekstuuritekniikat. Kolmiulotteinen kohina eli häiriö. Turbulenssin simulointi. turbulence

Samankaltaiset tiedostot
8. Kuvaustekniikat. Tämän kuvauksen esittäminen ei ole kuitenkaan suoraviivaista. Niinpä se käydään läpi kaksivaiheisena

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

5. Grafiikkaliukuhihna: (1) geometriset operaatiot

JOHDATUS TEKOÄLYYN TEEMU ROOS

12.5. Vertailua. Silmäillään laskostumisen estoa tietokonegrafiikan kannalta. Kuva luonnehtii vaihtoehtoja.

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

JOHDATUS TEKOÄLYYN TEEMU ROOS

JOHDATUS TEKOÄLYYN TEEMU ROOS

Datatähti 2019 loppu

Luento 6: Geometrinen mallinnus

Antti Rasila. Kevät Matematiikan ja systeemianalyysin laitos Aalto-yliopisto. Antti Rasila (Aalto-yliopisto) MS-A0204 Kevät / 16

Signaalien generointi

MS-A0305 Differentiaali- ja integraalilaskenta 3 Luento 1: Moniulotteiset integraalit

JOHDATUS TEKOÄLYYN TEEMU ROOS

4. Esittäminen ja visualisointi (renderöinti)

Matematiikan tukikurssi, kurssikerta 3

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:

MS-A0305 Differentiaali- ja integraalilaskenta 3 Luento 1: Moniulotteiset integraalit

MS-A0305 Differentiaali- ja integraalilaskenta 3 Luento 3: Vektorikentät

Riemannin pintojen visualisoinnista

Osa IX. Z muunnos. Johdanto Diskreetit funktiot

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ HYVÄN VASTAUKSEN PIIRTEITÄ

Algoritmit 2. Luento 6 To Timo Männikkö

Maksimit ja minimit 1/5 Sisältö ESITIEDOT: reaalifunktiot, derivaatta

MS-A0207 Differentiaali- ja integraalilaskenta 2 Luento 5: Gradientti ja suunnattu derivaatta. Vektoriarvoiset funktiot. Taylor-approksimaatio.

6.6. Tasoitus ja terävöinti

Luku 8. Aluekyselyt. 8.1 Summataulukko

Ei välttämättä, se voi olla esimerkiksi Reuleaux n kolmio:

12. Laskostumisen teoria ja käytäntö

10.2. Säteenjäljitys ja radiositeettialgoritmi. Säteenjäljitys

Digitaalinen signaalinkäsittely Kuvankäsittely

Johdatus tekoälyn taustalla olevaan matematiikkaan

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys

Tekijä Pitkä matematiikka Pisteen (x, y) etäisyys pisteestä (0, 2) on ( x 0) Pisteen (x, y) etäisyys x-akselista, eli suorasta y = 0 on y.

x j x k Tällöin L j (x k ) = 0, kun k j, ja L j (x j ) = 1. Alkuperäiselle interpolaatio-ongelmalle saadaan nyt ratkaisu

MS-A0207 Differentiaali- ja integraalilaskenta 2 (CHEM) Luento 2: Usean muuttujan funktiot

VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA SÄHKÖTEKNIIKKA. Lauri Karppi j SATE.2010 Dynaaminen kenttäteoria DIPOLIRYHMÄANTENNI.

y=-3x+2 y=2x-3 y=3x+2 x = = 6

MS-A0205/MS-A0206 Differentiaali- ja integraalilaskenta 2 Luento 8: Newtonin iteraatio. Taso- ja avaruusintegraalit

Algoritmit 2. Luento 6 Ke Timo Männikkö

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

Cloud rendering. Juho Karppinen 49480E

10. Esitys ja kuvaus

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 2: Usean muuttujan funktiot

Ilkka Mellin Todennäköisyyslaskenta Osa 3: Todennäköisyysjakaumia Moniulotteisia todennäköisyysjakaumia

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 1: Parametrisoidut käyrät ja kaarenpituus

2 Pistejoukko koordinaatistossa

3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

Luku 6: Grafiikka. 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

1 Ensimmäisen asteen polynomifunktio

Kuva 1: Funktion f tasa-arvokäyriä. Ratkaisu. Suurin kasvunopeus on gradientin suuntaan. 6x 0,2

11. Tilavuusrenderöinti

MAB3 - Harjoitustehtävien ratkaisut:

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

x + 1 πx + 2y = 6 2y = 6 x 1 2 πx y = x 1 4 πx Ikkunan pinta-ala on suorakulmion ja puoliympyrän pinta-alojen summa, eli

Luku 4. Derivoituvien funktioiden ominaisuuksia.

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

MS-A0202 Di erentiaali- ja integraalilaskenta 2 (SCI) Luento 8: Taso- ja avaruusintegraalit

4. Oheisessa 4x4 ruudukossa jokainen merkki tarkoittaa jotakin lukua. Mikä lukua salmiakki vastaa?

Matematiikan tukikurssi

MS-A010{3,4,5} (ELEC*, ENG*) Differentiaali- ja integraalilaskenta 1 Luento 10: Ensimmäisen kertaluvun differentiaaliyhtälö

S Laskennallinen Neurotiede

Moniulotteisia todennäköisyysjakaumia

Matematiikan tukikurssi

LÄSÄ-lämmönsäästäjillä varustettujen kattotuolirakenteiden lämpöhäviön simulointi

infoa Viikon aiheet Potenssisarja a n = c n (x x 0 ) n < 1

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1).

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

9. Lineaaristen differentiaaliyhtälöiden ratkaisuavaruuksista

MIKROAALTOUUNI VAASAN YLIOPISTO TEKNILLINEN TIEDEKUNTA SÄHKÖTEKNIIKKA. Tuomas Karri i78953 Jussi Luopajärvi i80712 Juhani Tammi o83312

POHDIN - projekti. Funktio. Vektoriarvoinen funktio

Luento 3: 3D katselu. Sisältö

c) 22a 21b x + a 2 3a x 1 = a,

Braggin ehdon mukaan hilatasojen etäisyys (111)-tasoille on

6.5. Renderöintijärjestys

(a) Potentiaali ja virtafunktiot saadaan suoraan summaamalla lähteen ja pyörteen funktiot. Potentiaalifunktioksi

TRIGONOMETRISTEN FUNKTIOIDEN KUVAAJAT

Konvergenssilauseita

Monikulmiot 1/5 Sisältö ESITIEDOT: kolmio

Toinen harjoitustyö. ASCII-grafiikkaa

Kirjoita ohjelma jossa luetaan kokonaislukuja taulukkoon (saat itse päättää taulun koon, kunhan koko on vähintään 10)

1 sup- ja inf-esimerkkejä

Suorien ja tasojen geometriaa Suorien ja tasojen yhtälöt

MATEMATIIKAN JA TILASTOTIETEEN LAITOS Analyysi I Harjoitus alkavalle viikolle Ratkaisuehdoituksia Rami Luisto Sivuja: 5

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2

f (28) L(28) = f (27) + f (27)(28 27) = = (28 27) 2 = 1 2 f (x) = x 2

Osoita, että kaikki paraabelit ovat yhdenmuotoisia etsimällä skaalauskuvaus, joka vie paraabelin y = ax 2 paraabelille y = bx 2. VASTAUS: , b = 2 2

MATEMATIIKKA 5 VIIKKOTUNTIA. PÄIVÄMÄÄRÄ: 8. kesäkuuta 2009

Matematiikan tukikurssi

Matemaattinen Analyysi

Numeeriset menetelmät TIEA381. Luento 7. Kirsi Valjus. Jyväskylän yliopisto. Luento 7 () Numeeriset menetelmät / 43

Matriisit ja vektorit Matriisin käsite Matriisialgebra. Olkoon A = , B = Laske A + B, , 1 3 3

=p(x) + p(y), joten ehto (N1) on voimassa. Jos lisäksi λ on skalaari, niin

Transkriptio:

8.7. Kolmiulotteiset tekstuuritekniikat Edellä lueteltiin keskeiset kaksiulotteisiin tekstuurikuvauksiin liittyvät ongelmat. Syyt ovat: (1) Kaksiulotteinen tekstuurikuvaus, joka perustuu pintakoordinaatistoon, voi tuottaa laajaa vaihtelua tekstuurin tiivistyksessä. Nämä heijastelevat vastaavaa vaihtelua pinnan käyryydessä. (2) Yritettäessä kuvata tekstuuria jatkuvaksi monimutkaisen ympäristön kohteen pinta voi tulla nopeasti kehnoksi. Tekstuurin jatkuvuus pintaelementtien yli, kun nämä voivat olla eri tyyppiä ja liittyä toisiinsa vaihtelevilla tavoilla, on vaikeaa ylläpitää. Kolmiulotteinen tekstuurikuvaus kiertää nämä ongelmat, koska ainoa tarvittava informaatio pisteen tekstuuriarvon määräämiseksi on sen paikka avaruudessa. Tekstuurin määrääminen kohteelle merkitsee kolmiulotteisen tekstuurifunktion kehittämistä kohteen pinnan pisteille. 8. luku 471 Kolmiulotteinen kohina eli häiriö Suosittu tekstuuritekniikoiden luokka on kohinafunktioiden käyttö. Näille kaikille on yhteistä, että ne soveltavat kolmiulotteista tai spatiaalista kohinafunktiota. Ne pystyvät tuottamaan realistisia, aidonnäköisiä tekstuureja. Merkittävin on turbulenssin eli pyörteen simulointi. Kohinaa varten tarvitaan funktio noise(), joka saa kolmiulotteisen paikan syötteenään ja palauttaa skalaariarvon. Tätä kutsutaan mallin ohjaamaksi synteesiksi. Kehitetään kohinafunktio ainoastaan kiinnostuspisteessä. Funktiolla tulee olla seuraavat ominaisuudet: (1) tilastollisesti invariantti kierrolle (2) tilastollisesti invariantti siirrolle (3) kapea päästökaista taajuuden suhteen 8. luku 472 Kaksi ensimmäistä ehtoa varmistavat, että kohinafunktio on hallittavissa. Riippumatta siirrosta tai suunnasta avaruudessa sen yleisominaisuudet ovat samat. Kolmas ehto suo kohinan näytteistämisen ilman laskostumisen vaaraa. Laskostuminen ei ehkä näkyisi staattisessa kuvassa, mutta animoinnissa se aiheuttaa esim. tuikkimista. Kohina luodaan luonnollisesti satunnaislukugeneraattorilla satunnaislukuina, jotka talletetaan hakutaulukkoon tai tilan säästämiseksi hajautustauluun. Turbulenssin simulointi Kohinan yksittäisarvoa voidaan käyttää simuloimaan useita asioita. Yksi monipuolisimmista sen sovelluksista on ns. turbulenssifunktio (Perlin), jolle annetaan paikka x ja joka palauttaa turbulentin skalaariarvon. Yksiulotteinen versio on: = k i noise(2 x ) turbulence i i= 0 2 Sarja on katkaistu indeksin arvosta k, joka on pienin seuraavan ehdon toteuttava kokonaisluku: 1 k+1 2 < pikselin koko 8. luku 473 8. luku 474

Katkaisukaista rajoittaa funktiota ja takaa sopivan laskostumisen eston. Tarkastellaan esim. ensimmäisen termin noise(x) ja toisen termin noise(2x)/2 eroa. Jälkimmäisen kohdalla kohinafunktio vaihtelee kaksi kertaa niin nopeasti kuin ensimmäisen kohdalla. Jälkimmäisellä on kaksinkertainen taajuus, ja se sisältää piirteitä, jotka ovat kooltaan puolet ensimmäisen termin piirteistä. Turbulenssifunktio edustaa kuitenkin vain osaa tarvittavasta. Se näet johtaa homogeeniseen hahmoon, joka ei ole luonnollinen. Useimmat todelliset tekstuurit sisältävät epähomogeenisiä ominaisuuksia, joten turbulenssi ei yksin riitä niiden simulointiin. Tarkastellaan esimerkkinä marmoria, jossa on sangen selkeästi nähtäviä värijuonia. Aidossa materiaalissa nämä ovat todellisuudessa syntyneet turbulentissä geologisessa prosessissa. Simuloinnissa on kaksi vaihetta: (1) Tekstuurin ensimmäisen asteen peruspiirre esitetään jollakin funktiomuodolla. Tämä on tyypillisesti jatkuva, ja sen ensimmäiset derivaatat sisältävät huomattavaa vaihtelua. (2) Lisätään toisen ja kolmannen asteen yksityiskohtia käyttäen turbulenssia häiritsemään funktion parametreja. Turbulenssina voidaan tässä soveltaa sini aaltoa, joka antaa marmoria muistuttavan tuloksen. Värijuonet, jotka kulkevat häiritsemättöminä, saadaan sini aallolla. Tällöin x akselia pitkin kulkeva sini aalto esitetään: marble(x) = marble_colour(sin(x)) 8. luku 475 8. luku 476 Kuva 8.30. Marmorin simulointia: (a) Vasemmalla on splinillä tehty viipale ilman turbulenssia, (b) keskellä on värisplini, jolla edellinen oli tehty, ja (c) oikealla on simuloitu marmoripala, joka on saatu alkuperäiselle käyttämällä turbulenssia. Värikuvaus marble_colour() kuvaa skalaarisyötteen intensiteettiarvoksi. Kuva 8.30. (a) käsittää kaksiulotteisen marmoriviipaleen, joka on tehty kuvan 8.30. (b) värisplinillä. Seuraavaksi lisätään turbulenssi: marble(x) = marble_colour(sin(x+turbulence(x)) Tällä saatiin kuva 8.30. (c). Kuva 8.31. esittää kolmiulotteista tapausta. Kuva 8.31. Marmorin simulointia. Turbulenssifunktiota voidaan soveltaa muuhunkin kuin väriin. Sillä voidaan käsitellä melkein mitä tahansa parametria, joka vaikuttaa kohteen ulkonäköön. Esimerkkinä on sahalaitamuotoa tuottava funktio, jolla simuloitiin puun kaarnaa, ja pilvien käsittelyä. 8. luku 477 8. luku 478

Kolmiulotteinen tekstuuri ja animointi Turbulenssifunktio voidaan määritellä ajan tai tilan t suhteen lisäämällä ylimääräinen ulottuvuus edustamaan aikaa. Hilan pisteet määrätään tällöin indekseillä (i,j,k,l), jolloin parametrilista käsittää kohinan (x,t) ja samoin turbulenssin (x,t). Pohditaan esimerkkitapauksena tulen simulointia. Liekin perusmuoto tulee esittää funktionomaisesti. Käsitellään tulta kahdessa avaruudessa kolmiulotteisen volumetrisen lähestymistavan ollessa laskennallisesti raskas. Liekkialue määritellään xy tason koordinaattien ( b,0) ja (b,h) suorakulmiossa. Liekin väri tässä alueessa on: 8. luku 479 flame(x) = (1 y/h) flame_colour(abs(x/b)) Kuva 8.32. esittää kaavamaisesti tämän. Funktio flame_colour(x) sisältää kolme eri värispliniä, jotka kuvaavat skalaariarvon x värivektoriin. Jokaisella splineistä R, G ja B on maksimi intensitetti kohdassa x=0, joka vastaa liekin keskikohtaa, ja vaimentuu nollaan intensiteetissä x=1. Vihreä ja sininen splini menevät nopeammin nollaan kuin punainen. Funktion flame_colour(x) palauttama väri painotetaan liekin korkeuden mukaan, jotta saadaan sopiva vaihtelu y akselin suhteen. Liekki renderöidään soveltamalla funktiota flame(x) liekin kattavan suorakulmion värittämiseksi. Kuva 8.32. esittää myös turbulenssifunktion käyttöä: flame(x,t)=(1 y/h) flame_colour(abs(x/b) + turbulence(x,t)) 8. luku 480 Liekin animoimiseksi renderöidään peräkkäisiä kohinaviipaleita, jotka ovat kohtisuoria ja tasavälisiä aika akselin suhteen. Pelkkä monikulmion siirto aikaakselia pitkin ei riitä, vaan sen muotoa pitää samalla muuttaa, jotta liekki eläisi. Siirtämällä samaan aikaan myös y akselia pitkin saadaan tällainen vaikutus aikaan. Kuva 8.33. havainnollistaa simulointia. Lopullinen muoto on: flame(x,t) = (1 y/h) flame_colour(abs(x/b)+ turbulence(x+(0,t y,0),t)) Kuva 8.32. Liekin simulointia turbulenssifunktiolla: ylhäällä liekki ilman turbulenssia ja alhaalla tämän kanssa. Tällöin y on siirretty etäisyys y akselilla suhteessa kohinaan aikayksikössä. 8. luku 481 8. luku 482

8.8. Laskostumisen esto ja tekstuurikuvaus Kuten tämän luvun alussa esitettiin, artefaktat saattavat olla sangen harmillisia tekstuurikuvauksissa. Niiden vaikutus on usein selvästi nähtävissä ja kuvaa vääristäviä, hyvänä esimerkkinä aiemman kuvan 8.14. shakkilauta. Siinä mainittu ylinäytteistysmenetelmä laskostumisen estämiseksi ei monesti riitä, vaan on käytettävä muita tekniikoita. Kuva 8.33. Kaksiulotteisen kohteen turbulenssin animointia. Tekstuurikuvauksilla laskostumisen esto on hankalaa, sillä pitää etsiä pikselin esikuva ja laskea yhteen painotetut arvot T(u,v), jotka ovat esikuvan vaikutuspiirissä, yhden pikselin tekstuuriarvon laskemiseksi. Esikuvan muoto vaihtelee pikselittäin, joten suodatus on laskennallisesti aikaa vaativa. Laskostumisen esto kuvassa 8.34. (a) tarkoittaa integroinnin approksimointia. Likimääräinen, mutta visuaalisesti hyvä menetelmä ei välitä esikuvan muodosta, mutta ottaa huomioon sen koon ja esiprosessoi tarpeellisen suodatuslaskennan. Tämä on mip mapping tekniikka (Williams 1983). 8. luku 483 8. luku 484 Mip mapping perustuu oletukseen, että käänteinen pikselikuva on muodoltaan melko lähellä neliötä. Kuva 8.34. (b) esittää pikselin esikuvan approksimoinnin neliöllä. Tämä approksimointi mahdollistaa laskostumisen eston eli suodatuksen esiprosessoinnin. Kuva 8.34. Mip mapping approksimointi: (a) Pikselin esikuva on yleisessä mielessä kaareva, nelisivuinen alkio tekstuuriavaruudessa. (b) Approksimoidaan esikuvaa neliöllä. (c) Tiivistyminen sattuu pikselin kuvautuessa usealle tekselille. (d) Maksimoituminen esiintyy pikselin kuvautuessa vähemmälle kuin yhdelle tekselille. Asiaan liittyy kaksi ongelmaa. Tavallisempi niistä on tiivistyminen tai minimoituminen, jossa kohde tulee pieneksi kuva avaruudessa ja vastaavasti pikselille tulee suuri esikuva tekstuuriavaruudessa. Kuva 8.34. (c) kuvaa tätä. Monet tekstuurialkiot (tekselit) on kuvattava yksittäisiksi pikseleiksi. Toinen ongelma on maksimoituminen, jossa kohde tulee hyvin lähelle katsojaa ja vain osa kohteesta näkyy kuvaavaruudessa. Tällöin syntyy pikselien esikuvia, jotka ovat pienempiä kuin yksi tekseli (kuva 8.34. (d)). Mipmapping tekniikka käsittelee lähinnä tiivistymistä. 8. luku 485 8. luku 486

Mip mapping tekniikka hyödyntää useita kuvia, jotka on keskiarvoistettu alkuperäisestä kuvasta pienentämällä resoluutiota. Ne käsittävät joukon esisuodatettuja tekstuurikuvauksia. Sekvenssin jokaisen kuvan resoluutio on tarkalleen puolet edellisen resoluuutiosta. Kuva 8.35 esittää tekniikan idean. Lähellä katsojaa oleva kohde, joka on suuri kuva avaruudessa, tarvitsee yksittäisen tekselin suuriresoluutioisesta kuvauksesta. Sama kohde ollessaan kaukana katsojasta ja pienenä kuva avaruudessa vaatii yksittäisen tekselin pieniresoluutioisesta kuvauksesta. Kuva 8.36. havainnollistaa tekniikan soveltamista aiemman kuvan 8.19. yhteydessä. Kuva 8.35. Mip mapping. 8. luku 487 8. luku 488 Kuva 8.36. Mip map tekniikan käyttöä rekursiiviselle teekannulle. 8. luku 489