160 likes | 239 Views
Landslagsteiknun á rauntíma. Sjálfstætt verkefni á vorönn 2002 eftir Kára Halldórsson og Úlf Kristjánsson. 3D á rauntíma. 24+ rammar á sekúndu 40 ms eða minna til að teikna ramma Landslag getur innihaldið hundruð þúsunda eða milljónir marghyrninga.
E N D
Landslagsteiknun á rauntíma Sjálfstætt verkefni á vorönn 2002 eftir Kára Halldórsson og Úlf Kristjánsson
3D á rauntíma • 24+ rammar á sekúndu • 40 ms eða minna til að teikna ramma • Landslag getur innihaldið hundruð þúsunda eða milljónir marghyrninga. • Fyrir hvern punkt í marghyrningi þarf að skilgreina staðsetningu og stefnu, reikna lit út frá 1 eða fleiri ljósgjöfum o.fl. o.fl. áður en loks er ákvarðað hvað sést á skjánum og því varpað á hann.
3D á rauntíma • Ræður tölvan þín við þetta? • Þegar fjöldi marghyrninga er kominn yfir 100.000 ráða jafnvel öflugustu skjákort ekki við að teikna þá á undir 40 ms. • Hvað er þá gert? • Það verður augljóslega að fækka marghyrningunum, þ.e. einhverju verður að sleppa að teikna.
Hvað má missa sín? • 1. Það sem ekki sést! • Það sem “myndavélin” er ekki að horfa á í gefnum ramma á ekki að þurfa að eyða tíma í. • Þessa hluti þarf að losna við á “ódýran” hátt áður en dýrir útreikningar eru framkvæmdir.
Hvað má missa sín? • Smáatriði? Smáatriði sem ekki er tekið eftir. • Ef brekka er í 300 metra fjarlægð, hve mörgum þúfum tökum við eftir í henni? • Gott ef hægt er að miða nákvæmni við sjónarhorn. Teikna aðeins með mikilli nákvæmni það sem áhorfandinn veitir athygli.
Það sem ekki sést • Einföld lausn væri að athuga fyrir hvern marghyrning áður en kallað er á teikniföll fyrir hann hvort hann er innan sjónsviðs eða ekki. • Á þann hátt losnum við við eitthvað af dýrum útreikningum og notum ódýrari í staðinn en þurfum þó að framkvæma þessa útreikninga fyrir alla marghyrninga. • Til eru betri leiðir.
Ferundartré (e. Quadtree, QT) • Tré þar sem hver hnútur á 4 börn. • Látum hvern hnút tákna ferhyrnt svæði á hæðarhnitakorti. • Barn hnúts táknar eitt af 4 jafnstórum svæðum sem svæði hnútsins skiptist upp í • Öll 4 lauf hnúts saman tákna þannig allt svæði þess hnúts.
Ferundartré (e. Quadtree, QT) • Hnútar í QT og svæðin sem þeir skilgreina
Ferundartré (e. Quadtree, QT) • Tréð er notað þannig að byrjað er í rót og athugað hvort eitthvað af svæðinu sem hún skilgreinir sé innan sjónsviðs. • Ef svo er er það einnig athugað fyrir börn rótar. • Sé hnútur að hluta til eða í heild innan sjónsviðs er haldið áfram að ítra, annars er hætt.
Það sem ekki er tekið eftir • Hér þarf að taka ákvörðun um það hvað á að teikna með minni nákvæmni. • Þetta eru hlutir innan sjónsviðs þannig að þetta mun hafa áhrif á það sem sést. • Einnig þarf að ákveða hve fljótt nákvæmni á að tapast. • Velja og hafna – nákvæmni vs. hraði.
Nákvæmnistig(e. Level of Detail, LOD) • Aðferðir til að ákveða með hve mikilli nákvæmni skuli teikna svæði. • Í verkefninu er þetta metið eftir fjarlægð frá “myndavél”. • Skilgreindar mismunandi fjarlægðir og lágmarksnákvæmni sem hlutir skulu teiknaðir í innan þeirrar fjarlægðar. • Hlutir næst “manni” teiknaðir með fullri nákvæmni en nákvæmni minnkar eftir því sem fjær dregur. • Taka verður ákvörðun um nákvæmni hvers stigs og fjarlægð þess frá “myndavél”.
Nákvæmnistig(e. Level of Detail, LOD) • Hér er verið að teikna talsvert færri marghyrninga heldur en ef full nákvæmni væri notuð. • 1 marghyrningur í stað 64 í mestu fjarlægð og gætu verið fleiri enn fjær.
QT & LOD • Geysilega hentugt að beita aðferðunum saman. • Labba QT á sama hátt en hætta að ítra annaðhvort þegar svæði er utan sjónsviðs eða þegar nákvæmnin er nægjanleg miðað við fjarlægð svæðisins frá “myndavél”.
Takk fyrir! Kári Halldórsson