290 likes | 619 Views
V TK vidinis duomenų formatas. Vizualizavimo Sistemos. Paruošė: IG-08 grupės studentas Andrius Mikalajūnas. VTK: VTK duomenų f ormatai. VTK turi du formatus: Pradinis VTK formatas (legacy) : ASCII – paprasčiausias tekstas, tinkantis nedideliems failams.
E N D
VTK vidinisduomenųformatas Vizualizavimo Sistemos Paruošė: IG-08 grupės studentas Andrius Mikalajūnas
VTK: VTK duomenų formatai VTK turidu formatus: • PradinisVTK formatas(legacy): • ASCII – paprasčiausias tekstas, tinkantis nedideliems failams. • Binarinis – palaikomas įvairiose platformose, kol tinkama baitų tvarka ir tipų ilgiai sutampa. • XML pagrįstasVTK formatas palaiko: • Lygiagrečius skaičiavimus, • Suspaudimą, • Binarinį kodavimą (Portable binary encoding), • Kiekvienas dataset tipas turi savo išplėtimą, • Palaikomi duomenų gabalai (pieces).
VTK: VTK duomenų failas *.vtk VTK duomenų failas susideda iš 5 dalių: • Duomenų failo versija /1 eilutė/, • 256 simbolių headeris, besibaigiantis \n simboliu /1 eilute/, • Failo formatas: ASCII arba BINARY raktažodis /1 eilutė/, • DATASET struktūra geometrijai/topologijai apibrėžti: • Tipas /1 eilutė/ • Kiti raktažodžiai, priklausomi nuo Dataset struktūros tipo. • Duomenys /daug daug eilučių, nors teoriškai jos ir nebūtinos/: • POINT_DATA n, • CELL_DATA m, • Atributai ...
VTK: Failo formatas DATASET type variantai: • STRUCTURED_POINTS • STRUCTURED_GRID. • RECTILINEAR_GRID, • UNSTRUCTURED_GRID, • POLYDATA, • FIELD – bendras VTK duomenų objektas arba vtkFieldData naudojamas vidinei reprezentacijai.
VTK:Dataset tipai • vtkSructuredData – aprašo strukturizuotus duomenis. • vtkStructuredGrid būtinai reikia visos informacijos apie mazgus, todėl jis išvedamas iš vtkPointSet.
VTK:Dataset tipai Nestruktūriniai mazgai tvarkomi klasėmis: • vtkPolyData – daugiakampių duomenys (kaip OpenGL), • vtkUnstructuredGrid – nestruktūriniai tinklai iš įvairių elementų, • “Unstructured points” klasės nėra, jie tvarkomi su vtkPolyData.
VTK: Reguliarus tinklas Reguliarus/tolygus tinklas: • Dimensijos • Pradinis taškas. • Atstumai tarp taškų (trims koordinačių ašims),
VTK: Tiesialinijinis tinklas Struktūrinis/netolygus tinklas: • Dimensijos • Koordinačių eilutės kiekvienai dimensijai.
VTK: Kreivalinijinis tinklas Struktūrinis/kreivalinijinis tinklas: • Dimensijos • Taškų kiekis ir tipas. • Taškų koordinatės 3D.
VTK: Daugiakampių formatas KG primityvai (daugiakampiai): • POINTS (Taškai) – koordinatės, • VERTICES (Viršūnės) – indeksai, • LINES (Linijos) – indeksai, • POLYGONS – indeksai, • TRIANGE_STRIPS (trikampių juostos) – indeksai. Size – viso sąrašo dydis: • Įskaitant numPoints.
VTK: Nestruktūriniai tinklai Nestruktūriniai tinklai: • Taškai – koordinatės, • Elementai – indeksai, • Celių tipai – apibrėžti indeksai.
VTK:1D ir 2D elementai • VTK naudoja duomenų srauto koncepciją, kurios pagrindą sudaro: • vtkDataObject – bendriausias duomenų objektas, • vtkProcessObject – taip vadinami filtrai, dirba su duomenų objektais, kurdami naujus duomenų objektus.
VTK: Atributų formatas Atributai: • Priskiriami mazgams (POINT_DATA) arba elementam (CELL_DATA), • Standartiniai palaikomų atributų tipai, • LOOKUP_TABLE – vartotojo spalvų paletė vizualizacijai(RGBA, 4 reikšmės), • FIELD – bendras duomenų objektas arba duomenų laukas vtkFieldData.
VTK: Atributų formatas • Atributas SCALARS gali talpinti ne tik reikšmes, bet ir spalvas, t.y. skaliarines reikšmes vizualizavimo procese paverstas spalvomis. • Tam naudojamas atributas COLOR_SCALARS.
VTK:Atributai VTK palaikomi atributai (tiek taškams, tiek elementams): • Scalar – nuo 1 iki 4 skaliarų, • Normal – vienetinio ilgio vektorius, • Vector – nestruktūriniai tinklai iš įvairių elementų,
VTK:Atributai VTK palaikomi atributai (tiek taškams, tiek elementams): • Tensor – 3x3 tenzorius, • Texture coordinate – 2D ar 3D indeksai į tekstūros žemėlapį, • Field Data – vtkFieldData sudarytas iš vtkDataArray vienmačio masyvo, kur kiekvienas narys gali būti skirtingo tipo.
VTK: Pavyzdys I Tolyginis struktūrinis tinklas: • Koordinatės apibrėžtos neišreikštiniu būdu. • Mazguose apibrėžti skaliariniai atributai.
VTK: Pavyzdys II Kubas apibrėžtas daugiakampiais: • 8 mazgai, • 6 keturkampiai, • Spalvų lentelė (sienų), • Normalės (sienų), • Lauko duomenys (sienų), • Skaliarai (mazgų), • Spalvų lentelė skaliarams (mazgų).
VTK: Pavyzdys III Nestruktūrinis tinklas: • 11 elementų, • Visi skirtingų tipų • Skaliarinis atributas mazguose, • Vektorinis atributas mazguose.
VTK: Pastabos • Raktažodžiai rašomi ASCII formatu, nors duomenys gali būti įrašyti ir BINARY formatu. • Binariniai duomenis įterpiami iškart po \n simbolio, sekančio raktažodį. • dataType yra vienas iš standartinių tipų: • bit, unsigned_char, char, • unsigned_short, short, unsigned_int, int, unsigned_long, long, • float, double. • Indeksai prasideda nuo nulio! • Indeksai ir celių tipai yra int tipo. • Geometrijos/topologijos apibrėžimas turi eiti prieš atributų apibrėžimą. • Atributų skaičius apibrėžtas atributų dalyje turi tiksliai sutapti su mazgų/elementų skaičiumi, apibrėžtu geometrijos/topologijos dalyje.
VTK: XML duomenų formatai XML formate kiekvienas dataset tipas turi savo išplėtimą: • Nuoseklūs XML formatai: • ImageData (*.vti) –vtkImageData atvaizdžiams (tolygiems struktūriniams tinklams), • RectilinearGrid (*.vtr) – vtkRectilinearGrid tiesialinijiniams struktūriniams tinklams, • StructuredGrid (*.vts) – vtkStructuredGrid kreivalinijiniams struktūriniams tinklams, • PolyData (*.vtp) – vtkPolyData daugiakampiams (nestruktūriniams duomenims), • UnstructuredGrid (*.vtu) – vtkUnstructuredGrid nestruktūriniams tinklams. • Lygiagretūs XML formatai: • PImageData (*.pvti) – vtkImageData atvaizdžiams (tolygiems struktūriniams tinklams), • PRectilinearGrid (*.pvtr) – vtkRectilinearGrid tiesialinijiniams struktūriniams tinklams, • PStructuredGrid (*.pvts) – vtkStructuredGrid kreivalinijiniams struktūriniams tinklams, • PPolyData (*.pvtp) – vtkPolyData daugiakampiams (nestruktūriniams duomenims), • PUnstructuredGrid (*.pvtu) – vtkUnstructuredGrid nestruktūriniams tinklams.
VTK: XML duomenų formatai Nuoseklūs XML formato failai talpina duomenys savyje, Duomenys gali būti sudaryti iš kelių gabalų (pieces), kiekvienas jų apibrėžia savo geometriją ir topologiją. • StructuredGrid pavyzdys: • WholeExtent – viso tinklo apibrėžimo sritis, • Extent – tinklo gabalo apibrėžimo sritis, • PointData – duomenys mazguose, • CellData – duomenys elementuose, • Points – mazgų koordinatės, • Cells apibrėžti nereikia, nes struktūriniams tinklams jie apibrėžiami neišreikštiniu būdu.
VTK: XML duomenų formatai • Duomenys mazguose (elementuose) apibrėžiami raktažodžiais PointData (CellData) , • VTK palaiko atributų varijantus. • Scalars – skaliarams apibrėžti, • Vektors – vektoriams apibrėžti, • Tensors – tenzoriams apibrėžti, • Normals – normalėms apibrėžti, • TCoords – tekstūros koordinatėms apibrėžti.
VTK: XML duomenų formatai Duomenys mazguose (elementuose) apibrėžiami raktažodžiais PointData (CellData), Duomenys nusakomi DataArray elementu, kurių skaičius nėra ribojamas. • StructuredGrid pavyzdys: • WholeExtent – viso tinklo apibrėžimo sritis, • Extent – tinklo gabalo apibrėžimo sritis, • PointData – duomenys mazguose, • CellData – duomenys elementuose, • Points – mazgų koordinatės, • Cells apibrėžti nereikia, nes struktūriniams tinklams jie apibrėžiami neišreikštiniu būdu.