320 likes | 903 Views
Skaliariniai Algoritmai. Vizualizavimo Sistemos. Paruošė: IG-08 grupės studentas Andrius Mikalajūnas. Temos. Klasifikacija Skaliariniai algoritmai: Spalvų žemėlapiai, Izolinijos ir izopaviršiai, Kontūro brėžimo algoritmas, 2D žygiuojantys kvadratai, 3D žygiuojantys kubai.
E N D
Skaliariniai Algoritmai Vizualizavimo Sistemos Paruošė: IG-08 grupės studentas Andrius Mikalajūnas
Temos Klasifikacija Skaliariniai algoritmai: • Spalvų žemėlapiai, • Izolinijos ir izopaviršiai, • Kontūro brėžimo algoritmas, • 2D žygiuojantys kvadratai, • 3D žygiuojantys kubai. • Skaliarų generavimas, • Sluoksnio iškėlimas.
Algoritmai: Klasifikacija Vizualizacijospagrindąsudaroalgoritmai, kurieįvairiaitransformuojapradiniųduomenų representaciją: • Įvesties duomenys – viena reprezentacija, • Transformacija (apdorojimas), • Išvesties duomenys – kita reprezentacija. Dažniausiai algoritmai transformuoja duomenų: • struktūrą, t.y. keičia topologiją arba geometriją, • tipą, t.y. keičia atributus. Dalinai atsiribojima nuo atvaizdavimo, kuriuo užsiima kompiuterinė grafika, o koncentruojamasi ties: • Filtracija, • Mappingu.
Algoritmai: Klasifikacija Struktūrosalgoritmų klasifikacija: • Geometrinės – keičia geometriją (taškų padėtį), bet nekeičia topologijos (jungčių tarp taškų, t.y. elementų), • Topologinės – nekeičia geometrijos (taškų padėties), bet keičia topologiją (vtkPolyData -> vtkUnstructuredMesh), • Atributų – vienus atributus verčia kitais, arba generuoja naujus (išvestinius) atributus, • Mišrios – keičia atribuyus it geometriją arba topologiją (pvz. izolinijos arba izopaviršiai)
Algoritmai: Klasifikacija • Tipoalgoritmų klasifikacija: • Skaliariniai – vizualizuoja skaliarinius duomenis, • Vektoriniai – vizualizuoja vektorinius duomenis, • Tenzoriniai – vizualizuoja tenzorinius duomenis, • Modeliavimo – atlieka mišrias operacijas, kurios reikalingos arba būdingos kelioms sritims (pvz. skaliariniams ir tenzoriniams algoritmams). Dažnai susiję su topologijos, geometrijos, normalių ar tekstūrų generavimu.
Algoritmai: Skaliariniai Skaliaras – viena reikšmė susieta su: • Mazgu, • Elementu. Populiariausi skaliariniai algoritmai: • Spalvų žemėlapiai(Color Mapping) , • Izolinijos ar izopaviršiai(Contouring) , • Skaliarų generavimas (carpet plots, elevation).
Algoritmai: Skaliariniai Spalvų žemėlapiai skaliarus paverčia spalvomis, Tam tikslui naudoja: • Paieškos lenteles (lookup tables) – diskretus variantas, • Transformacijos funkcijas (transfer funkcijas) – tolydus variantas.
Skaliariniai algoritmai: Lookup table Apskaičiuojamas skaliaro si indeksas i į spalvų paieškos lentelę, Įvertinamos maksimali ir minimali vaizduojamos reikšmės: • Skaliarinės reikšmės, nepatenkančios į šį intervalą vaizduojamos rgb0 arba rgbn-1 spalvomis. Spalvų paieškos lentelės gali būti netiesinėmis.
Skaliariniai algoritmai: Funkcijos • Vietoj diskrečios lentelės galima naudoti tolydžias transformacijos funkcijas, • F(skaliaras) = intensyvumas • Universalesnė, bet mažiau efektyvus būdas.
Skaliariniai algoritmai: Spalvų lentelės Spalvų paieškos lentelės gali būti labai įvairios. Naudojami standartiniai variantai: • Pilka (nuo baltos iki juodos), • Vaivorykštės (nuo raudonos iki mėlynos). Lentelę reikia priderinti prie vizualizavimo poreikių.
Skaliariniai algoritmai: Spalvų lentelės Pilka lentelė • Tolydūs perėjimai, • Mažas kontrastas. Mėlyna – raudona: • Sunku atskirti “hue” atspalvius. Raudona – mėlyna: • Gražu, • Kodėl maximumai rodomi žalia spalva? Speciali lentelė perėjimams išryškinti: • Puiku, • Daug chaoso.
Skaliariniai algoritmai: Izolinijos • Izolinijos – linijos vaizduojančios nurodytą skaliaro reikšmę. • Padeda atskirti skirtingų reikšmių zonas, kai spalvos liejasi. • Užtikrina didesnį tikslumą, nes jų galima daugiau ir tankiau pripiešti.
Skaliariniai algoritmai: Izolinijos • Contouring - tradicinis izolinijų braižymas interpoliacijos pagrindu.
Skaliariniai algoritmai: Izolinijos Standartinis algoritmas • Pasirenkama izolinijos reikšmė, • Interpoliuojama pasirinkto elemento kraštuose (jungtyse), kad gauti tašką, kuriame skaliarinio lauko reikšmė lygi izolinijos reikšmei, • Randamas kitas kraštas ir izolinija tęsiama iki naujo gauto taško, • Algoritmas tęsiamas, kol izolinija užsidaro arba pasiekia srities kraštą. • Jeigu egzistuoja tik viena šios skaliaro reikšmės izolinija, tai darbas baigtas. • Jei ne, tai reikia patikrinti visus kraštus (jungtis), o tai labai brangu!
Skaliariniai algoritmai: 2D ŽK • Žygiuojančių kvadratų algoritmas efektyviai braižo izolinijas. • Naudojama topologinių būsenų lentelė: 24=16 • Izolinijos ir krašto sankirta skaičiuojama, kai ji tikrai egzistuoja.
Skaliariniai algoritmai: 2D ŽK Žygiuojančių kvadratų algoritmas • Pasirenkamas elementas, • Kiekvienoje elemento viršūnėje įvertinama vidaus/išorės būsena, • Viršūnės būsena (0/1) išsaugoma bitiniame indekse, • Remiantis keturių bitų (keturkampiui) indeksu į topologinių būsenų lentelę, nustatomas keturkampio ir izolinijos sankirtos pobūdis, • Keturkampio kraštuose atliekama interpoliacija ir brėžiamas izolinijos gabaliukas, • Specialiu metodu valomi “dvigubi” taškai.
Skaliariniai algoritmai: 2D ŽK • Dviprasmybė – kuris kontūras yra teisingas? • Teisingam pasirinkimui reikalinga globali informacija (kiti elementai). • Problema sutinkamas ir kontūravimo algoritme.
Skaliariniai algoritmai: 3D ŽK • Žygiuojančių kubų algoritmas yra žygiuojančių kvadratų algoritmo išplėtimas 3D erdvėje. • Labai panašus į žygiuojančių kvadratų algoritmą, • Tinka įvairiems elementų tipams (hexaedrams, tetraedrams), • Vietoj linijų, generuoja trikampius, • Papildomas žingsnis – generuoja kuriamo paviršiaus normales spalvinimo algoritmui.
Skaliariniai algoritmai: 3D ŽK Žygiuojančių kubų algoritmas • Pasirenkamas kubinis elementas, • Kiekvienoje elemento viršūnėje įvertinama vidaus/išorės būsena, • Viršūnės būsena (0/1) išsaugoma bitiniame indekse, • Iš topologinių būsenų lentelės gaunamas trikampių kraštų sąrašas, • Kubo kraštuose atliekama interpoliacija ir gaunamos trikampių viršūnės, • Generuojamos trikampių normalės.
Skaliariniai algoritmai: 3D ŽK 1 žingsnis – pasirenkame kubinį elementą: • Du pjūviai k ir k+1.
Skaliariniai algoritmai: 3D ŽK 2 žingsnis – klasifikuojame kiekvieną viršūnę: • Ar ji yra paviršiaus viduje, ar išorėje?
Skaliariniai algoritmai: 3D ŽK 3 žingsnis – sudarome aštuonių bitų (aštuonios viršūnės) indeksą: • teoriškai galimi 28=256 variantai
Skaliariniai algoritmai: 3D ŽK 4 žingsnis – pagal indeksą, lentelėje randame trikampių kraštų sąrašą: • išnaudojama simetrija, todėl gaunami 14 variantų (6 jų dviprasmiški).
Skaliariniai algoritmai: 3D ŽK 4 žingsnio pavyzdys – 4 atvejis: • pirma viršūnė pačiame dešiniajame bite.
Skaliariniai algoritmai: 3D ŽK 4 žingsnio pavyzdys – 9 atvejis: • Izopaviršiaus generavimui naudojami tik trikampiai.
Skaliariniai algoritmai: 3D ŽK 5 žingsnis – nustatome izopaviršiaus trikampių viršūnių koordinates: • Naudojame interpoliaciją (tiesinės interpoliacinės funkcijos).
Skaliariniai algoritmai: 3D ŽK 6 žingsnis – generuojame trikampio viršūnių normales spalvinimui: • Naudojame duomenų reikšmių gradientą, • Normales galima sugeneruoti kiekvienam trikampiui ir suvidurkinti tinklo taške, • duomenų gradiento metodo rezultatai yra tikslesni negu vidurkinimo tinkle.
Skaliariniai algoritmai: 3D ŽK • Pavyzdžiai:izopaviršius, vaizduojantis odą:
Skaliariniai algoritmai: 3D ŽK Pavyzdžiai: • 2D izolinijos X-spindulių intensyvumas smegenyse, • 3D kaukuolės izopaviršius, • 3D tėkmės tankio izopaviršius, • 3D elektronų potencialo izopaviršius.
Algoritmai: Skaliarų generavimas Duomenys gali būti netinkami tiesioginiam izopaviršių braižymui ar spalvų žemėlapių taikymui. Tokiais atvejais taikomi skaliarų generavimo algoritmai: • “ištraukiama” viena koordinatė, pvz. aukščių laukai (z koordinatė), • Skaliarinis laukas generuojamas pagal duotą krypties vektorių virš tam tikros plokštumos, naudojant normalizuotą skaliarinę sandaugą (vtkElevationFilter). Gautą skaliarinį lauką galima spalvinti pagal reikiamą lentelę.
Algoritmai: Skaliarų generavimas Havajų salos reljefo vizualizavimas: • Vandenynas mėlyna, • Kalnų viršūnės gelsva.
Algoritmai: Carpet plots Sluoksnio iškėlimas naudojamas skaliariniams laukams vaizduoti geometrijos (z koordinatės) pagalba: • Dažniausiai taikomas atvaizdžiams, • Tinka ir kitokiems duomenų tipams. 2D paviršius iškeliamas remiantis skaliarinio lauko reikšmėmis. Spalva galima vizualizuoti papildomą informaciją.