300 likes | 517 Views
Vizualizavimo Algoritmin ė Seka. Vizualizavimo Sistemos. Paruošė: IG-08 grupės studentas Andrius Mikalajūnas. Duomenys. Paruošimas. Paruošti Duomenys. Branduolys. Geometrija. Atvaizdavimas. Atvaizdis. Vizualizavimo algoritminė seka. Duomenų ir metaduomenų ruošimas:
E N D
Vizualizavimo Algoritminė Seka Vizualizavimo Sistemos Paruošė: IG-08 grupės studentas Andrius Mikalajūnas
Duomenys Paruošimas Paruošti Duomenys Branduolys Geometrija Atvaizdavimas Atvaizdis Vizualizavimo algoritminė seka Duomenų ir metaduomenų ruošimas: • Pašalinti nereikalingus, • Apskaičiuoti išvestinius dydžius, • Interpoliacija (pjūviai), • Feature Extraction. Branduolys (Mapping): • Duomenys paverčiami geometrija, • VRML yra pripažintas geometrijos formatas, • X3D išplėstos VRML galimybės, • Branduolys dažnai sujungiamas su atvaizdavimu. Atvaizdavimas: • Efektyviausiai atliekamas žemo lygio atvaizdavimo programine įranga, • Stipriai susijęs su aparatine įranga, • Patogiau atlikti su aukštesnio lygio programine įrangą.
Duomenų gavyba • Duomenų formatas. • Duomenų kompresija. • Matavimai. • Skaičiavimai.
Duomenų paruošimas Duomenų praturtinimas (enrichment): • Išvestiniai dydžiai, • Interpoliacija, • Projekcijos iš 3D į 2D, • Filtravimas ir glodinimas, • Viršūnių normalių generavimas,
Vizualizavimo branduolys (Mapping) Duomenys paverčiami 2D ar 3D geometriniais objektais, kurių forma, spalva, dydis ar kiti atributai vaizdžiai nusako pirminius duomenis: • Duomenų elementai: lapo plotis, lapo ilgis, lapo tipas, lapo amžius (4). • Vaizdiniai primityvai: x pozicija, y pozicija, simbolio dydis, simbolio tipas (4). • Galimi 24 vizualizavimovariantai. • Turimnduomenų elementų ir m vaizdinių primityvų: • Jei n>m, tai:n!/(n-m)!
Koncepcijos (Mapping) Iš apačios į viršų: • Iš vaizdinių primityvų generuojam atvaizdį, • Tikrinam ar tenkina apribojimus! • Generuojam ir testuoja. Iš viršaus į apačią: • Panaudojam kelias sudėtingas technologijas • Parenkam geriausiai tinkančią technologiją. • Vaizdinė reprezentacija gali būti parinkta iš sėkmingų atvaizdžių DB (code based reasoning).
Apribojimai ir reikalavimai Duomenų charakteristikos. Srities charakteristikos. Kompiuterio galimybės: • Išvesties ir įvesties įtaisai, • RAM kiekis ar procesoriaus greitis, • Programinė įranga. Programa “Viewer”: • Sąveika su vartotoju. Efektyvumas: • Vaizduojama informacija tiksliai atitinka vizualizavimo tikslus. Išraiškingumas: • Vaizduojama visa reikalinga informacija ir ne daugiau.
Sisteminės strategijos Geriausia vizualizacija arba reprezentacija bandoma sukurti automatiškai. Knowledge-based systems, dirbtinio intelekto elementai. Pavyzdžiai: • Mackinlay (APT), • Roth and Mattis (SAGE), • Casner (BOZ), • Senay and Ignatius (VISTA), • Robertson (NSP), • Wehrend and Lewis (Catalog of Visualizations), • Beshers and Feiner (AutoVisual).
Geometrija Savo geometrijos formatą turi kiekvienas grafikos paketas. VRML (Virtual Reality Modeling Language): • VRML 1.0 – OpenInventor vidinis formatas + WEB, • VRML 2.0 – Interaktyvumas, animacija ir t.t. • VRML – tekstinis failo formatas, kuriuo galima aprašyti: • Geometriją ir spalvą, tekstūrą, permatomumą ir t.t. • Animaciją, apšvietimą, garsą, scenarijus ir t.t. X3D geometrijos formatas parašytas XML kalba: • Pagrįstas VRML, • Turi kelias naujesnes savybes, • NURBS, HumanoidAnimation.
Geometrija VRML pavyzdys:
Geometrija X3D pavyzdys:
Atvaizdavimas (Rendering) 2D/3D objektai paverčiami 2D atvaizdžiu. Reikalingi atvaizdavimo parametrai: • šviesos, • šešėliai, • atspindžiai. Prireikus naudojamos specialios technologijos: • Volume Rendering.
Atvaizdis Kaip nusakomas atvaizdis? • taškų “pixels” masyve: p[x,y], Kur saugoma atvaizdžio informacija? • Frame buferyje. Keliais bitais nusakomas vienas pixelis? • 8 (Indexed-Color) • 15 (High-Color) • 24 (True-Color) • 32 (?), • 48 (?), • 96 (?).
Dinamika ir Interaktyvumas • Pastovus duomenų apdorojimas. • Geometrijos modelio tobulinimas, patikslinimas. • Interaktyvus valdymas: posūkiai, postūmiai, zoom’as.
Duomenys ir Analizė • Duomenų kiekio augimas:
DataSet1 DataSet2 Source1 Source2 Filter1 Filter2 Filter2 Filter3 Mapper1 Mapper2 Renderer1 Renderer2 Algoritminės sekos Atskiros vizualizavimo algoritminės sekos: • Tinka iš anksto apibrėžtoms užduotims vykdyti, • Dažniausiai labai specializuotos (pritaikytos uždaviniui), • Lengva naudoti (patinka pradedantiesiems), • Pakankamai lengva sukurti, • Geras pagrindas vizualizavimo įrankiams kurti, • Kiekvienam naujam uždaviniui reikia naujos sekos(programuotojųdarbo)!
Mapper1 Renderer1 Filter1 DataSet1 Universal Source Filter2 Filter4 Mapper2 Renderer2 DataSet2 Filter3 Mapper3 Algoritminės sekos Vizualizavimo algoritminių sekų tinklai: • Gali būti labai universaliais, • Naudotojai privalo turėti vizualiZavimo pagrindus,, • Sunku sukurti,, • Sudaro pagrindą vizualizavimo sistemoms, • Nauji uždaviniai nereikalauja daug programuotojo pastangų!
DataSet1 DataSet DataSet1 Filter Filter1 Filter1 DataSet1 DataSet1 DataSet DataSet2 DataSet2 Filter2 Filter2 DataSet3 DataSet3 Algoritminių sekų jungtys Vieno universalaus duomenų tipo sistemos: • Paprastas ir elegantiškas principas, • Labai nelankstus, pasekmėje kenčia efektyvumas, • Dalis filtrų dirba su specifiniais duomenų tipais (pvz. struktūriniais). Kelių duomenų tipų sistemos: • Galima sujungti modulius, kurių išvesties-įvesties tipai sutampa. • Jungiant modulius, reikia tikrinti duomenų tipus! • Labai daug duomenų tipų sistemomis sunku naudotis.
Algoritminės sekos jungtys Duomenų tipų tikrinimas: • Tipų tikrinimas gali būti atliktas: • Kompiliavimo metu, • Jungimo metu, • Vykdymo metu. • Reikalauja tipų konverterių. • Net ir tikrinant, sunku garantuoti korektišką įvesties duomenų tipą, • Daugkartinė tipų konversija yra neefektyvi tiek atminties, tiek ir greičio prasme.
Algoritminės sekos jungtys Vienaišvestis: • 1 output => 1 modulis. Vėduoklės išvestis keli moduliai skaito vieną (tą pačią) išvestį: • 1 output => N modulių, • Skirtingai vizualizuojam tuos pačius duomenis. Daugialypė išvestis skirtingas išvestis skaito skirtingi moduliai: • Noutput => N modulių, • Lygiagretus didelių duomenų kiekių vizualizavimas.
Ciklinės sekos Dažniausiai vizualizavimo sekose nėra ciklų: • Kryptingi grafai be ciklų (directed acyclic graps), Taikoma tiesinio integravimo moduliuose(srovės linijos): • Pradinis taškas x0, • Randamas v0, • Apskaičiuojamas xi+1, • Reikianaujovi+1.
Sąlyginės sekos Sekos vykdymas priklauso nuo sąlygos rezultato. • Priklausomai nuo skaliaro reikšmių intervalo, taikomi skirtingas spalvų kodavimo lenteles. • Lengva realizuoti struktūrinėmis programavimo kalbomis, • Sunkiau MVE (pagrįstos visual programming).
Sekų vykdymas Poreikio valdomas vykdymas (demand-driven execution): • Seka vykdoma tik tada, kai reikia išvesties, • D parametrai pasikeitė – E išvestis pareikalauta – vykdoma D-E, • Optimizuoja skaičiavimus (atlieka tik reikalingus). Įvykių valdomas vykdymas (event-driven execution): • Seka vykdoma, kai įvyksta pokyčiai, • D parametrai pasikeitė – pervykdomi D, E, F • Seka beveik visada įvykdyta.
Sekų vykdymo valdymas Išreikštinis vykdymas (explicite execution): • Tiesiogiai sekami pokyčiai, tiesiogiai kontroliuojamas modulių vykdymas, priklausomas nuo išreikštinės priklausomybių analizės rezultatų, • Tinklo valdymą kontroliuoja centrinis vykdytojas (Executive), • D pakeistas – vykdytojas atlieka priklausomybių analizę – vykdomi D, E, F. • Gali būti tiek poreikio tiek ir įvykių valdomas, • Taikomas daugelyje komercinių MVE: AVS, Iris Explorer, IBM Data Visualization Explorer.
Sekų vykdymo valdymas Išreikštinio vykdymo privalumai: • Kiekvieną kartą prireikus išvesties, galima sukonstruoti priklausomybių grafą ir atlikti analizę, • Visi sinchronizavimo analizės ir Update() metodai priklauso vienam moduliui, • Svarbu skaidant tinklą ir skirstant jį procesoriams lygiagrečiam vykdymui, Išreikštinio vykdymo trūkumai: • Kiekvienas modulis tiesiogiai priklauso nuo vykdytojo, • Sunku kontroliuoti sąlyginių sekų vykdymą, • Galimos problemos su lygiagretinimu (scalability),
Sekų vykdymo valdymas Neišreikštinis valdymas: • Modulis vykdomas, jei jo įvestis arba parametrai pasikeitė (modification time), • Realizuojamas dviem perbėgimais (atgal ir pirmyn), • A pasikeičia – E išvestis pareikalaujama – E-D-B-A nustatoma priklausomybė – A-B-D-E vykdoma seka. • Dažniausiai valdomas poreikio, bet gali būti valdomas ir įvykių, jei po kiekvieno įvykio reikalaujama išvestis. • Pagrindinis pranašumas: paprastumas ir lokalumas, • Trūkumas: sunku realizuoti lygiagretų skaidymą ar sudėtingas vykdymo strategijas.
Atminties modeliai Statinis modelis: • Atmintis išskiriama visam laikui, saugomi tarpiniai rezultatai, • Vykdomas A, vykdomas B, vykdomas C, vykdomas D. • Trumpiausias skaičiavimų laikas – reikia daugiausia atminties. Dinaminis modelis: • Tarpiniai rezultatai trinami, • Vykdomas A, vykdomas B, trinama A atmintis, vykdomas C, trinama B atmintis vykdomas A, vykdomas B, trinama A atmintis, vykdomas D, trinama B atmintis, trinama D atmintis. • Minimalus atminties poreikis – ilgiausias skaičiavimų laikas.
Atminties modeliai Statinis modelis: • Geriausiai tinka nedidelėms kintančioms tinklo dalims vykdyti, kai kompiuteris turi pakankamai RAM, Dinaminis modelis: • Geriausiai tinka dideliems duomenų srautams vizualizuoti, • Svarbu atlikti priklausomybių analizę! Optimalus dinaminis modelis: • Vykdomas A, vykdomas B, trinama A atmintis, vykdomas C, vykdomas D, trinama B atmintis, trinama C atmintis, trinama D atmintis.
Duomenų srauto koncepcija Struktūrinė duomenų srauto koncepcija: • Kiekvienas procesas saugo savo duomenų kopiją, • Pasiteisina, kai duomenis tenka stipriai pakeisti, • Garantuoja visišką nepriklausomybę nuo kitų procesų, • Reikalauja labai daug atminties.
Duomenų srauto koncepcija Nuorodos į objektus pakeitė daugkartinį saugojimą: • Reference Counting pagrįsta OOP, • Vidiniuose objektuose saugomos tik nuorodos, • Duomenys saugomi centralizuotai, • Taupoma atmintis!