Tik-111.5450 Tietokoneanimaatio



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

Luento 6: Geometrinen mallinnus

T Tietokoneanimaatio ja mallintaminen. Lauri Savioja Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio 02/02

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

Tietokonegrafiikan kertausta eli mitä jokaisen animaattorin tulisi tietää tekniikasta

Luento 6: Tulostusprimitiivien toteutus

Objektien deformaatiot

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

Pienoismallien rakentaminen Linnanmäen laitteista

Platonin kappaleet. Avainsanat: geometria, matematiikan historia. Luokkataso: 6-9, lukio. Välineet: Polydron-rakennussarja, kynä, paperia.

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

Luento 3: 3D katselu. Sisältö

Kenguru 2019 Student lukio

T Vuorovaikutteinen tietokonegrafiikka Tentti

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

Koostaneet Juulia Lahdenperä ja Rami Luisto. Kochin lumihiutale

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

Luento 2: Viivan toteutus

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

Tilanhallintatekniikat

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

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

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

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Tik Tietokoneanimaatio

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

Kolmiulotteisten rakennusten proseduraalinen generointi generatiivisten kielioppien avulla

Anna jokaisen kohdan vastaus kolmen merkitsevän numeron tarkkuudella muodossa

T Tietokoneanimaatio

Tutoriaaliläsnäoloista

Algoritmit 1. Luento 7 Ti Timo Männikkö

Luento 6: Piilopinnat ja Näkyvyys

Geneettiset algoritmit

Matematiikka ja teknologia, kevät 2011

Partikkelit pallon pinnalla

Luku 4. Derivoituvien funktioiden ominaisuuksia.

Partikkelit pallon pinnalla

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys

Algoritmit 1. Luento 3 Ti Timo Männikkö

Preliminäärikoe Tehtävät Pitkä matematiikka / 3

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Tik Tietokoneanimaatio

Luento 6: Geometrinen mallinnus

Lataa Geometristen kappaleiden piirtäminen - Sympsionics Design. Lataa

Luento 2: 2D Katselu. Sisältö

3D animaatio: liikekäyrät ja interpolointi. Tommi Tykkälä

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Muovikierteen suunnittelu

Lataa Geometristen kuvien värittäminen - Sympsionics Design. Lataa

JONI RÄSÄNEN Pythonin käyttö satunnaisen L-järjestelmän toteuttamisessa. Kandidaatintyö

Lyhyt kertaus osoittimista

Luento 2: Tulostusprimitiivit

Visualisoinnin perusteet

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

Puukieliopit. Muotokieliopit

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.

Arkkitehtuurien tutkimus Outi Räihä. OHJ-3200 Ohjelmistoarkkitehtuurit. Darwin-projekti. Johdanto

11/20: Konepelti auki

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

A TIETORAKENTEET JA ALGORITMIT

2 Pistejoukko koordinaatistossa

Racket ohjelmointia II. Tiina Partanen 2015

ITKP102 Ohjelmointi 1 (6 op)

3.1 Väliarvolause. Funktion kasvaminen ja väheneminen

Rajoittamattomat kieliopit (Unrestricted Grammars)

e-stetiikka: digitaalitaide eli tietokonetaide Tassu Takala / TKK Luento

JOHDATUS TEKOÄLYYN TEEMU ROOS

Tik Tietokoneanimaatio

Kenguru 2019 Student Ratkaisut

Algoritmit 2. Luento 6 To Timo Männikkö

Perusteet 5, pintamallinnus

Algoritmit 2. Demot Timo Männikkö

MATEMATIIKAN PERUSKURSSI I Harjoitustehtäviä syksy Millä reaaliluvun x arvoilla. 3 4 x 2,

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi

17/20: Keittokirja IV

Matematiikan taito 9, RATKAISUT. , jolloin. . Vast. ]0,2] arvot.

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

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

l 1 2l + 1, c) 100 l=0 AB 3AC ja AB AC sekä vektoreiden AB ja

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 4: Ketjusäännöt ja lineaarinen approksimointi

! 7! = N! x 8. x x 4 x + 1 = 6.

AVARUUSGEOMETRIA. Suorat ja tasot avaruudessa

Sisältö. Luento 6: Piilopinnat. Peruskäsitteet (jatkuu) Peruskäsitteitä. Yksinkertaisia tapauksia. Yksinkertaiset tapaukset jatkuu

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Rinnakkaistietokoneet luento S

l 1 2l + 1, c) 100 l=0

Matematiikka B2 - Avoin yliopisto

Algoritmit 2. Luento 12 Ke Timo Männikkö

Jakso 4 Aliohjelmien toteutus

Algoritmit 2. Luento 2 To Timo Männikkö

Signaalien generointi

Algoritmit 2. Luento 12 To Timo Männikkö

Sisällys. T Tietokonegrafiikan perusteet. OpenGL-ohjelmointi 11/2007. Mikä on OpenGL?

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

Luento 3: Tulostusprimitiivien toteutus

Transkriptio:

Tik-111.5450 Tietokoneanimaatio 8.luento: procedural shapes fractals, graftals, etc. 14.11.2005 - Tassu Animaatio 2005 - luento 8 1

Sisältö Periaate: proseduraalisesti määritelty muoto Sovelluksia: muuntuvat kappaleet, maasto, meri, pilvet, salamat, kasvit, niveljalkaiset Parametriset kappaleet Fraktaalit: periaatteet, sovelluksena maisemat L-systeemit: kielioppeja, kilpikonnagrafiikkaa Graftaalit: sovelluksena kasvit Evoluutiomenetelmät, GA/GP Erityistapauksia: vesi, pilvet (ks. SG tutorial 2002) Esimerkkejä videolla Harjoitustehtävä 14.11.2005 - Tassu Animaatio 2005 - luento 8 2

Proseduraalinen muoto Olion muoto määrätään laskennallisesti joka kuvassa erikseen ei ennalta määrättyä muotoa, jota animoidaan Vapaasti deformoituvia muotoja polygoneja sinne missä niitä tarvitaan Topologia voi muuttua esim. otuksen jalkojen määrä tai polygonien määrä esitettävällä pinnalla Yksityiskohtien määrä tarpeen mukaan detaljit mallinnetaan vain läheltä katsottaessa 14.11.2005 - Tassu Animaatio 2005 - luento 8 3

Parametriset kappaleet = räätälöityjä proseduureja eri muototyypeille Peruskappaleet monitahokkaat eri variaatioina pallo, sylinteri, torus, parametripinnat polygoneiksi muuttaminen dynaamisesti Perustransformaatiot dynaamisesti määriteltyinä ohjelmoituja rajoitusehtoja esim. skaalaus toisten kappaleiden liikettä seuraten Toistuvat rakenteet hammasratas (hampaiden lukumäärä) nivelikäs mato, tuhatjalkainen sääntöpohjaiset rakenteet: fraktaalit, graftaalit Toteutus parametrinen mallinnus/animaatio-ohjelmisto erikseen kirjoitettavia proseduureja (tämä kurssi) 14.11.2005 - Tassu Animaatio 2005 - luento 8 4

Peruskappaleet monitahokkaat säännölliset (Platon): tetraedri(4), kuutio(6), oktaedri(8), dodekaedri(12) ja ikosaedri(20) monenlaiset kiderakenteet yms. variaatioita: esim. ikosaedri kärjet katkaistuna = jalkapallo geometriset muodot sylinteri, kartio, pallo/ellipsoidi (myös muut 2 pinnat: hyperbolodi, paraboloidi), torus yleensä approksimoidaan polygoneilla - ongelmia: polygonien määrän optimointi huonojen polygonien (pitkät ja kapeat) välttäminen harjoitustehtävä: pallon approksimaatio kolmioilla niin, että ne ovat kaikki likimain samankokoisia 14.11.2005 - Tassu Animaatio 2005 - luento 8 5

Muotoiluoperaatot joukko-operaatiot (yhdiste, leikkaus, erotus) extrude, beveling, rounding, fillets, etc. voidaan toteuttaa monella eri perustekniikalla polygon mesh, NURBS, jne. edellyttävät geometrista laskentaa pisteen sijainti objektin suhteen reunaviivan ja tason leikkaus tasojen leikkausviivat topologia (polygonien liittymiset toisiinsa) algoritmien pidettävä huolta mallin konsistenssista 14.11.2005 - Tassu Animaatio 2005 - luento 8 6

Pyyhkäisymuodot (sweep) idea: objektin ulottuvuutta kasvatetaan animoimalla, aika-ulottuvuus tulkitaan geometriseksi: liikkuva piste = käyrä, liikkuva käyrä = pinta, liikkuva pinta = tilavuus, jne. perustapaukset translaatio rotaatio vapaa yhdistelmä mielivaltainen profiili liikkuu vapaamuotoista käyrää pitkin profiili itsekin voi samalla muuttua algoritmi toistetaan askel kerrallaan: profiilimuoto transformoidaan uuteen asemaansa yhdistetään pisteittäin edelliseen profiiliin (mahdollisesti) liitetään päätyprofiilit mukaan 14.11.2005 - Tassu Animaatio 2005 - luento 8 7

Pyyhkäisymallien sovelluksia laattamaiset ja pyörähdyssymmetriset esineet mm. teksti 3D-kappaleena ( flying logo ) putket, langat, karvat, jne. muotoillut esineet, elävien olioiden osat kasvavat orgaaniset rakenteet kotilon kuoret: http://www.mi.sanu.ac.yu/vismath/lucca/ 14.11.2005 - Tassu Animaatio 2005 - luento 8 8

Rekursiivinen osiinjako (subdivision surfaces) idea: pehmennetään kulmikasta polygonimuotoa pilkkomalla sen nurkkia (beveling) rekursiivisesti toistettuna interpolaationa tuottaa lopulta jatkuvan pinnan vrt. Bezier-pinnan generointi ohjauspisteverkosta binäärisellä osiinjaolla (de Casteljaun algoritmilla) monipuolinen, jos määrittely eri osissa mallia säädeltävissä http://grail.cs.washington.edu/projects/subdivision/ 14.11.2005 - Tassu Animaatio 2005 - luento 8 9

Fraktaalit Ei-kokonaislukudimensioisia objekteja esim. rantaviiva http://scidiv.bcc.ctc.edu/math/snowflake.html Usein rekursiivisesti määriteltyjä Kolme eri luokkaa self-similar (kasvit) ei-interpoloiva osiinjako! self-affine (maasto) invariant fractal sets (Mandelbrotin joukko) Sovelluksia salama, joki, kasvin runko, maiseman siluetti (1D) maastomallit, eliön pinta, tekstuuri (2D) taiteelliset abstraktit kuviot 14.11.2005 - Tassu Animaatio 2005 - luento 8 10

Fraktaalit Benoit Mandelbrot, Yale U 14.11.2005 - Tassu Animaatio 2005 - luento 8 11

Ken Musgrave http://www.kenmusgrave.com/ 14.11.2005 - Tassu Animaatio 2005 - luento 8 12

Maiseman teon perusteita Kolmioiden/neliöiden osiinjakoa Perusteet: ks. Fournier et al. 1982 Vettä ja pilviä voidaan tehdä samoilla periaatteilla Esimerkki ks. Musgrave 1996 14.11.2005 - Tassu Animaatio 2005 - luento 8 13

http://www.planetside.co.uk/terragen/ 14.11.2005 - Tassu Animaatio 2005 - luento 8 14

Biomorphit, "graftaalit" P. Prusinkiewicz, ym. 14.11.2005 - Tassu Animaatio 2005 - luento 8 15

L-systeemit Aristid Lindenmayer & Premyszlaw Prusinkiewicz Paljon kasvien mallinnusta... Yksinkertainen kielioppi ja korvaussäännöt 14.11.2005 - Tassu Animaatio 2005 - luento 8 16

Säännöstöt Initiator Generator Kochin lumihiutale Aksiooma säännöt Chomskyn mallissa säännöt sovelletaan peräkkäin L-systeemeissä säännöt rinnakkain Esimerkki w: aba p1: a->bb p2: b->a G1: bbabb G2: aabbaa G3: bbbbaabbbb G4: aaaabbbbaaaa 14.11.2005 - Tassu Animaatio 2005 - luento 8 17

Kilpikonnagrafiikka F, eteenpäin piirtäen d-pituisen janan f, eteenpäin d yksikköä ilman piirtoa +, käännös vasemmalle δ astetta -, käännös oikealle δ astetta Kochin saari (δ = 90 ) w: F-F-F-F http://www.logosurvey.co.uk/interact/applets.php p1: F -> F-F+F+FF-F-F+F 14.11.2005 - Tassu Animaatio 2005 - luento 8 18

3D kilpikonna &, käännös alaspäin (pitch down) ^, käännös ylöspäin (pitch up) \, roll left /, roll right, täyskäännös (180 astetta) 3D Hilbert-käyrä 14.11.2005 - Tassu Animaatio 2005 - luento 8 19

Haarautuminen Puissa, pensaissa, jne. on oksia -> tarvitaan haarautumisia Voidaan toteuttaa f primitiivillä, mutta helpompi tapa on määritellä pino-operaattorit: [, push laittaa kilpikonnan tilan pinon päälle ], pop palauttaa kilpikonnan pinon päällimäisenä olevaan tilaan ja poistaa sen pinosta. Solmu- ja särmäsäännöt (node and edge rewriting rules) 14.11.2005 - Tassu Animaatio 2005 - luento 8 20

Satunnaisuus Edelliset mallit täysin determinisitisiä, jolloin saman säännöstön ja alkutilan kasvit aina identtisiä Lisäämällä satunnaisuutta saadaan aikaan vaihtelua Tilastolliset säännöt w: F p1: F ->(0.33) F[+F]F[-F]F p2: F ->(0.33) F[+F]F p3: F ->(0.33) F->F[-F]F 14.11.2005 - Tassu Animaatio 2005 - luento 8 21

Kontekstiriippuvat L-systeemit Signaalien välittäminen Lisämääritykset: <, ehto oikealla >, ehto vasemmalla Esimerkki: w: baaaa p1: b<a -> b p2: b -> a G1: baaaa G2: abaaa G3: aabaa G4: aaaba 14.11.2005 - Tassu Animaatio 2005 - luento 8 22

Lisää kontrollia Parametriset L-systeemit Lehtien piirto määrätään reunaviiva {} määreillä Piirtoprimitiivit viiva / sylinteri värien käsittely Esimerkki 14.11.2005 - Tassu Animaatio 2005 - luento 8 23

14.11.2005 - Tassu Animaatio 2005 - luento 8 24

Geneettiset biomorfit Yoichiro Kawaguchi http://www.race.u-tokyo.ac.jp/~yoichiro/main.html 14.11.2005 - Tassu Animaatio 2005 - luento 8 25

Geneettiset algoritmit (GA) Analogia luonnon evoluutiosta: geenisekvenssi määrittelee millainen olio kulloinkin syntyy, risteytyksessä rekombinoidaan vanhempien geenejä Esitetään olion määrittelevät parametrit yhtenä vektorina (=genotyyppi) Alkaen satunnaisesti tuotetuista parametreista, toistetaan: kahden eri olion parametrivektorit risteytetään, vaihtamalla satunnaisesti valituista kohdista niiden parametriarvoja keskenään risteytysten tuloksista generoidaan uusia oliota (=fenotyyppi), evoluutioketjussa syntyy uusi sukupolvi syntyneistä olioista valitaan parhaat (jonkin sopeutumiskriteerin mukaan), joiden parametrivektoreita käytetään seuraavan sukupolven tuottamiseen risteytyksellä risteytyksen oheella voidaan käyttää variointiin myös satunnaismuutoksia (=mutaatio) 14.11.2005 - Tassu Animaatio 2005 - luento 8 26

Esimerkki www.genarts.com/karl/papers/siggraph91.html 14.11.2005 - Tassu Animaatio 2005 - luento 8 27

Genetic images Karl Sims http://www.genarts.com/karl/ 14.11.2005 - Tassu Animaatio 2005 - luento 8 28

Geneettinen ohjelmointi Variaatio GA:sta: parametrivektorien sijasta käsitellään suoraan ohjelmakoodia, joka generoi olioita Koodi kätevää esittää LISP-lausekkeina Rekombinaatio risteytyksessä voi tarkoittaa lausekerakenteen lehtisolmujen (operaattori, muuttuja tai vakio) tai kokonaisten alipuiden (osalausekkeiden) vaihtamista keskenään 2D-kuvat: lausekkeessa koordinaatit (x,y) muuttujina, evaluloidaan väriarvon tuottava lauseke joka pikselissä tuottaa animaatiota, jos muuttujana esiintyy myös aika 3D-animaatio: objektin rakenne ja muoto määräytyy parametreista aikariippuvat parametrit ohjaavat objektin sijaintia ja asentoa 3D-simulaatio: objektin rakenne ja käyttäytymissäännöt (motoriset ohjelmat) määrytyvät parametrisesti, animaatio syntyy simulaation tuloksena 14.11.2005 - Tassu Animaatio 2005 - luento 8 29

14.11.2005 - Tassu Animaatio 2005 - luento 8 30

Referenssejä Prusinkiewicz, Lindenmayer: The algorithmic beauty of plants. Springer 1990 Artikkeleita A.R.Smith: grammars, plants and graftals, Siggraph 1984 http://portal.acm.org/citation.cfm?id=808571 K Sims: http://www.genarts.com/karl/ Artificial Evolution for Computer Graphics", Siggraph 1991 Evolving Virtual Creatures, Siggraph 1994 Visual Mathematics http://members.tripod.com/vismath/mart.htm 14.11.2005 - Tassu Animaatio 2005 - luento 8 31

Videot Fraktaaleista Mandelzoom (Comp.Anim.Festival 2) Evoluutiomalleista Sims: Panspermia Latham: A sequence from the evolution of form (Comp.Anim.Festival 2) Kawaguchi 14.11.2005 - Tassu Animaatio 2005 - luento 8 32