Puukieliopit. Muotokieliopit



Samankaltaiset tiedostot
T Vuorovaikutteinen tietokonegrafiikka Tentti

Jakso 6: Värähdysliikkeet Tämän jakson tehtävät on näytettävä viimeistään torstaina

Tietokonegrafiikka. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Luento 6: Piilopinnat ja Näkyvyys


Simulointi. Varianssinhallintaa Esimerkki

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Värähtelevä jousisysteemi

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

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

T Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka

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

Luento 6: Geometrinen mallinnus

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

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

Kenguru 2013 Student sivu 1 / 7 (lukion 2. ja 3. vuosi)

Geogebra -koulutus. Ohjelmistojen pedagoginen hyödyntäminen

Liikemäärän säilyminen Vuorovesivoimat Jousivoima

Kenguru 2016 Student lukiosarja

GeoGebran 3D paketti

Kenguru Student (lukion 2. ja 3. vuosi) sivu 1 / 6

Datatähti 2019 loppu

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys

Aloitusohje versiolle 4.0

Oppimateriaali oppilaalle ja opettajalle : GeoGebra oppilaan työkaluna ylioppilaskirjoituksissa 2016 versio 0.8

Digitaalisen arkkitehtuurin alkeet

GEOMETRIA MAA3 Geometrian perusobjekteja ja suureita

Ympyrä 1/6 Sisältö ESITIEDOT: käyrä, kulma, piste, suora

Cloud rendering. Juho Karppinen 49480E

Tasogeometriaa GeoGebran piirtoalue ja työvälineet

Selvästi. F (a) F (y) < r x d aina, kun a y < δ. Kolmioepäyhtälön nojalla x F (y) x F (a) + F (a) F (y) < d + r x d = r x

Monikulmiot 1/5 Sisältö ESITIEDOT: kolmio

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

Mekaniikan jatkokurssi Fys102

Fraktaalit. Fractals. Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto. 1 / 8 R. Kangaslampi Fraktaalit

Tässä osassa ei käytetä laskinta. Selitä päätelmäsi lyhyesti tai perustele ratkaisusi laskulausekkeella, kuviolla tms.

Luento 10: Näkyvyystarkastelut ja varjot. Sisältö

2.3 Voiman jakaminen komponentteihin

Tilanhallintatekniikat

Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon

766323A Mekaniikka, osa 2, kl 2015 Harjoitus 4

Partikkelit pallon pinnalla

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

Mohrin-Mascheronin lause kolmiulotteisessa harppi-viivaingeometriassa

4.1 Urakäsite. Ympyräviiva. Ympyrään liittyvät nimitykset

Grafiikka 205. Tässä luvussa käsitellään geometriaa ja graafisia kohteita. Mukana on pääosin alkeisoperaatioita.

7 tapaa mallintaa maasto korkeuskäyristä ja metodien yhdistäminen

KERTAUS KERTAUSTEHTÄVIÄ K1. P( 1) = 3 ( 1) + 2 ( 1) ( 1) 3 = = 4

Kenguru 2019 Cadet (8. ja 9. luokka)

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

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

Luento 10: Työ, energia ja teho. Johdanto Työ ja kineettinen energia Teho

Pintamallintaminen ja maastomallinnus

MATEMATIIKKA JA TAIDE II

Kenguru 2017 Student lukio

W el = W = 1 2 kx2 1

Smart Board lukion lyhyen matematiikan opetuksessa

5. Grafiikkaliukuhihna: (1) geometriset operaatiot

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet

Mekaniikan jatkokurssi Fys102

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

SIMULINK 5.0 Harjoitus. Matti Lähteenmäki

Algoritmit 1. Luento 3 Ti Timo Männikkö

Visualisoinnin perusteet

Riemannin pintojen visualisoinnista

Luku 8. Mekaanisen energian säilyminen. Konservatiiviset ja eikonservatiiviset. Potentiaalienergia Voima ja potentiaalienergia.

Luento 3: 3D katselu. Sisältö

Ohjelmakoodia kannattaa aina välillä testata sitä luodessa. Muista tallentaa työsi, vaikka se jäisi keskeneräiseksi!

10. Globaali valaistus

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla (Opettajan ohje)

T Studio 4. luento 3: laskennallista geometriaa virikkeitä harjoituksiin: luovuudesta. matemaattista/abstraktia taidetta tietokonetaidetta

Opetusmateriaali. Fermat'n periaatteen esittely

MS-A0305 Differentiaali- ja integraalilaskenta 3 Luento 7: Pintaintegraali ja vuointegraali

Valintanauhan komennot Valintanauhan kussakin välilehdessä on ryhmiä ja kussakin ryhmässä on toisiinsa liittyviä komentoja.

RATKAISUT a + b 2c = a + b 2 ab = ( a ) 2 2 ab + ( b ) 2 = ( a b ) 2 > 0, koska a b oletuksen perusteella. Väite on todistettu.

Lieriö ja särmiö Tarkastellaan pintaa, joka syntyy, kun tasoa T leikkaava suora s liikkuu suuntansa

Partikkelit pallon pinnalla

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37

Geometriaa GeoGebralla Lisätehtäviä nopeasti eteneville

Sukelluskeräily. Pelihahmon liikuttaminen. Aarre ja pisteet

Opetusmateriaali. Tarvittavat välineet: KUVA 1. Rullakko 1. KUVA 2. Rullakko 2, jossa kiekoissa on kuhmu

Yleistä vektoreista GeoGebralla

KJR-C1001 Statiikka ja dynamiikka. Luento Susanna Hurme


Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

KJR-C1001 Statiikka ja dynamiikka. Luento Susanna Hurme

Kartio ja pyramidi

Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5.

Kenguru 2014 Student sivu 1 / 8 (lukion 2. ja 3. vuosi)

MATEMATIIKAN KOE. AMMATIKKA top asteen ammatillisen koulutuksen kaikkien alojen yhteinen matematiikka kilpailu. Oppilaitos:.

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

Symmetrioiden tutkiminen GeoGebran avulla

Matematiikan tukikurssi

Mekaniikan jatkokurssi Fys102

Avaruuslävistäjää etsimässä

Tänään ohjelmassa. Kognitiivinen mallintaminen Neuraalimallinnus laskarit. Ensi kerralla (11.3.)

Transkriptio:

Puukieliopit Olkoon käytössä kilpikonnagrafiikka: kursorina on kilpikonna, jolle voidaan antaa komentoja tyyliin liiku eteenpäin, käänny oikealle, nosta kynä ylös jne. Kilpikonnan absoluuttista paikkaa ei tunneta Puukielioppien avulla voidaan generoida kilpikonnan käskysarjoja, jotka piirtävät yksityiskohtaisia rekursiivisia kappaleita Puukielioppi koostuu lähtösymbolista ja joukosta korvaussääntöjä, joilla lähtösymbolista voidaan generoida uusia merkkijonoja Korvaussäännön käyttäminen korvaa merkkijonosta tietyn symbolin kaikki esiintymät pidemmällä symbolijonolla Esimerkki: olkoon kilpikonnan komennot 1. F: liiku eteenpäin piirtäen segmentti 2. L: käänny 60 astetta vasemmalle 3. R: käänny 60 astetta oikealle Olkoon kieliopin alkusymboli F, ja kieliopissa yksi korvaussääntö F FRFLLFRF tämä sääntö on itse asiassa Kochin käyrän rekursiivinen jako, kun käskyssä F liikuttava matka lyhenee kolmasosaan korvaussäännön jokaisella käyttökerralla Kochin lumihiutale saadaan helposti ottamalla käyttöön uusi lähtösymboli S sekä korvaussääntö S FLLFLLFLL, joka määrittelee tasasivuisen kolmion 496 497 Jos puukieliopilla halutaan kuvata haaroittuvia rakenteita, voidaan ottaa käyttöön symbolit [ ja ], jotka tarkoittavat kilpikonnan paikan ja suunnan työntämistä ja vetämistä pinoon Rakenteen haarautuessa kahteen suuntaan kilpikonnan asema työnnetään pinoon, piirretään ensimmäinen haara, asema vedetään pinosta ja piirretään toinen haara Puukielioppi saattaa sisältää monta korvaussääntöä samalle symbolille lopputulos riippuu siitä, mitä korvaussääntöä kussakin vaiheessa käytetään Käytettävä korvaussääntö voidaan valita satunnaisesti jonkin jakauman perusteella, ja korvattavan symbolin kuhunkin esiintymään liittyvä korvaussääntö voidaan valita satunnaisesti Muotokieliopit Edellistä ideaa voidaan soveltaa muutenkin kuin vain kilpikonnagrafiikkaan Ns. muotokieliopit koostuvat säännöistä, joilla annettu kappale voidaan korvata pienemmillä kappaleilla Esimerkiksi Sierpinskin matto kuutioille: kuutio voidaan korvata 20 pikkukuutiolla Säännöt voivat myös määrätä, minkä väriseksi kappale väritetään Hyvinkin yksinkertaisilla säännöillä ja kappaleilla voidaan saada aikaan monimutkaisia ja kauniita rakenteita Sovellus: biologisten kappaleiden mallintaminen stokastisilla muotokieliopeilla (Lindenmayerin järjestelmät) 498 499

Kielioppien toteuttamisesta Partikkelijärjestelmät Puu- ja muotokieliopeilla piirtämistä ei kannata toteuttaa siten, että ensin muodostetaan pitkä symbolijono, joka sitten merkki kerrallaan suoritetaan Parempi ratkaisu on toteuttaa kilpikonnan komennot tai kappaleen piirtäminen rekursiivisina proseduureina (vrt. Logo) Proseduurit saavat parametrikseen rekursiotason syvyyden rekursion ollessa riittävän syvä jotkut komennot eivät enää tee rekursiokutsuja, vaan esim. piirtävät suoran viivan vältetään päättymätön rekursio Kilpikonnan asema kannattaa pitää muistissa tarkemmin kuin pikselin tarkkuudella, vaikka piirtäminen tapahtuukin pikselin tarkkuudella Sumeita ja aikariippuvaisia kappaleita (pilvet, tuli) voidaan approksimoida joukkona pieniä partikkeleita Partikkelit voivat olla palloja, kuutioita tms. Parhaimmillaan animaatiossa, jossa partikkelit syntyvät ja liikkuvat jonkinlaisen stokastisen prosessin mukaan Esimerkki: ilotulitusraketin räjähdys synnyttää joukon partikkeleita, joiden paikka on aluksi sama, mutta joiden suunta ja nopeus on valittu satunnaisesti kukin partikkeli liikkuu maailmassa Newtonin lakien mukaisesti, ja sen kirkkaus on kääntäen verrannollinen sen ikään riittävän vanha partikkeli lakkaa olemasta muuten pyöristysvirheet voivat kasautua ja lopputulos kärsiä 500 501 Partikkelien piirtäminen Partikkelitekniikan sovelluksia Partikkelijärjestelmät eivät suoraan sovellu ray tracingiin, sillä säteen ensimmäisen leikkauspisteen laskeminen tuhansien partikkelien joukolle on raskasta Pilviä tms. kaasua voidaan kuitenkin mallintaa stokastisella ray tracingillä, kun kaasukappale koostetaan satunnaisista (isohkoista) partikkeleista Kun partikkeleita piirretään sellaisinaan, niin liikkuvalle partikkelille voidaan laskea alku- ja loppupiste matkalle, jonka partikkeli kulkee kuvanoton aikana partikkeli piirretään kuljetun avaruuden kattavana särmiönä Jos yksittäiset partikkelit ovat riittävät pieniä piirrettäviksi yksittäisinä pikseleinä, ei niille tarvitse tehdä valaistus- tai pintakuviointilaskelmia Klassinen esimerkki: Star Trek II -elokuvan planeetan Genesis-tuhoamiskohtaus, jossa partikkeleista koostuva tulimyrsky puhdistaa planeetan pinnan raskaan laskennan välttämiseksi käytettiin nokkelia erikoistemppuja, jotka eivät kuitenkaan vaikuttaneet animaation visuaaliseen laatuun Ruohon mallintaminen ampumalla partikkeleita maanpinnalta ylöspäin Newtonin lakien mukaan: partikkelin tietyssä ajassa kulkema matka muodostaa ruohonkorren Puita ja kasvillisuutta voidaan mallintaa staattisilla partikkeleilla, jotka pysyvät paikallaan, mutta haarautuvat ja kopioituvat tietyillä todennäköisyyksillä Tällöin ei myöskään yleensä tarvita törmäys- tai päällekkäisyystarkistuksia Joissakin sovelluksissa partikkelit kannattaa piirtää mainostauluina 502 503

Jousisysteemit Aaltojen mallintaminen Jousisysteemi koostuu partikkeleista, jotka on kytketty naapureihinsa kuvitteellisilla jousilla Jousivoima noudattaa Hookin lakia F = kx, missä x on poikkeama tasapainoasemasta ja k on jousivakio jousi pyrkii pitämään yhdistämänsä partikkelit tietyllä tasapainoetäisyydellä Partikkeleihin kohdistetut ulkoiset voimat vaikuttavat jousten kautta pehmeästi koko partikkelijoukkoon Esimerkki: kankaan mallintaminen kaksiulotteisena kuutiollisena pintana, jonka kontrollipisteet on yhdistetty toisiinsa jousilla Myös pehmeän kappaleen varauspisteet voidaan yhdistää jousilla Jousi voidaan myös määritellä katkeamaan, jos se venyy liian pitkäksi Varhaisimpia tietokonegrafiikalla mallinnettuja luonnollisen maailman ilmiöitä Nestepintaa esittävän tason pisteitä x poikkeutetaan z-suunnassa funktiolla p(x) =C sin( x c ) missä piste c on aallokon keskipiste, ja C aaltojen korkeuskerroin Jos aallot ovat kyllin kaukana katsojasta, riittää poikkeuttaa heijastusta pintaa kuhmuttamalla, ja pinta voidaan edelleen muuten piirtää tasopintana Kehittyneempi tekniikka on mallittaa vedenpinta parametroituna kuutiollisena pintana, jolloin malli ottaa huomioon taittuvat ja heijastuvat aallot, matalan pohjan vaikutukset jne. erittäin jäykillä jousilla saadaan aikaan kiinteitä kappaleita, jotka halkeavat ja murtuvat niihin osuvien iskujan voimasta 504 505 Reaktio-diffuusio-teksturointi Tekniikka, jolla kappaleen pinta voidaan kuvioida satunnaisilla läikillä ja raidoilla, jotka ovat kuitenkin halutulla tavalla tilastollisesti säännöllisiä Pinta jaetaan satunnaisesti mahdollisimman samankokoisiin soluihin, joiden kuvitellaan sisältävän yhtä tai useampaa kemikaalia hankalan muotoisen pinnan solut voidaan muodostaa vaikkapa levittämällä pinnalle n toisiaan hylkivää satunnaispistettä, ja iteroimalla tasapainotilaan asti tämän jälkeen pinnan pistejoukolle muodostetaan Voronoin diagrammi, jonka lokukset jakavat pinnan soluiksi Jokaisessa solussa on aluksi satunnainen määrä kutakin kemikaalia Kullakin iteraatiokierroksella tapahtuu kahdenlaisia askelia: Diffuusioaskeleessa solusta, jossa on suuri määrä jotakin kemikaalia, virtaa kyseistä kemikaalia naapurisoluun Reaktioaskeleessa saman solun kemikaalit reagoivat hävittäen tai synnyttäen muita kemikaaleja Kun tätä on iteroitu kylliksi, kunkin solun väri-, heijastustms. arvot määräytyvät sen kemikaalisisällöstä Solut voidaan värittää tasavärityksellä mosaiikkikuvioksi, tai vierekkäisten solujen värit voidaan liu uttaa pehmeästi Demo 506 507

Höyry- ja kaasupilvet Ihmisen mallintaminen (Voss 1985) Pilvet mallinnetaan neliulotteisen fraktaalin kolmiulotteisina projektioina, jossa neljäs komponentti esittää kyseisen pisteen vesihöyryn tiheyttä (Gardner 1984) Pilvet esitetään joukkona ellipsoideja, joiden läpinäkyvyys- ja heijastusominaisuudet määräytyvät pintakuvioinnista Pintakuviointifunktio puolestaan määritellään muokatulla fraktaalikohinalla T(x, y, z) = n (c i sin(f i x + p i )+T 0 ) i=1 + n (c i sin(g i y + q i )+T 0 ) i=1 missä f i ja g i ovat komponentin i taajuudet x- ja y-suunnassa, c i komponentin i painokerroin ja T 0 korjausvakio Luonnolliselta näyttävän ja liikkuvan ihmisen mallintaminen on tietokonegrafiikan suurin ja tärkein avoin ongelma On paljon helpompaa mallintaa huone täynnä luonnollisia kappaleita kuin yhdet realistiset ihmiskasvot Syy: ihminen on hyvä tunnistamaan kasvoja, ja havaitsee siksi hyvin herkästi epäluonnollisuudet ongelma vaikeutuu, jos kasvot ja muun vartalon liikkeet pitäisi vielä animoidakin lohikäärmeiden, örkkien, dinosaurusten tms. olentojen mallintamisessa, joista ihmisillä ei ole samanlaisia sisäänrakennettuja kokemuksia ja odotuksia (ja joilla ei ole karvoja), saadaan paljon uskottavampia tuloksia 508 509 Image-based rendering Perinteisesti piirtämisen perusyksikkönä on ollut yksittäinen monikulmio Image-based rendering (IBR) on yleisnimitys erilaisille tekniikoille, joissa perusyksikkönä onkin kaksiulotteinen pikselikuva Kappaleita esittävät pikselikuvat ovat esim. käsiteltyjä digitaalikameralla otettuja kuvia Monikulmioiden projisoimisen sijasta näkymä muodostetaan sijoittamalla pikselikuvia ruudulle sopivasti käänneltyinä ja muokattuina Monikulmioiden teksturointi on itse asiassa varhainen IBR-tekniikka Nykyaikaiset IBR-tekniikat eivät kuitenkaan tarvitse pikselikuvien lisäksi muita matemaattia malleja kappaleen geometriasta Perinteisiin menetelmiin verrattuna IBR tarjoaa useita etuja Piirron perusoperaatiot nopeita ja suhteellisen yksinkertaisia varsinkin jos näitä tuetaan laitteistotasolla Geometrista mallinrakennusta ei tarvita ollenkaan, vain muutama sopivasta kulmasta otettu digitaalikuva riittää kompleksisuus ja muistintarve riippumaton kappaleen monimutkaisuudesta Impostoritekniikassa IBR-tekniikkaa käytetään projektiopiirtämisen nopeuttamiseen Katsojan suhteen hitaasti liikkuvan kappaleen peräkkäiset pikselikuvat muistuttavat toisiaan hyvin paljon Kappaleen piksilöidystä projektiokuvasta kuvaustasolla muodostetaan impostoritekstuuri niin kauan kuin kappale on riittävän samassa asennossa katsojaan nähden, kappale piirretään impostorilla teksturoituna monikulmiona Portaalikarsinnassa portaalin läpi näkyvän maailman kuva muutetaan testuuriksi, jota käytetään portaalimonikulmion teksturoimiseen niin kauan kuin impostorin sisältö on riittävän oikea 510 511

Ei-fotorealistinen piirto Tulevaisuuden pohdintaa Ei-fotorealistinen piirto on yleisnimitys tekniikoille, jotka pyrkivät esittämään kappaleiden ominaisuudet perinteisen käsin piirtämisen klassillisilla menetelmillä konventioihin tottunut ihmissilmä täydentää itse visuaalisten vihjeiden perusteella kuvaan tarvittavat yksityiskohdat Esimerkkejä tekniikasta ovat ääriviivat, vauhtiviivat, vihjeviivat, piirtäminen erilaisilla siveltimillä, paperityypeillä ja väriaineilla, ei-fotorealistinen valaistus, impressionismi, pointillismi, käsin piirtämisen simulointi Ei-fotorealistiset tekniikat voidaan toteuttaa joko suoraan piirtoalgoritmissa tai erillisenä jälkikäsittelyvaiheena, jolloin tarvitaan monesti läpinäkyvyys- tai syvyysinformaatiota Jos piirroselokuvatasoisen animaatioruudun generointi vaatii kolme tuntia tietokoneaikaa, tarvitaan 150,000-kertainen nopeutus puristamaan tämä aika 1/12-sekuntiin jos Mooren lakia noudattaen tietokoneiden laskentateho kaksinkertaistuu aina 1,5 vuoden välein, tavoite saavutetaan 26 vuoden päästä grafiikkalaitteistojen teho on viime vuosina tuplaantunut noin puolen vuoden välein... Vuonna 1974 piilopintojen poistoalgoritmien vertailuun ei otettu mukaan nykyään yleisesti käytettävää Z-puskuritekniikkaa, koska se vei liikaa muistia jokin nykyisille resursseille liian raskas tekniikka saattaa tulevaisuudessa olla reaaliaikaisen grafiikan tekemiseen sopivin kuvien kompleksisuuden kasvaessa esimerkiksi ray tracing saattaa pitkällä tähtäimellä osoittautua nopeimmaksi tavaksi piirtää näkymä 512 513 JOHAN LOPPUI 514