Geometrian yksinkertaistaminen: Progressive Meshes

Koko: px
Aloita esitys sivulta:

Download "Geometrian yksinkertaistaminen: Progressive Meshes"

Transkriptio

1 TEKNILLINEN KORKEAKOULU, HELSINKI Tietoliikenneohjelmistojen ja multimedian laboratorio Tik Tietokonegrafiikan seminaari Kevät 2003: Reaaliaikaisen 3D grafiikan laadun ja nopeuden parantaminen Geometrian yksinkertaistaminen: Progressive Meshes Markus Eräpolku 49438A

2 Geometrian yksinkertaistaminen: Progressive Meshes Markus Eräpolku Teknillinen Korkeakoulu, Helsinki Tiivistelmä Tässä paperissa käsitellään Hugues Hoppen kehittämää, kolmiulotteisten polygonimallien yksinkertaistamiseen tarkoitettua dynaamista ja jatkuvaaikaista tekniikkaa nimeltä "Progressive Meshes" (lyhennetty jatkossa PM). Tekniikkaan läheisesti liittyviin mekanismeihin ja käsitteisiin tutustutaan. Lisäksi esitellään PM:ään tehty parannus, näkymäriippuvaisuuden huomioonottaminen. Paperissa käsitellään joitain seikkoja hieman syvällisemmin, mutta toteutuksien varsinaisiin yksityiskohtiin ei mennä. Tämä paperi pohjautuu pitkälti Hoppen julkaisuihin [4] ja [5]. 1 JOHDANTO Nykypäivänä tietokonegrafiikassa monimutkaiset mallit esitetään pääsääntöisesti polygoneilla. Tämä johtuu siitä, että niiden käsittely on yksinkertaista ja hyvin tuettu laitteiston alimmilla tasoilla [9]. Kasvanut laskentateho ja tarve saada yhä aidompaa jälkeä on nostanut polygonimäärän malleissa hyvin suureksi sen jopa ylittäen laskentakapasiteetin. Tilanteen tasapainottamiseksi malleja pyritään yksinkertaistamaan vähentämällä polygoneja alueilta, joissa niiden merkitys on vähäinen. Käytettävien algoritmien luonne riippuu tarkoitusperistä sekä kohteena olevien mallien tyypistä. Tarkoitus on useimmiten päästä mahdollisimman vähäiseen polygonimäärään, mutta kuitenkin asetetuissa rajoissa säilyttää malli riittävän hyvänä likiarvoistuksena alkuperäisestä [9]. Ennen näihin kriteereihin menemistä käydään lävitse muutama aihealueen kannalta oleellinen käsite. Tämän jälkeen käsitellään muutamia tekniikoita. Luvussa 3 päästään itse PM-tekniikkaan, jonka toteutukseen tutustutaan pääpiirteittäin ja optimointitarkastelulle annetaan hiukan suurempi painoarvo. Lopuksi ennen tehokkuustarkastelua ja yhteenvetoa käydään lävitse tekniikkaan tehty parannus, näkymäriippuvuuden huomioon ottaminen mallin tarkkuudessa. 1.1 Peruskäsitteitä Polygoni tarkoittaa suorin viivoin rajattua, suljettua tasoa ja sen määrittelevät tavallisesti kolmiulotteisen avaruuden paikkakoordinaatilliset kontrollipisteet (verteksit). [8] Polygonia rajaavia viivoja kutsutaan reunoiksi (edge). Kolmiulotteisen grafiikan esityksessä käytetyt polygonit ovat miltei poikkeuksetta alimmalla tasolla kolmioita [9]. Tämä johtu siitä, että niiden käsittely on matemaattisesti yksinkertaista: 1

3 kolmion kaikki pisteet sijaitsevat samassa tasossa. Puhuttaessa sävytysfunktioista tarkoitetaan sitä tapaa, funktiota tai algoritmia, joka täyttää polygonipinnan tason väriarvoilla renderöitäessä [8]. Yhtä kokonaisuutta mallintavaa polygonirakennelmaa kutsutaan nimellä mesh. Meshissä polygonin rajaamaa kaksiulotteista pintaa kutsutaan tässä paperissa tasopinnaksi (face). Geometrian yksinkertaistamisen yhteydessä topologialla tarkoitetaan meshin polygonirakennetta; sen luonnetta ja ominaisuuksia. Tähän kuuluu genus, joka on yhtä kuin meshin pinnalta löytyvien aukkojen lukumäärä. Tason, kulman tai verteksin paikallisella topologialla tarkoitetaan kyseisen osan liitännäisyyttä sen välittömään naapurustoon. Jos jokaiselle meshin osan naapurostolle pätee, että ne muodostavat yhteneväisen polygonirenkaan, jossa ei ole aukkoja, sanotaan että mesh muodostaa 2D manifoldin (katso kuva 1). Tässä esityksessä käsitellyt meshit täyttävät edellä kuvatut vaatimukset jos toisin ei ole mainittu [9]. Kuva 1: Vasemmalla 2D manifoldi mesh, oikealla kolme tapausta ei-manifoldeista mesheistä. (D.P. Luebke 2001, lähteestä [9], sivu 27) 1.2 Yksinkertaistuksen tarve Lähestymistapa yksinkertaistamisessa riippuu paljolti siitä, mitä sillä halutaan saavuttaa. Yhtä ylivoimaista algoritmia ei ole. Erilaisia tekniikoita on kehitetty pitäen mielessä tietty käyttötarkoitus: halutaanko poistaa mallin tarkkuuden kannalta turha geometria, joita esimerkiksi taitamaton 3d-mallinnusohjelmiston käyttö saatta synnyttää, pyritäänkö minimoimaan mallin viemää tilaa, halutaanko mallin ajonaikainen suorituskyky nopeaksi vai onko ehkä tärkeintä korkeatasoinen ulkonäkö? Sopivimman lähestymistavan valintaan vaikuttaa myös millaisesta mallista on kysymys. Jotkut lähestymistavat sopivat parhaiten orgaanisille ja pyöreitä muotoja sisältäville malleille, kuten eläimille, ja jotkut taas kulmikkaille malleille. Jotkut algoritmit hyväksyvät syötteekseen vain manifoldeja objekteja, ja jotkut taas saattavat lopputuloksena rikkoa manifoldin topologian esimerkiksi sulkemalla alkuperäisen meshin pinalla olevia aukkoja. Tällaiset algoritmit eivät ole kovin tarkkoja, mutta sen sijaan kykenevät suurempaan yksinkertaistukseen [9]. 1.3 Asteittainen yksinkertaistus Yksi lähestymistapa on esittää mallit asteittaisesti. Tällöin puhutaan level-of-detail esityksestä, joka tarkoittaa että samasta mallista on useita, eritarkkuuksisia esityksiä. Näitä voidaan käyttää katsojan ollessa eri etäisyyksillä mallista, koska esimerkiksi kauempana ei tarvita niin yksityiskohtaista esitystä. Myös käytössä olevan laitteiston mukaan esitystarkkuutta voidaan mukauttaa [9]. 2

4 1.4 Yksinkertaistuksen staattisuus ja dynaamisuus Yksikertaistukseen käytettäviä algoritmeja erottaa myös, ovatko ne luonteeltaan staattisia vai dynaamisia. Dynaamisissa tekniikkoissa käytetty LoD lasketaan ajonaikaisesti jolloin päästään hienojakoisempiin tuloksiin. Asteittainen yksityiskohtaistaminen voidaan tehdä myös staattisesti kokonaan esikäsittelyvaiheessa, jolloin ongelma on yksinkertaisempi, mutta mallien skaalautuvuus eri tilanteisiin on rajallisen LoD-määrän takia huonompi. Dynaaminen lähestyminen mahdollistaa luontevasti myös mallin asteittaisen lähettämisen ja renderöinnin ilman, että kaistaa tuhlaantuu samojen yksityiskohtien uudelleenlähettämiseen [9]. 1.5 Käytettävät tekniikat Näytteistys (sampling), mukautuva uudelleenjako (adaptive subdivision), desimaatio (decimation) ja verteksien yhdistäminen (vertex merging) ovat neljä perusmekanismia, mitä miltei jokainen geometrian yksinkertaistamiseen tehty tekniikka käyttää hyväkseen. Useasti käyttössä on näiden yhdistelmä tai jonkinlainen muunnelma. Näytteistyksessä alkuperäisen mallin geometriasta otetaan halutulla tarkkuudella näytteitä joko sen pinnalta tai mallin päälle asetetun kolmiulotteisen hilan avulla. Tätä käyttävät tekniikat toimivat parhaiten ei-kulmikkaiden, orgaanisten mallien kanssa. Mukautuvassa jaossa aluksi etsitään yksinkertainen perus-mesh, joka mallintaa erittäin karkeasti alkuperäistä mallia. Tämän perus-meshin osia voidaan rekursiivisesti jakaa pienempiin osiin ja saada tarkempi likiarvoistus. Desimaatiolla tarkoitetaan verteksien tai tasopintojen iteratiivista poistamista meshistä. Tätä käyttävät algoritmit täyttävät iteraatiokierroksella syntyneet aukot kolmioilla. Desimaatio on yleensä yksinkertaista toteuttaa ja sitä käyttävät algoritmit voivat olla erittäin nopeita. Verteksien yhdistämisessä sen nimen mukaisesti tesseloidusta mallista kaksi tai useampi verteksi yhdistetään toisiinsa, jolloin verteksien ja sitä myötä polygonien lukumäärä mallissa vähenee [9]. 2 AIKAISEMMAT ALGORITMIT Tässä luvussa käydään lävitse valikoidusti muutamia algoritmeja, jotka liittyvät edellä esille tuotuihin mekanismeihin ja jotka liittyvät läheisesti paperin varsinaiseen aiheeseen (PM), lukuunottamatta ehkä viimeisenä esitelty algoritmi, joka on pikemminkin vaihtoehtona ei-manifoldin syötteen tapauksessa. 2.1 Kolmiollisten meshien desimaatio (triangle mesh decimation) Kolmikon Schroeder, Zarge ja Lorenson kehittämä algoritmi [10] on yksi ensimmäisistä yleisiä polygonimalleja yksinkertaistavista tekniikoista [9]. Algoritmi on alun perin suunniteltu käytettäväksi poistamaan turhia pintoja, joita marching cubes niminen algoritmi usein polygonitarkkuuden suhteen synnyttää. Marching cubes (kehittäjinä William Lorensen ja Harvey Cline) algoritmi luo syötteenä saamastaan pistejoukosta renderöintiä varten suuren joukon kuutiollisia elementtejä, jotka likiarvoistavat lähtöjoukon kuvaamaa mallia mahdollistaen nopean ja yleisen, sekä myös tarkan renderöinnin [11]. Desimaatio-tekniikka suorittaa useita kertoja testikierroksen jokaiselle mallin verteksille, jonka mahdollisena tuloksena verteksi ja sitä myöten kaikki sitä käyttävät kolmiot poistetaan. Näin tapahtuessa malliin syntyvä aukko täytetään kolmioilla käyttäen jäljelle jääneitä ympäröiviä verteksejä. Kierrosten suoritus lopetetaan kun jokin ehto, tavallisesti tapahtunut prosenttimääräinen vähennys 3

5 verteksien suhteen alkuperäiseen malliin verrattaessa, on käynyt toteen. Testikierroksilla käytetty desimaatio-kriteeri, joka voi vaihdella erilaisille vertekseille, mittaa tavallisesti verteksin etäisyyttä johonkin keskiarvoistaen approksimoivaan tasopintaan [10]. Algoritmi säilyttää mallin topologian, vaikkakin hyväksyy syötteekseen myös eimanifoldeja malleja ja ulostulona saatu verteksien joukko on osajoukko alkuperäisestä verteksien joukosta [9]. Tekniikka sopii hyvin monenlaisille malleille ja on nopea, mutta se ei ole kovin tarkka ja käyttää paljon muistia [2]. 2.2 Polygonipintojen uudelleen rakennus (Re-Tiling polygonal surfaces) Tämä Greg Turkin kehittämä algoritmi [12] luo alkuperäisestä mallista LoD esityksen, joka säilyttää alkuperäisen topologian. Algoritmilla on rajoituksensa ja se sopii parhaiten kaarevien pintojen kuten orgaanisten muotojen, ihmisten ja eläimien, yksinkertaistamiseen [2]. Algoritmi aloittaa sirottelemalla satunnaisesti käyttäjävalinnaisen, ja siten LoD-tarkkuuden sanelevan, määrän pisteitä syötteenä saadun mallin pinnalle. Tämän jälkeen algoritmi pyrkii iteratiivisesti levittämään nämä pisteet pinnalle tasavälisesti, joka tapahtuu laskemalla pisteelle ns. nettotyöntövoima, jonka muut pisteet siihen etäisyytensä mukaan aiheuttavat. Tämän voiman aiheuttamana piste työntyy pitkin alkuperäistä tasopintaa etsiytyen tasapainotilaan. Kun tämä on jollakin tarkkuudella saavutettu, pisteet liitetään malliin tesseloimalla koko malli uudelleen. Viimeisenä vaiheena alkuperäiset verteksit tuhotaan mallista yksitellen ja syntyvät aukot täytetään kolmioilla uusia pisteitä käyttäen [12]. Useat laskentaintensiiviset vaiheet tekevät Turkin algoritmista monimutkaisen. Lisäksi sellaisenaan se tuottaa epätarkempia tuloksia kuin esimerkiksi Schroederin ja kumppanien edellä esitetty algoritmi [2]. Sillä kuitenkin periaattessa saavutetaan jatkuva LoD. 2.3 Meshien optimointi (Mesh optimization) Tämä ryhmän Hoppe, DeRose, Duchamp, McDonald ja Stuetzle kehittämä algoritmi [3] toimi pohjana tässä esityksessä varsinaisena aiheena olevalle PM algoritmille [4]. Syötteenä algoritmille toimii pistejoukko, josta aluksi kolmioidaan tarkka approksimaatio. Tämän jälkeen algoritmi optimoi globaalin energiafunktion turvin tapaa, jolla aloitusmallin yksinkertaistaminen etenee. Yksinkertaistus tapahtuu kolmen toimenpiteen avulla; yksi niistä vähentää reunan mallista, toinen on edelliselle käänteinen jakaen reunan kahtia ja kolmas vaihtaa reunan paikkaa kiinnittyen kyseessä olevien kahden kolmion niihin vertekseihin, joissa reuna ei aikaisemmin ollut kiinni (kahteen näistä palataan tarkemmin PM:n yhteydessä luvussa 3). Algoritmi etenee valitsemalla tiettyjen heuristiikkojen ja osin satunnaisuuden perusteella reunan mallista ja suorittaen sille jonkin edellä mainituista operaatioista sen mukaan, minimoituuko globaali energiafunktio ja onko toimenpide ylipäätään laillinen [3]. Ulostulona saatu verteksijoukko ei ole välttämättä osajoukko syötteestä ja muutenkin algoritmi sietää hyvin kohinaa. Algoritmi tuottaa hyvin korkeatasoisia yksinkertaistuksia, mutta on hidas. 2.4 Monitarkkuuksinen 3D likiarvoistus (multi-resolution 3D approximations for rendering complex scenes) Toisin kuin edellä tarkastellut algoritmit, tutkijoiden Rossignac ja Borrel kehittämä tekniikka ei vaadi manifoldia topologiaa syötteeltä. Se ei myöskään mallin topologiaa 4

6 välttämättä säilytä. Algoritmi pystyy siten operoimaan sellaisten mallien kanssa mihin edellä esitetyt ratkaisut eivät pure [2]. Algoritmi etenee jakaen mallia rajoittavan tilavuuden valinnaistarkkuuksiseen 3D-hilaan. Tämän jälkeen mallin kaikkien verteksien tärkeys arvioidaan. Suurissa tasopinnoissa kiinni olevat ja suuren kaarevuuden omaavat verteksit saavat suurimman painon. Tämän jälkeen kaikki hilan yhden alkion sisälle jäävät verteksit yhdistetään siihen verteksiin, jonka painoarvo alkion sisällä on suurin. Hilan resoluutio siis määrää syntyvän yksinkertaistuksen tarkkuuden. Algoritmi on hyvin nopea ja sitä voidaan soveltaa miltei mihin tahansa syötteeseen, mutta se säilyttää yksityiskohtia hyvin huonosti [9]. 3 PROGRESSIVE MESHES Hoppen kehittämässä PM-tekniikassa mesh esitetään rakenteena, joka sisältää pitkälle yksinkertaistetun perus-meshin, sekä sitä hienontavan operaatiosarjan. Tämä sarja lisää meshiin yksityiskohtia asteittain ja suurimmalla hienonnuksen asteella saavutetaan alkuperäinen meshi. Tekniikka on siten häviötön. PM esityksen rakennus tapahtuu esiprosessointivaiheessa ja on kolmivaiheinen. Ensin luodaan alkuperäisestä mallista perus-mesh. Tämän jälkeen edellisen vaiheen pohjalta luodaan perus-meshiä hienontava operaatiosarja. Lopuksi esityksen muoto yhdenmukaistetaan. Tuloksena on kuvakulmariippumaton, jatkuvatarkkuuksinen LoD - rakenne, josta haluttu LoD voidaan hakea ajonaikaisesti. Tekniikka perustuu monelta osin Hoppen ja kumppaneiden aikaisempaan työhön [3]. Ennen PM tekniikan vaiheiden tarkempaa käsittelyä käydään lävitse mesheille käytetty esitystapa. Koko tämä luku nojautuu vahvasti lähteeseen [4], eikä viitteitä siihen täten erikseen mainita (muun lähteen ollessa kyseessä tämä mainitaan). 3.1 Meshien esitys K V tuppeleina. Tuppeleilla tarkoitetaan matemaattisesti V = v v on meshin muodon määrittävä verteksisijaintien joukko R 3 avaruudessa. K (ns. simplicial complex) määrittää meshin verteksien, reunojen ja tasopintojen liitännäisyydet (l. suorat keskinäiset yhteydet). K koostuu verteksien joukosta { 1,...,m }, jotka on numeroitu V :n mukaan, sekä kolmenlaisista sen ei-tyhjistä osajoukoista (simplekseistä). 0-simpleksit { i} K ovat triviaalisti nimeltään verteksejä (vertex), 1-simpleksit { i, j} K reunoja i, jk, K tasopintoja (faces) [3]. Yleensä meshit esitetään (, ) määritettyä esitystä joukosta ja sen suhteista. Esityksessä {,..., 1 m} (edge) ja 2-simpleksit { } Geometrian lisäksi meshin esitykseen sisällytetään usein myös muita, ulkonäköä määrittäviä attribuutteja jotka voidaan jakaa diskreetteihin ja skalaareihin. Diskreetit attribuutit liittyvät meshin tasopintoihin ja niitä ovat mm. materiaalitunniste, joka määrää millä sävytysfunktiolla, kuten tekstuuripinnoitteella, pinta renderöidään. Näillä attribuuteilla saadaan aikaan mm. taitekohtia ja varjojen rajoja eri tasopintojen välille. Skalaareja attribuutteja ovat tavallisimmin diffuusi väri ( r, gb, ), normaalivektori,, u, v. On tavallista liittää skalaarit attribuutit ( x y z) n n n sekä tekstuurikoordinaatit ( ) meshin kulmiin eli verteksi-tasopinta, ( v, f ), tuppeleihin, jolloin saadaan esitettyä epäjatkuvuutta paremmin tapauksissa, joissa vierekkäisillä tasopinnoilla on eri sävytysfunktiot. Koska PM-esityksessä otetaan huomioon myös ei-geometriset attribuutit, esitetään mesh M = KV,, DS,, jossa K ja V ovat kuten edellä kuvattu, D on diskreettien tuppelina ( ) 5

7 attribuuttien joukko tasopinnoille {,, } joukko meshin kulmille ( v, f ). 3.2 Algoritmin pääpiirteet f = j k l K, ja S on skalaarien attribuuttien Alkuperäistä, yksinkertaistettavaa meshiä merkitään symbolilla ˆM. Syötteen on oltava kohdassa 1.1 esiintyneen keskustelun mukaista. PM esitys tästä muodostuu tuppelista 0 ( M,{ vsplit0,..., vsplitn 1} ), jossa M 0 on pitkälle yksinkertaistettu perus-mesh ja jälkimmäinen osa meshiä alkuperäiseen suuntaan hienontava operaatiosarja. M 0 muodostetaan soveltamalla useita kertoja peräkkäin meshin reunoja vähentävää edge collapse (ecol) muunnosta. Siihen nähden käänteinen operaatio on edge split (vsplit), jota käytetään hienonnuksessa. Muunnoksia havainnollistaa kuva 2. Kuva 2: Ecol ja vsplit ovat toisiinsa nähden käänteisiä muunnoksia, joiden avulla meshistä muodostetaan yksinkertaisempi/yksityiskohtaisempi. (H. Hoppe 1996, lähteestä [4], sivu 100) Muunnokset ottavat syötteenään neljä verteksiä ja näiden rajaamat tasopinnat. Ecol on parametrisessa muodossaan (,,,,, ) ecol vs vl vr vs fl f r. Ecol muunnos yhdistää meshistä kaksi verteksiä, jolloin verteksien lukumäärä vähenee yhdellä ja tasopintojen lukumäärä kahdella. Tuloksena saadun yhdistetyn verteksin parametrit (mm. sijainti) määrätään interpoloimalla lineaarisesti lähtöverteksien parametriarvoista. Tällä tapaa pystytään lähtö-meshin ja yksinkertaistetun meshin välille luomaan tarvittaessa visuaalisesti sulava muunnos, ns. geomorfi. Suoritettava ecol muunnos on laillinen ja siten tapahtuu vain mikäli meshin topologia säilyy. Suorittamalla sarja ecol operaatioita päädytään perus-meshiin. Valinnat siitä, kuinka monta kertaa, mihin verteksipareihin ja missä järjestyksessä muunnosta sovelletaan, vaikuttavat suuresti syntyvän likiarvoistuksen laatuun. Yksinkertainen ja nopea tapa on valita verteksit satunnaisesti, mutta korkeatasoisiin tuloksiin päästään vain jos pyritään optimoimaan jotain meshin ulkonäöstä kertovaa metriikkaa. Seuraavassa tutustutaan lähteessä [4] esitettyyn vaihtoehtoon. 3.3 Suoritusjärjestys ja energiafunktio algoritmissa Meshin yksinkertaistusta optimoidessa tässä tapauksessa minimoimaan energiafunktiota, joka kertoo kuinka tarkka likiarvoistus yksinkertaistettu mesh M on alkuperäisestä meshistä ˆM. Nopeammissa ja epätarkemmissa malleissa funktiot ovat yksinkertaisempia, mutta koska hyväksyttävän tarkkuuden arvioiminen on keskeistä korkeatasoisten mallien luomisessa, käydään seuraavassa lävitse tarkemmin paperissa [4] esitetty energiafunktio 6

8 E( M) = E ( M) + E ( M) + E ( M) + E ( M), (1) dist spring scalar disc M ja yhtälöä vakauttava jousienergiatermi M skalaariattribuuttien disc M meshin epäjatkuvuuskohtien geometrista tarkkuutta. Näihin palataan kohta tarkemmin. Jotta kaavalle (1) voidaan laskea arvoja, täytyy aluksi ˆM :n geometriasta sekä attribuuteista ottaa näytteitä vähintään jokaisen verteksin kohdalta, jotta saadaan vertailukohta energiafunktion arvon laskemiselle. missä etäisyyden energiatermi Edist ( ) Espring ( M ) mittaavat meshin geometrian tarkkuutta, Escalar ( ) tarkkuutta ja E ( ) Meshiä yksinkertaistettaessa seuraava kohde ecol muunnokselle valitaan siten, että kaikki lailliset verteksipari-ehdokkaat laitetaan prioriteettijonoon, jossa prioriteetti on muunnoksen arvioitu energiakustannus E = E E, (2) K ' K missä E K on energiafunktion (1) arvo ennen muunnosta ja E K ' sen jälkeen. Pienimmän prioriteetin omaava muunnos toteutetaan, jonka jälkeen muunnosympäristön reunojen prioriteetit lasketaan uudelleen kaavasta (2). Tätä iteraatiota jatketaan kunnes esityksessä on saavutettu haluttu syvyys (l. tarpeeksi yksinkertainen M 0 ). Koska energiaa pyritään minimoimaan, lasketaan E K ' edelleen kaavalla ( ) ( ) ( ) ( ) E = min E V + E V + E V, S + E V, (3) K ' dist spring scalar disc V, S missä luvun 3.1 mukaisesti V on meshin M verteksipaikkojen ja S skalaariattribuuttien joukko. Seuraavaksi kaavan (3) termit käsitellään yksityiskohtaisemmin, jotta syntyy käsitys, mitä ja miten ominaisuuksia on otettu huomioon Geometrian säilyvyyden tarkastelu Tarkemmin eriteltynä E ( ) dist V mittaa yhteenlaskettua meshin M pisteiden neliöityä etäisyyttä ˆM :stä ja se lasketaan kaavalla x ( b ) 2, (4) b E ( V) = min φ dist i v i i K i missä x i on meshin M piste ja b i tuntematon parametrisointi x i :n projektiolle meshissä ˆM. Parametrisointi lasketaan projisoimalla M :n pisteet meshin ˆM tasoon, jolloin φv ( b i ) on saavutetun parametrisoinnin avulla saatu ns. geometrinen realisaatio, eli piste joukosta V. Yhtälö minimoidaan ratkaisemalla ns. sparse linear least-squares 2 ongelma (yleistä muotoaan: min Ax b ). Tämän ongelman ratkaisemiseen on useita algoritmeja, mm. tietokoneohjelma Matlabin SLS laajennus [1]. Termin E ( ) spring V tarkoitus on vakiinnuttaa optimointiongelma ja se on yhtä kuin 2 spring ( ) = v j v k, (5) K E V κ { jk, } 7

9 missä v j ja v k ovat keskinäisen yhteyden omaavien verteksien paikkavektoreita meshissä M ja κ paino, joka määräytyy uudelleen jokaisen ecol operaation yhteydessä tarkasteltavan alueen verteksien ja tasopintojen lukumäärien välisen suhteen mukaan. Termi siis jarruttaa pitkien reunojen poistoa meshistä. Yhdessä Edist ( V ) ja Espring ( V ) mittaavat meshin geometrian säilyvyyden tarkkuutta ja laskettaessa kaavaa (3) unohdetaan aluksi komponentit Escalar ( V, S ) ja Edisc ( V ). Näin saadaan lausekkeen tälle osalle minimiratkaisun tuottavat verteksipaikka v s ja sen tuottava parametrisaatio b. i Skalaariattribuuttien säilyvyyden tarkastelu Edellisessä kappaleessa kuvatun vaiheen jälkeen arvoja v s ja b i käyttäen minimoidaan E V, S, joka auki kirjoitettuna on muotoa termiä ( ) scalar 2 E ( V, S) = ( c ) x φ ( b ) 2, (6) scalar scalar i V i i missä vakiolla c scalar annetaan suhteellinen painoarvo skalaariattribuuttivirheen ( E scalar ) ja geometriavirheen ( E dist ) välille. Kaavassa (6) x i on ˆM :n pisteen x i kohdalta näytteistetty skalaariattribuutin arvo ja b i on siis aikaisemmin geometriavirheen minimoinnista saatu parametrisaatio. Minimoimalla kaavaa (6) samaan tapaan kuin kaavaa (4) saadaan verteksin v i skalaariattribuutille v s kaavaa (3) minimoiva arvo. Tämä termi saa aikaan sen, että verteksit joilla on suuri eroavaisuus skalaariattribuuteissa, saavat suuremman arvon tälle termille ja sitä myöten huonomman prioriteetin poistoa ajatellen Epäjatkuvuuskohtien säilyvyyden tarkastelu Koska meshin skalaari- ja diskreettiattribuutit aiheuttavat epäjatkuvuutta meshin pinnalla ja siten saattavat näkyä huomattavina piirteinä, on nämä epäjatkuvuudet hyödyllistä pyrkiä säilyttämään geometrisesti ja topologisesti. Kaavan (3) viimeisellä E V otetaan huomioon ensin mainittu. Tämä tapahtuu näytteistämällä ˆM :n terävistä kulmista pistejoukko E V kaavalla termillä ( ) disc X ja laskemalla ( ) disc disc x { }( b ) 2, (7) b v, v E ( V) = min φ disc disc i s t i i K i missä lasketaan summa jokaisen joukkoon X disc näytteistetyn pisteen φ b josta se on näytteistetty. etäisyydestä epäjatkuvuuskäyrään { }( ) vs, vt i x disc i neliöidystä Topologian muuntuminen ecol muunnoksen yhteydessä pystytään päättelemään tutkimalla muunnosympäristössä olevien terävien kulmien lukumäärää. Tarkka tapa tälle päättelemiselle esitetään paperissa [4] ja mikäli topologian todetaan muuttuvan, kaavan (2) mukaiseen energiakustannukseen lisätään vielä termi,{, } disc vs vt s t 2 X v v, (8) 8

10 missä X disc, { v, v } on niiden disc s t X :n pisteiden lukumäärä jotka projisoituvat { v, v } s t :hen. 3.4 Algoritmi ecol muunnosten jälkeen Kun ecol muunnoksien sarjalla ollaan saatu riittävästi yksinkertaistettu versio alkuperäisestä meshistä, talletetaan suoritetun ecol n-1 ecol 0 jonon perusteella muunnosjonolle käänteinen vsplit n-1 vsplit 0 sarja tiedostoon. Tämän sarjan avulla muodostettua yksinkertaistusta pystytään tarvittaessa hienontamaan. Myös muodostettu 0 perus-mesh M talletetaan tiedostoon. Lisäksi vsplit sarjan järjestys käännetään, jotta jatkossa muunnoksia suoritettaisiin loogisesti oikeassa järjestyksessä. Koska yksinkertaistettaessa esityksen verteksien ja tasopintojen indeksoinnit muuttuivat, muutetaan ne vielä vastaamaan alkuperäistä kuvausta jolloin saadaan yhdenmukainen, muokattava rakenne. Näin ollaan luotu meshistä PM esitys, jonka tehokkuuteen palataan luvussa 5. 4 NÄKYMÄRIIPPUVAISUUS Suurien kappaleiden, kuten maaston, yhteydessä toimii edellä esitetty PM tekniikka huonosti. Tämä siksi, että yhdelle meshille PM esityksessä on renderöitynä vain yksi LoD kerrallaan. Paperissa [5] esitetty parannus ottaa huomioon käytetyn näkymän (kuvakulma ja etäisyys). Monet osat mallista saattavat sijaita kokonaan näkymäikkunan ulkopuolella tai jotkut sen sisäpuolisista tasoista saattavat osoittaa poispäin katsomissuunnasta, jolloin niitä ei tarvitse renderöidä ollenkaan tai yhtä suurella tarkkuudella. Jotkut tasot taas voivat sijaita paljon lähempänä kuin toiset, jolloin eri osien mallintamisen tarkkuutta säätämällä renderöintiä saadaan nopeutettua. Aluksi käydään lävitse tekniikan vaatimat muutokset alkuperäiseen PM:ään, jonka jälkeen tutkitaan hienonnusehtoja ja -algoritmia. Tämä luku pohjautuu vahvasti lähteeseen [5], eikä viitteitä siihen täten erikseen joka kohdassa mainita. 4.1 Uuden esitystavan vaatimukset S Valikoidusti hienonnettu mesh M saadaan aikaiseksi, kun PM esityksen mukaiseen 0 perus-meshiin M sovelletaan osasarjaa S { 0,..., n 1} vsplit operaatiosarjasta. Jotta muunnokset voidaan suorittaa, on niiden oltava laillisia. Laillisuus pitää sisällään luvussa 3 käsiteltyjen asioiden lisäksi uusia ehtoja, jotka nousevat tarpeesta määritellä muunnokset uudelleen (kuva 3). Kuva 3: Vsplit ja ecol muunnosten uudet versiot näkymäriippuvaista lähestymistapaa varten. (H.Hoppe 1997, lähteestä [5] sivu 191) 9

11 vsplit vs vt vu fl fr fn0 fn 1 fn2 f n3, jossa ekplisiittisesti on mukana tavalliseen PM esitykseen verrattaessa isäverteksi v s ja lapsiverteksit v u ja v t sekä syntyvät/vähenevät ( f l ja f r ) ja niille viereiset tasopinnat ( f n0, f n1, f n2 ja f n3 ). Verteksiä tai tasopintaa joka löytyy käsittelyn kohteena olevasta S meshistä M kutsutaan aktiiviseksi. Uudet ehdot muunnoksien laillisuudelle ovat, että vsplitin tapauksessa v s, f n0, f n1, f n2 ja f n3 :n sekä ecolin tapauksessa v u ja v t :n pitää olla aktiivisia. Lisäksi jälkimmäisessä lueteltujen tasopintojen pitää olla vierekkäisiä tasopinnoille f l ja f r. Vsplitin uusi parametrisoitu muoto on (,,,,,,,, ) 4.2 Hienonnuksen ehdot Käytetyn näkymän parametreista riippuu, hienonnetaanko joitain meshin osia. Tämä päätetään kyselyfunktion qrefine( v s ) avulla, joka käyttää kolmea kriteeriä päätöstä tehdessään. Funktio on alla esitetty pseudokoodina (H.Hoppe 1997, lähteestä [5]). funktio qrefine( v s ) // hienonna vain jos se vaikuttaa pintaan joka on kuva-alassa jos kuva_alan_ulkopuolella( v s ) palauta epätosi // hienonna vain jos osa kohteena olevasta pinnasta näkyy katsojalle jos orientoitunut_poispäin( v s ) palauta epätosi // hienonna vain jos ruutuun projisoidun geometrian virhe ylittää toleranssin τ jos ruutuun_projisoidun_geometrian_virhe( v s ) τ palauta epätosi palauta tosi Ensimmäinen kriteeri saa aikaan, että kuva-alan (view frustum) ulkopuolisia osia meshistä ei hienonneta. Tämä testataan asettamalla jokainen verteksi vuorollaan keskipisteeksi valitun säteiselle pallolle ja mikäli pallopinta sijaitsee kokonaan kuvaalan ulkopuolella, palauttaa qrefine( v s ) epätoden. Toinen, pintojen orientaatioon liittyvä kriteeri, pyrkii yksinkertaistamaan alueita, jotka ovat orientoituneet poispäin katselunäkymästä. Vertailu tehdään pintojen normaalien avulla. Kolmas kriteeri, joka mittaa ruutuun projisoidun geometrian virhettä (screen-space geometric error), mukauttaa hienonnusta niin, että likiarvoistavan meshin M pinnan ja alkuperäisen meshin ˆM pinnan etäisyys toisistaan projisoituna katselutasoon on kaikkialla vähemmän kuin toleranssiarvo τ. 4.3 Algoritmin suoritus Edellä kuvattua qrefine( v s ) funktiota käytetään aina ennen kuvan renderöintiä soveltamalla sitä meshin aktiivisten verteksien listaan. Tämän listan läpikäynti toteutetaan adapt_refinement() proseduurilla, jossa jokainen verteksi testataan qrefine( v s ) funktiolla. Mikäli funktio palauttaa toden, suoritetaan pakotetusti vsplitmuunnos. Pakottaminen tässä tarkoittaa sitä, että mikäli muunnos ei olisi laillinen, muutetaan rakennetta niin että laillisuusehdot täyttyvät. Jos funktio taas sitä vastoin palauttaa epätoden, ja lisäksi jos verteksiltä löytyy vanhempi jolle ecol muunnos on laillinen ja jolle qrefine( v s ) funktio palauttaa epätoden, suoritetaan ecol muunnos verteksin v s vanhemmalle. Muussa tapauksessa verteksille ei tehdä mitään vaan adapt_refinement() proseduurin kontrollirakenne siirtyy listassa eteenpäin. 10

12 5 TOTEUTUKSIEN TEHOKKUUDEN ARVIOINTIA 5.1 PM esityksen tehokkuudesta Levytilantarve PM tekniikassa verrattuna alkuperäiseen malliin ei ole merkittävä, sillä perus-meshiä hienontavat vsplit muunnokset ovat aina paikallisia ja ne voidaan siten tallentaa lokaaleina muutoksina (ns. deltoina). Sen sijaan esiprosessointivaiheessa esityksen rakentamiseen tarvittava aika on pitkä, mallin monimutkaisuudesta riippuen minuuteista useisiin tunteihin (n tasopintaa sisältävän mallin yksinkertaistaminen PM esitykseen jonka perus-meshissä n tasopintaa vei 150MHz R MB koneelta 106 minuuttia). [4] Hitaus johtuu pitkälti energiafunktiollisesta optimoinnista, mutta PM:n yhteydessä voitaisiin siis käyttää muitakin virhemetriikoita, jos esimerkiksi ei tahdottaisi niin korkealaatuista jälkeä [9]. 5.2 Näkymäriippuvaisen laajennuksen tehokkuudesta PM:n näkymäriippuvaisessa laajennuksessa aikakompleksisuus adapt_refinement() A B proseduurille, jossa M muunnetaan M :ksi, on pahimmassa tapauksessa A B O ( V + V ), missä V on meshin M aktiivisten verteksien määrä. Jokainen ecol- ja vsplit-muunnos vie vakioajan. Tästä syntyvä aika on tavallisesti vain pieni osa mallin varsinaisesta renderöintiajasta. Muistivaatimukset näkymäriippuvaiselle PM esitykselle ovat luokkaa O ( V ˆ ), eli siis alkuperäisen meshin tasopintojen viemän määrän verran. [5] Kuvasta 4 näkyvän mallin tapauksessa näkymäriippuvainen PM esitys vähensi alkuperäiseen PM esitykseen verrattuna renderöityjen tasopintojen määrän :stä :aan ja kuvan päivitysnopeus nousi testilaitteistolla (150MHz R MB) 1,9:stä 6,7 kuvaan sekunnissa [6]. Kuva 4: Vasemmalla näkymä mallista, jonka renderöinti on suoritettu näkymäriippuvaisesti. Oikea puoli havainnollistaa käytettyä näkymää. (H. Hoppe 1997, kuva lähteestä [6]) 11

13 6 YHTEENVETO Geometrian yksinkertaistamista tarvitaan kun mallien monimutkaisuus ylittää laiteresurssit. PM-esitys on tarkkuudeltaan korkeatasoinen ja nopeudeltaan varsin kilpailukykyinen. Sen etuna on LoD mallin jatkuvatarkkuuksisuus, jonka vuoksi se pystyy sopeutumaan monenlaisiin ympäristöihin. Esityksen progressiivisuus tekee siitä hyvin soveltuvan esimerkiksi reaaliaikaiseen, kaistarajoitettuun siirtoon. Vaatimus syötemallien manifoldista topologiasta kuitenkin rajoittaa sen käyttöä, ja estää myös sitä kykenemästä kovin rajuun yksinkertaistukseen [9]. Koska PM esityksen esiprosessointiaika on pitkä, soveltuu tekniikka käytettäväksi parhaiten silloin kun tarvitaan muutamia korkeatasoisia malleja [9]. Näkymäriippuvaisuuden huomioon ottaminen nopeuttaa PM esitystä huomattavasti ilman kovin suuria kustannuksia. Mikäli ympäristössä on useita kompleksisia malleja, on syytä käyttää jotain suurempaan yksinkertaistukseen kykenevää LoD tekniikkaa. Lähteessä [6] esitetty toteutus PM:stä on ollut mukana Microsoft DirectX 5.0 tuotteessa, josta lähtien tekniikkaa on paranneltu tuotteen uudempiin versiohin [6]. VIITTEET [1] Adlers, M.; Björck, Å.; Matstoms, P. A Matlab toolbox for Sparse Least Squares problems. [2] Heckbert, P.S.; Garland, M. Survey of Polygonal Surface Simplification Algorithms. Computer Graphics (SIGGRAPH 97 notes), no.25, ACM Press, New York, [3] Hoppe, H.; DeRose, T.; Duchamp, T.; McDonald, J.; Stuetzle, W Mesh Optimization. Computer Graphics (Proceedigs of SIGGRAPH 93), osa 27, ACM Press, New York, 1993, sivut [4] Hoppe, H. Progressive Meshes. Computer Graphics (Proceedings of SIGGRAPH 96), osa 30, ACM Press, New York, 1996, sivut [5] Hoppe, H. View-dependent Refinement of Progressive Meshes. Computer Graphics (Proc. of SIGGRAPH 97 ), osa 31, ACM Press, New York, 1997, sivut [6] Hoppe, H. View-dependent Refinement of Progressive Meshes. SIGGRAPH 97 talk slides, [7] Hoppe, H. Efficient Implementation of Progressive Meshes. Computers & Graphics, osa 22, no. 1, 1998, sivut [8] Kerlow, I.V. The Art of 3-D Computer Animation and Imaging, 2 nd edition. John Wiley & Sons Inc., New York, [9] Luebke, D.P. A Developer s Survey of Polygonal Simplification Algorithms. IEEE Computer Graphics and Applications, osa May/June, 2001, sivut [10] Schroeder, W.; Zarge, J.; Lorenson, W. Decimation of Triangle Meshes. Computer Graphics (Proceedings of SIGGRAPH 92 ), osa 26, ACM Press, New York, 1992, sivut [11] Sharman, J. The Marching Cubes Algorithm (by W. Lorensen and H. Cline). [12] Turk, G. Re-Tiling Polygonal Surfaces. Computer Graphics (Proceedings of SIGGRAPH 92 ), vol.26, ACM Press, New York, 192, sivut

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

4. Esittäminen ja visualisointi (renderöinti) 4. Esittäminen ja visualisointi (renderöinti) Tutkitaan erilaisia renderöintimenetelmiä, joita käytetään luvuissa 2 ja 3 esitettyjen kuvien esitysmuotojen visualisointiin. Seuraavassa selvitetään: (1)

Lisätiedot

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

10.2. Säteenjäljitys ja radiositeettialgoritmi. Säteenjäljitys 10.2. Säteenjäljitys ja radiositeettialgoritmi Säteenjäljitys Säteenjäljityksessä (T. Whitted 1980) valonsäteiden kulkema reitti etsitään käänteisessä järjestyksessä katsojan silmästä takaisin kuvaan valolähteeseen

Lisätiedot

Yksinkertaistaminen normaalitekstuureiksi

Yksinkertaistaminen normaalitekstuureiksi TEKNILLINEN KORKEAKOULU 30.4.2003 Tietoliikenneohjelmistojen ja multimedian laboratorio Tik-111.500 Tietokonegrafiikan seminaari Kevät 2003: Reaaliaikainen 3D grafiikka Yksinkertaistaminen normaalitekstuureiksi

Lisätiedot

Luento 6: Geometrinen mallinnus

Luento 6: Geometrinen mallinnus Tietokonegrafiikan perusteet T-111.4300 3 op Luento 6: Geometrinen mallinnus Lauri Savioja, Janne Kontkanen 11/2007 Geometrinen mallinnus / 1 Sisältö Mitä on geometrinen mallinnus tietokonegrafiikassa

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

Lisätiedot

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti. Tietorakenteet, laskuharjoitus 11, ratkaisuja 1. Leveyssuuntaisen läpikäynnin voi toteuttaa rekursiivisesti käsittelemällä jokaisella rekursiivisella kutsulla kaikki tietyllä tasolla olevat solmut. Rekursiivinen

Lisätiedot

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:

Lisätiedot

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

Lisätiedot

Geometrian yksinkertaistaminen Quadric error metrics -menetelmällä

Geometrian yksinkertaistaminen Quadric error metrics -menetelmällä TEKNILLINEN KORKEAKOULU 5.5.003 Tietoliikenneohelmistoen a multimedian laboratorio T-.500 Tietokonegrafiikan seminaari Kevät 003: Reaaliaikainen 3d-grafiikka, visualisoinnin tehokkuuden lisääminen Geometrian

Lisätiedot

Fotogrammetrian seminaari. Kolmiulotteisen pinnanmuodostuksen asettamat vaatimukset 3D-digitoinnin suorittamiseen

Fotogrammetrian seminaari. Kolmiulotteisen pinnanmuodostuksen asettamat vaatimukset 3D-digitoinnin suorittamiseen Fotogrammetrian seminaari Kolmiulotteisen pinnanmuodostuksen asettamat vaatimukset 3D-digitoinnin suorittamiseen 1 Johdanto...3 Alkuoletukset pisteaineistolle...3 Kolmiopinnan muodostaminen...5 2D-Marching

Lisätiedot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

Lisätiedot

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1 TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-.39 Optimointioppi Kimmo Berg 8. harjoitus - ratkaisut. a)huomataan ensinnäkin että kummankin jonon raja-arvo r on nolla. Oletetaan lisäksi että

Lisätiedot

TEKNILLINEN KORKEAKOULU Tietoliikenneohjelmistojen ja Multimedian Laboratorio T Tietokonegrafiikan seminaari L.

TEKNILLINEN KORKEAKOULU Tietoliikenneohjelmistojen ja Multimedian Laboratorio T Tietokonegrafiikan seminaari L. TEKNILLINEN KORKEAKOULU 4.2.2004 Tietoliikenneohjelmistojen ja Multimedian Laboratorio T-111.500 Tietokonegrafiikan seminaari L Billboard Clouds Jon Franzas, TKK jfranzas@cc.hut.fi 52365B Billboard Clouds

Lisätiedot

Luento 6: Piilopinnat ja Näkyvyys

Luento 6: Piilopinnat ja Näkyvyys Tietokonegrafiikan perusteet T-111.4300 3 op Luento 6: Piilopinnat ja Näkyvyys Janne Kontkanen Geometrinen mallinnus / 1 Johdanto Piilopintojen poisto-ongelma Syntyy kuvattaessa 3-ulotteista maailmaa 2-ulotteisella

Lisätiedot

Pintoja kuvaavien verkkojen muodostaminen ja optimointi. Antti Seppälä

Pintoja kuvaavien verkkojen muodostaminen ja optimointi. Antti Seppälä Pintoja kuvaavien verkkojen muodostaminen ja optimointi Antti Seppälä Tampereen yliopisto Tietojenkäsittelytieteiden laitos Pro gradu -tutkielma Joulukuu 2001 Tampereen yliopisto Tietojenkäsittelytieteiden

Lisätiedot

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

7 tapaa mallintaa maasto korkeuskäyristä ja metodien yhdistäminen 1 / 11 Digitaalisen arkkitehtuurin yksikkö Aalto-yliopisto 7 tapaa mallintaa maasto korkeuskäyristä ja metodien yhdistäminen Kertauslista yleisimmistä komennoista 2 / 11 Kuvan tuominen: PictureFrame Siirtäminen:

Lisätiedot

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus Tampereen yliopisto Tietokonegrafiikka 201 Tietojenkäsittelytiede Harjoitus 6 1..201 1. Tarkastellaan Gouraudin sävytysmallia. Olkoon annettuna kolmio ABC, missä A = (0,0,0), B = (2,0,0) ja C = (1,2,0)

Lisätiedot

Inversio-ongelmien laskennallinen peruskurssi Luento 7 8

Inversio-ongelmien laskennallinen peruskurssi Luento 7 8 Inversio-ongelmien laskennallinen peruskurssi Luento 7 8 Kevät 2011 1 Iteratiivisista menetelmistä Tähän mennessä on tarkasteltu niin sanottuja suoria menetelmiä, joissa (likimääräinen) ratkaisu saadaan

Lisätiedot

T-111.4310 Vuorovaikutteinen tietokonegrafiikka Tentti 14.12.2011

T-111.4310 Vuorovaikutteinen tietokonegrafiikka Tentti 14.12.2011 T-111.4310 Vuorovaikutteinen tietokonegrafiikka Tentti 14.12.2011 Vastaa kolmeen tehtävistä 1-4 ja tehtävään 5. 1. Selitä lyhyesti mitä seuraavat termit tarkoittavat tai minkä ongelman algoritmi ratkaisee

Lisätiedot

Tilanhallintatekniikat

Tilanhallintatekniikat Tilanhallintatekniikat 3D grafiikkamoottoreissa Moottori on projektin osa joka vastaa tiettyjen toiminnallisuuksien hallinnasta hallitsee kaikki vastuualueen datat suorittaa kaikki tehtäväalueen toiminnot

Lisätiedot

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

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2 BM20A5700 - Integraauunnokset Harjoitus 2 1. Laske seuraavat raja-arvot. -kohta ratkeaa, kun pistät sekä yläkerran että alakerran muotoon (z z 1 )(z z 2 ), missä siis z 1 ja z 2 ovat näiden lausekkeiden

Lisätiedot

1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on 13 Pistetulo Avaruuksissa R 2 ja R 3 on totuttu puhumaan vektorien pituuksista ja vektoreiden välisistä kulmista. Kuten tavallista, näiden käsitteiden yleistäminen korkeampiulotteisiin avaruuksiin ei onnistu

Lisätiedot

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys .. Kohteiden konstruktiivinen avaruusgeometrinen esitys Avaruusgeometrinen esitys on käyttäjäriippuvainen ja vaati erikoismenetelmiä tai lopuksi konversion monikulmiomalliksi. Se on korkean tason esitys

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden

Lisätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon

Lisätiedot

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

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010 TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 Optimaalisuus: objektiavaruus f 2 min Z = f(s) Parhaat arvot alhaalla ja vasemmalla

Lisätiedot

Insinöörimatematiikka D, laskuharjoituksien esimerkkiratkaisut

Insinöörimatematiikka D, laskuharjoituksien esimerkkiratkaisut Insinöörimatematiikka D, 29.3.2016 4. laskuharjoituksien esimerkkiratkaisut 1. Olkoon u (4,0,4,2) ja v ( 1,1,3,5) vektoreita vektoriavaruudessa R 4. Annetun sisätulon (x,y) indusoima normi on x (x,x) ja

Lisätiedot

4.3. Matemaattinen induktio

4.3. Matemaattinen induktio 4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta

Lisätiedot

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9.2.2011

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9.2.2011 PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA 9..0 Kokeessa saa vastata enintään kymmeneen tehtävään.. Sievennä a) 9 x x 6x + 9, b) 5 9 009 a a, c) log 7 + lne 7. Muovailuvahasta tehty säännöllinen tetraedri muovataan

Lisätiedot

1. Logiikan ja joukko-opin alkeet

1. Logiikan ja joukko-opin alkeet 1. Logiikan ja joukko-opin alkeet 1.1. Logiikkaa 1. Osoita totuusarvotauluja käyttäen, että implikaatio p q voidaan kirjoittaa muotoon p q, ts. että propositio (p q) ( p q) on identtisesti tosi. 2. Todista

Lisätiedot

Kimppu-suodatus-menetelmä

Kimppu-suodatus-menetelmä Kimppu-suodatus-menetelmä 2. toukokuuta 2016 Kimppu-suodatus-menetelmä on kehitetty epäsileiden optimointitehtävien ratkaisemista varten. Menetelmässä approksimoidaan epäsileitä funktioita aligradienttikimpulla.

Lisätiedot

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio Ellipsoidimenetelmä Kokonaislukuoptimointi Sovelletun matematiikan lisensiaattiseminaari Kevät 2008 / 1 Sisällys Ellipsoidimenetelmän geometrinen perusta ja menetelmän idea Formaali ellipsoidimenetelmä

Lisätiedot

etunimi, sukunimi ja opiskelijanumero ja näillä

etunimi, sukunimi ja opiskelijanumero ja näillä Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

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

Luku 6: Grafiikka. 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat 2D-piirto 2-ulotteisen grafiikan piirto perustuu yleensä valmiiden kuvien kopioimiseen näyttömuistiin (blitting)

Lisätiedot

useampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero

useampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero Alkioiden avaimet Usein tietoalkioille on mielekästä määrittää yksi tai useampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero 80 op

Lisätiedot

Taso 1/5 Sisältö ESITIEDOT: vektori, koordinaatistot, piste, suora

Taso 1/5 Sisältö ESITIEDOT: vektori, koordinaatistot, piste, suora Taso 1/5 Sisältö Taso geometrisena peruskäsitteenä Kolmiulotteisen alkeisgeometrian peruskäsitteisiin kuuluu taso pisteen ja suoran lisäksi. Intuitiivisesti sitä voidaan ajatella joka suunnassa äärettömyyteen

Lisätiedot

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

Anna jokaisen kohdan vastaus kolmen merkitsevän numeron tarkkuudella muodossa

Anna jokaisen kohdan vastaus kolmen merkitsevän numeron tarkkuudella muodossa Preliminäärikoe Tehtävät Pitkä matematiikka / Kokeessa saa vastata enintään kymmeneen tehtävään Tähdellä (* merkittyjen tehtävien maksimipistemäärä on 9, muiden tehtävien maksimipistemäärä on 6 Jos tehtävässä

Lisätiedot

Algoritmit 2. Luento 2 To Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento

Lisätiedot

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö Algoritmit 1 Luento 10 Ke 11.2.2015 Timo Männikkö Luento 10 Algoritminen ongelman ratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Väliinsijoituslajittelu Valintalajittelu

Lisätiedot

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

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut 1. Palautetaan vielä mieleen O-notaation määritelmä. Olkoon f ja g funktioita luonnollisilta luvuilta positiivisille

Lisätiedot

STL:n luonti IronCADillä

STL:n luonti IronCADillä STL:n luonti IronCADillä STL-tiedoston luonti IronCADilla etenee seuraavasti: 1. Avataan haluttu kappale IronCADilla. 2. Kappaletta napsautetaan hiiren oikealla näppäimellä ja valitse pudotusvalikosta

Lisätiedot

S09 04 Kohteiden tunnistaminen 3D datasta

S09 04 Kohteiden tunnistaminen 3D datasta AS 0.3200 Automaatio ja systeemitekniikan projektityöt S09 04 Kohteiden tunnistaminen 3D datasta Loppuraportti 22.5.2009 Akseli Korhonen 1. Projektin esittely Projektin tavoitteena oli algoritmin kehittäminen

Lisätiedot

Osa IX. Z muunnos. Johdanto Diskreetit funktiot

Osa IX. Z muunnos. Johdanto Diskreetit funktiot Osa IX Z muunnos A.Rasila, J.v.Pfaler () Mat-.33 Matematiikan peruskurssi KP3-i 9. lokakuuta 2007 298 / 322 A.Rasila, J.v.Pfaler () Mat-.33 Matematiikan peruskurssi KP3-i 9. lokakuuta 2007 299 / 322 Johdanto

Lisätiedot

Visualisoinnin perusteet

Visualisoinnin perusteet 1 / 12 Digitaalisen arkkitehtuurin yksikkö Aalto-yliopisto Visualisoinnin perusteet Mitä on renderöinti? 2 / 12 3D-mallista voidaan generoida näkymiä tietokoneen avulla. Yleensä perspektiivikuva Valon

Lisätiedot

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta Yliassistentti Jussi Hakanen jussi.hakanen@jyu.fi syksy 2010 NSGA-II Non-dominated Sorting Genetic Algorithm (NSGA) Ehkä tunnetuin EMO-menetelmä

Lisätiedot

Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio T Tietokonegrafiikan seminaari.

Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio T Tietokonegrafiikan seminaari. Teknillinen korkeakoulu 27.4.2004 Tietoliikenneohjelmistojen ja multimedian laboratorio T-111.500 Tietokonegrafiikan seminaari Geometriakuvat Otto Korkalo 48178R Geometriakuvat Otto Korkalo TKK, Tietoliikenneohjelmistojen

Lisätiedot

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

1 Kertaus. Lineaarinen optimointitehtävä on muotoa: 1 Kertaus Lineaarinen optimointitehtävä on muotoa: min c 1 x 1 + c 2 x 2 + + c n x n kun a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2 (11) a m1 x 1 + a m2 x 2 + + a mn x n

Lisätiedot

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu 811312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 3, Ratkaisu Harjoituksessa käsitellään algoritmien aikakompleksisuutta. Tehtävä 3.1 Kuvitteelliset algoritmit A ja B lajittelevat syötteenään

Lisätiedot

Yhden muuttujan funktion minimointi

Yhden muuttujan funktion minimointi Yhden muuttujan funktion minimointi Aloitetaan yhden muuttujan tapauksesta Tarpeellinen myös useamman muuttujan tapauksessa Tehtävä on muotoa min kun f(x) x S R 1 Sallittu alue on muotoa S = [a, b] tai

Lisätiedot

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

Preliminäärikoe Tehtävät Pitkä matematiikka 4.2.2014 1 / 3 Preliminäärikoe Tehtävät Pitkä matematiikka / Kokeessa saa vastata enintään kymmeneen tehtävään Tähdellä (* merkittyjen tehtävien maksimipistemäärä on 9, muiden tehtävien maksimipistemäärä on 6 Jos tehtävässä

Lisätiedot

Tekijä Pitkä matematiikka

Tekijä Pitkä matematiikka K1 Tekijä Pitkä matematiikka 5 7..017 a) 1 1 + 1 = 4 + 1 = 3 = 3 4 4 4 4 4 4 b) 1 1 1 = 4 6 3 = 5 = 5 3 4 1 1 1 1 1 K a) Koska 3 = 9 < 10, niin 3 10 < 0. 3 10 = (3 10 ) = 10 3 b) Koska π 3,14, niin π

Lisätiedot

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015 ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:

Lisätiedot

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.

Lisätiedot

Cantorin joukon suoristuvuus tasossa

Cantorin joukon suoristuvuus tasossa Cantorin joukon suoristuvuus tasossa LuK-tutkielma Miika Savolainen 2380207 Matemaattisten tieteiden laitos Oulun yliopisto Syksy 2016 Sisältö Johdanto 2 1 Cantorin joukon esittely 2 2 Suoristuvuus ja

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

Luento 3: 3D katselu. Sisältö

Luento 3: 3D katselu. Sisältö Tietokonegrafiikan perusteet T-.43 3 op Luento 3: 3D katselu Lauri Savioja Janne Kontkanen /27 3D katselu / Sisältö Kertaus: koordinaattimuunnokset ja homogeeniset koordinaatit Näkymänmuodostus Kameran

Lisätiedot

2.3 Virheitä muunnosten käytössä

2.3 Virheitä muunnosten käytössä 2.3 Virheitä muunnosten käytössä Esimerkissä 1 yhtälönratkaisuprosessi näytetään kokonaisuudessaan. Yhtälön rinnalla ovat muunnokset ja sanallinen selitys, johon oppilaat täydentävät esimerkissä käytetyt

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return

Lisätiedot

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Mitä on konvoluutio? Tutustu kuvankäsittelyyn Mitä on konvoluutio? Tutustu kuvankäsittelyyn Tieteenpäivät 2015, Työohje Sami Varjo Johdanto Digitaalinen signaalienkäsittely on tullut osaksi arkipäiväämme niin, ettemme yleensä edes huomaa sen olemassa

Lisätiedot

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento

Lisätiedot

Oppimistavoitematriisi

Oppimistavoitematriisi Oppimistavoitematriisi Lineaarialgebra ja matriisilaskenta I Esitiedot Arvosanaan 1 2 riittävät Arvosanaan 3 4 riittävät Arvosanaan 5 riittävät Yhtälöryhmät (YR) Osaan ratkaista ensimmäisen asteen yhtälöitä

Lisätiedot

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014 Yhtälönratkaisusta Johanna Rämö, Helsingin yliopisto 22. syyskuuta 2014 Yhtälönratkaisu on koulusta tuttua, mutta usein sitä tehdään mekaanisesti sen kummempia ajattelematta. Jotta pystytään ratkaisemaan

Lisätiedot

2.2 Muunnosten käyttöön tutustumista

2.2 Muunnosten käyttöön tutustumista 2.2 Muunnosten käyttöön tutustumista Tunnin rakenne: - Esimerkki (min) - Tehtävä -, jokerit tarvittaessa (2 min) - Loppukoonti ja ryhmäarviointi ( min) Tunnin tavoitteet: - Analysoidaan ja pohditaan valmiiksi

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

(s 2 + 9)(s 2 + 2s + 5) ] + s + 1. s 2 + 2s + 5. Tästä saadaan tehtävälle ratkaisu käänteismuuntamalla takaisin aikatasoon:

(s 2 + 9)(s 2 + 2s + 5) ] + s + 1. s 2 + 2s + 5. Tästä saadaan tehtävälle ratkaisu käänteismuuntamalla takaisin aikatasoon: TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-2429 Systeemien Identifiointi 2 harjoituksen ratkaisut Yhtälö voitaisiin ratkaista suoraankin, mutta käytetään Laplace-muunnosta tehtävän ratkaisemisessa

Lisätiedot

Suora 1/5 Sisältö ESITIEDOT: vektori, koordinaatistot, piste

Suora 1/5 Sisältö ESITIEDOT: vektori, koordinaatistot, piste Suora 1/5 Sisältö KATSO MYÖS:, vektorialgebra, geometriset probleemat, taso Suora geometrisena peruskäsitteenä Pisteen ohella suora on geometrinen peruskäsite, jota varsinaisesti ei määritellä. Alkeisgeometriassa

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia 58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, 10..2014, vastauksia 1. [9 pistettä] (a) Todistetaan 2n 2 + n + 5 = O(n 2 ): Kun n 1 on 2n 2 + n + 5 2n 2 + n 2 +5n 2 = 8n 2. Eli

Lisätiedot

Geodeettisen laitoksen koordinaattimuunnospalvelu

Geodeettisen laitoksen koordinaattimuunnospalvelu Geodeettisen laitoksen koordinaattimuunnospalvelu Janne Kovanen Geodeettinen laitos 10.3.2010 Koordinaattimuunnospalvelusta lyhyesti Ilmainen palvelu on ollut tarjolla syksystä 2008 lähtien. Web-sovellus

Lisätiedot

10. Globaali valaistus

10. Globaali valaistus 10. Globaali valaistus Globaalilla eli kokonaisvalaistuksella tarkoitetaan tietokonegrafiikassa malleja, jotka renderöivät kuvaa laskien pisteestä x heijastuneen valon ottamalla huomioon kaiken tähän pisteeseen

Lisätiedot

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma:

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma: Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0 10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0 100 c. 50 100 3.

Lisätiedot

Aki Taanila LINEAARINEN OPTIMOINTI

Aki Taanila LINEAARINEN OPTIMOINTI Aki Taanila LINEAARINEN OPTIMOINTI 26.4.2011 JOHDANTO Tässä monisteessa esitetään lineaarisen optimoinnin alkeet. Moniste sisältää tarvittavat Excel ohjeet. Viimeisin versio tästä monisteesta ja siihen

Lisätiedot

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

3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö 3.3 Paraabeli toisen asteen polynomifunktion kuvaajana. Toisen asteen epäyhtälö Yhtälön (tai funktion) y = a + b + c, missä a 0, kuvaaja ei ole suora, mutta ei ole yhtälökään ensimmäistä astetta. Funktioiden

Lisätiedot

4. Käyrän lokaaleja ominaisuuksia

4. Käyrän lokaaleja ominaisuuksia 23 VEKTORIANALYYSI Luento 3 4 Käyrän lokaaleja ominaisuuksia Käyrän tangentti Tarkastellaan parametrisoitua käyrää r( t ) Parametrilla t ei tarvitse olla mitään fysikaalista merkitystä, mutta seuraavassa

Lisätiedot

Ympyrän yhtälö

Ympyrän yhtälö Ympyrän yhtälö ANALYYTTINEN GEOMETRIA MAA4 On melko selvää, että origokeskisen ja r-säteisen ympyrän yhtälö voidaan esittää muodossa x 2 + y 2 = r 2. Vastaavalla tavalla muodostetaan ympyrän yhtälö, jonka

Lisätiedot

Dihedraalinen ryhmä Pro gradu Elisa Sonntag Matemaattisten tieteiden laitos Oulun yliopisto 2013

Dihedraalinen ryhmä Pro gradu Elisa Sonntag Matemaattisten tieteiden laitos Oulun yliopisto 2013 Dihedraalinen ryhmä Pro gradu Elisa Sonntag Matemaattisten tieteiden laitos Oulun yliopisto 2013 Sisältö Johdanto 2 1 Ryhmä 3 2 Symmetrinen ryhmä 6 3 Symmetriaryhmä 10 4 Dihedraalinen ryhmä 19 Lähdeluettelo

Lisätiedot

4 Tehokkuus ja algoritmien suunnittelu

4 Tehokkuus ja algoritmien suunnittelu TIE-20100 Tietorakenteet ja algoritmit 52 4 Tehokkuus ja algoritmien suunnittelu Tässä luvussa pohditaan tehokkuuden käsitettä ja esitellään kurssilla käytetty kertaluokkanotaatio, jolla kuvataan algoritmin

Lisätiedot

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

c) 22a 21b x + a 2 3a x 1 = a, Tehtäviä on kahdella sivulla; kuusi ensimmäistä tehtävää on monivalintatehtäviä, joissa on 0 4 oikeata vastausta. 1. Lukion A ja lukion B oppilasmäärien suhde oli a/b vuoden 2017 lopussa. Vuoden 2017 aikana

Lisätiedot

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä

4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä JYVÄSKYLÄN YLIOPISTO 4. Luennon sisältö Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä kevät 2012 TIEA382 Lineaarinen ja diskreetti optimointi Lineaarinen optimointitehtävä Minimointitehtävä

Lisätiedot

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45 MS-A0003/A0005 Matriisilaskenta Laskuharjoitus / vko 5 Tehtävä 1 (L): Hahmottele kompleksitasoon ne pisteet, jotka toteuttavat a) z 3 =, b) z + 3 i < 3, c) 1/z >. Yleisesti: ehto z = R, z C muodostaa kompleksitasoon

Lisätiedot

RYHMÄKERROIN ÄÄNILÄHDERYHMÄN SUUNTAAVUUDEN

RYHMÄKERROIN ÄÄNILÄHDERYHMÄN SUUNTAAVUUDEN ÄÄNILÄHDERYHMÄN SUUNTAAVUUDEN ARVIOINNISSA Seppo Uosukainen, Jukka Tanttari, Heikki Isomoisio, Esa Nousiainen, Ville Veijanen, Virpi Hankaniemi VTT PL, 44 VTT etunimi.sukunimi@vtt.fi Wärtsilä Finland Oy

Lisätiedot

Kombinatorinen optimointi

Kombinatorinen optimointi Kombinatorinen optimointi Sallittujen pisteiden lukumäärä on äärellinen Periaatteessa ratkaisu löydetään käymällä läpi kaikki pisteet Käytännössä lukumäärä on niin suuri, että tämä on mahdotonta Usein

Lisätiedot

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

Lisätiedot

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016 Osakesalkun optimointi Anni Halkola Turun yliopisto 2016 Artikkeli Gleb Beliakov & Adil Bagirov (2006) Non-smooth optimization methods for computation of the Conditional Value-at-risk and portfolio optimization.

Lisätiedot

Oletetaan ensin, että tangenttitaso on olemassa. Nyt pinnalla S on koordinaattiesitys ψ, jolle pätee että kaikilla x V U

Oletetaan ensin, että tangenttitaso on olemassa. Nyt pinnalla S on koordinaattiesitys ψ, jolle pätee että kaikilla x V U HY / Matematiikan ja tilastotieteen laitos Vektorianalyysi II, syksy 018 Harjoitus 4 Ratkaisuehdotukset Tehtävä 1. Olkoon U R avoin joukko ja ϕ = (ϕ 1, ϕ, ϕ 3 ) : U R 3 kaksiulotteisen C 1 -alkeispinnan

Lisätiedot

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2 Johdatus diskreettiin matematiikkaan Harjoitus 4, 7.10.2015 1. Olkoot c 0, c 1 R siten, että polynomilla r 2 c 1 r c 0 on kaksinkertainen juuri. Määritä rekursioyhtälön x n+2 = c 1 x n+1 + c 0 x n, n N,

Lisätiedot

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö Johdatus diskreettiin matematiikkaan Harjoitus 5, 14.10.2015 1. Ratkaise rekursioyhtälö x n+4 2x n+2 + x n 16( 1) n, n N, alkuarvoilla x 1 2, x 2 14, x 3 18 ja x 4 42. Ratkaisu. Vastaavan homogeenisen

Lisätiedot

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa. Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }? Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa. Vastaus 2. Vertaillaan

Lisätiedot

b 1. b m ) + ( 2b Ax) + (b b)

b 1. b m ) + ( 2b Ax) + (b b) TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-9 Optimointioppi Kimmo Berg 5 harjoitus - ratkaisut min Ax b (vertaa PNS-tehtävät) a x + + a n x n a) Ax b = a m x + + a mn x n = x a a m }{{}

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 6 varuusintegraali iemmin laskimme yksiulotteisia integraaleja b a f (x)dx, jossa integrointialue on x-akselin väli [a, b]. Lisäksi laskimme kaksiulotteisia integraaleja

Lisätiedot

2 Pistejoukko koordinaatistossa

2 Pistejoukko koordinaatistossa Pistejoukko koordinaatistossa Ennakkotehtävät 1. a) Esimerkiksi: b) Pisteet sijaitsevat pystysuoralla suoralla, joka leikkaa x-akselin kohdassa x =. c) Yhtälö on x =. d) Sijoitetaan joitain ehdon toteuttavia

Lisätiedot

Osakesalkun optimointi

Osakesalkun optimointi Osakesalkun optimointi Anni Halkola Epäsileä optimointi Turun yliopisto Huhtikuu 2016 Sisältö 1 Johdanto 1 2 Taustatietoja 2 3 Laskumetodit 3 3.1 Optimointiongelmat........................ 4 4 Epäsileän

Lisätiedot

6.5. Renderöintijärjestys

6.5. Renderöintijärjestys 6.5. Renderöintijärjestys Näkymän käsittelyjärjestyksiä on kahta tyyppiä. Ensimmäinen on monikulmioittainen käsittely, jossa kukin monikulmio prosessoidaan vuorollaan välittämättä muista. Toinen on selaussuorajärjestys,

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-.34 Lineaarinen ohjelmointi 9..7 Luento Kokonaislukuoptimoinnin algoritmeja (kirja.-.) Lineaarinen ohjelmointi - Syksy 7 / Luentorunko Gomoryn leikkaava taso Branch & Bound Branch & Cut Muita menetelmiä

Lisätiedot

Tehtävien ratkaisut

Tehtävien ratkaisut Tehtävien 1948 1957 ratkaisut 1948 Kun juna matkaa AB kulkiessaan pysähtyy väliasemilla, kuluu matkaan 10 % enemmän aikaa kuin jos se kulkisi pysähtymättä. Kuinka monta % olisi nopeutta lisättävä, jotta

Lisätiedot

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki Duaalisuus kokonaislukuoptimoinnissa Mat-2.4191, Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki Sisältö Duaalisuus binäärisissä optimointitehtävissä Lagrangen duaalisuus Lagrangen

Lisätiedot