Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Del 3 "Visualization Pipeline"

Liknende presentasjoner


Presentasjon om: "Del 3 "Visualization Pipeline""— Utskrift av presentasjonen:

1 Del 3 "Visualization Pipeline"

2 Funksjonell (dataflyt-) modell
Transformasjon Konvertere data fra opprinnelig form til grafiske primitiver (typisk gjennom flere ledd) Representasjon (mer om dette i neste del!) 12/3-03 IN229 / V03 / Dag 7

3 Prosess- og data-objekter
= dataflyt prosess-objekter: source filter filter mapper data-objekter: data data data forenklet notasjon: source filter filter mapper 12/3-03 IN229 / V03 / Dag 7

4 Sammenkobling i praksis
source filter mapper GetOutput SetInput GetOutput SetInput GetInput GetInput GetSource GetSource data data data Kobling 2: x->SetInput(y->GetOutput()) Kobling 1: Et data-objekt opprettes som regel automatisk av "source" objektet. Merk: Et filter er en spesiell type "source"! 12/3-03 IN229 / V03 / Dag 7

5 Type-matching ? ? ? ? Eksempel:
vtkProcessObject vtkProcessObject vtkProcessObject vtkDataObject vtkSource vtkSource vtkMapper vtkDataSet vtkFilter ? ? ? ? S F M D Eksempel: Filter-typen vtkWarpScalar skal ha et data-objekt av typen vtkPointSet som input. Et data-objekt av typen vtkPolyData går også bra siden dette er en spesialisering av vtkPointSet! 12/3-03 IN229 / V03 / Dag 7

6 Eksekvering av "pipeline" (oppdatering av data-objekter)
C G A B D E Hvis D modifiseres ... F ... må denne delen av "pipeline" re-eksekveres (for å oppdatere E og F)! 12/3-03 IN229 / V03 / Dag 7

7 Med andre ord ... Hvis E må oppdateres ...
C G Hvis E må oppdateres ... A B D E F ... må evt. hele denne delen av "pipeline" re-eksekveres! 12/3-03 IN229 / V03 / Dag 7

8 Implisitt ("demand driven") synkronisering
Hvert prosess-objekt (vtkProcessObject) som kan ta "input" har en metode Update som kalles rekursivt bakover i "pipeline" for å oppdatere alt som har konsekvens for objektet selv. Hvert "source"-objekt (vtkSource) har en metode Execute som modifiserer (re-genererer) "output". Prosess- og data-objekter holder rede på når de sist ble modifisert og/eller utførte Execute. (Dermed utføres Execute aldri unødvendig!) Update kalles vanligvis automatisk hos mappere hver gang en scene må tegnes opp på nytt. Det er også mulig å kalle Update manuelt hos et vilkårlig objekt i en "pipeline"! 12/3-03 IN229 / V03 / Dag 7

9 Fil: POLYDATA uten attributt-data vtkPolyDataReader vtkPolyDataNormals
vtkPolyDataMapper 12/3-03 IN229 / V03 / Dag 7

10 Fil: POLYDATA uten attributt-data vtkPolyDataReader vtkPolyDataNormals
vtkElevationFilter vtkDataSetMapper 12/3-03 IN229 / V03 / Dag 7

11 Fordi ... vtkElevationFilter vtkElevationFilter GetOutput()
GetPolyDataOutput() vtkDataSetMapper vtkPolyDataMapper Alternativ vtkDataSet Fordi ... vtkMapper vtkDataSetMapper vtkPolyDataMapper vtkPolyData 12/3-03 IN229 / V03 / Dag 7

12 Fil: POLYDATA uten attributt-data vtkPolyDataReader vtkPolyDataNormals
vtkConeSource vtkElevationFilter vtkGlyph3D vtkDataSetMapper vtkPolyDataMapper 12/3-03 IN229 / V03 / Dag 7

13 vtkStructuredPointsReader
Fil: STRUCTURED_POINTS med skalar-verdier vtkStructuredPointsReader vtkDataSetMapper 12/3-03 IN229 / V03 / Dag 7

14 vtkStructuredPointsReader
Fil: STRUCTURED_POINTS med skalar-verdier vtkStructuredPointsReader vtkGeometryFilter vtkWarpScalar GetPolyDataOutput() vtkPolyDataNormals Fordi det ikke fins noen vtkDataSetNormals klasse! vtkPolyDataMapper 12/3-03 IN229 / V03 / Dag 7

15 Hvorfor et vtkGeometryFilter ?
vtkStructuredPointsReader "output" av typen vtkStructuredPoints "input" av typen vtkDataSet vtkGeometryFilter "output" av typen vtkPolyData "input" av typen vtkPointSet vtkWarpScalar vtkDataSet vtkStructuredPoints vtkPointSet vtkPolyData 12/3-03 IN229 / V03 / Dag 7

16 vtkStructuredPointsReader
Fil: POLYDATA uten attributt-data Fil: STRUCTURED_POINTS med skalar-verdier vtkPolyDataReader vtkStructuredPointsReader Genererer polygonflate med høyde = 0. vtkGeometryFilter Hevet polygonflate direkte fra fil! Hever polygonflaten i henhold til skalarverdiene. vtkWarpScalar vtkPolyDataNormals For Gouraud- sjattering vtkPolyDataNormals For Gouraud-sjattering Skalarverdier (for farge-avbilding) direkte fra fil! (Kopieres gjennom "pipeline".) vtkElevationFilter Genererer skalarverdier (for farge-avbilding). vtkPolyDataMapper vtkPolyDataMapper 12/3-03 IN229 / V03 / Dag 7

17 Del 4 Datarepresentasjon

18 Diskrete data og interpolasjon
Et datasett er diskret (endelig mengde med numeriske verdier) Interpolasjon brukes for å finne verdier i vilkårlige mellomliggende punkter Gitt informasjon Interpoleres fra gitt informasjon 12/3-03 IN229 / V03 / Dag 7

19 Punkt Definert i det vanlige (Euklidske) rommet 12/3-03
IN229 / V03 / Dag 7

20 Celle Gruppe av punkter med veldefinerte naboforhold
Noen vanlige celletyper (VTK definerer i alt 12 typer): Node Polygon Linje Tetraeder Polylinje Hexaeder Triangel MERK: Ofte skjer interpolasjon på grunnlag av celletype! 12/3-03 IN229 / V03 / Dag 7

21 Geometri Punkters romlige posisjon Ulik geometri! Lik geometri! x y x
12/3-03 IN229 / V03 / Dag 7

22 Topologi Naboforhold mellom punkter uavhengig av geometri
x y x y x y x y Lik topologi! Ulik topologi! 12/3-03 IN229 / V03 / Dag 7

23 En gammel kjenning uvanlig topologi vanlig topologi 12/3-03
IN229 / V03 / Dag 7

24 Data-attributter Skalarer Vektorer (Flate-)Normaler ...
F.eks.: temperatur, trykk, fuktighet ... Vektorer F.eks.: vindretning og -styrke, gradient i skalarfelt ... (Flate-)Normaler Spesiell type vektor med lengde = 1 ... 12/3-03 IN229 / V03 / Dag 7

25 Et VTK datasett 1) Organiserende struktur Geometri Topologi Punkter
2) Data-attributter (vanligvis lokalisert i punkter) Punkter Celler Skalarer Vektorer Normaler ... 12/3-03 IN229 / V03 / Dag 7

26 Structured Points - Regulær (implisitt) geometri og topologi Dårlig
Bra Lagringsplass Ytelse til visualiserings-algoritmer Lokal forfining Tilpasning til ulike former 12/3-03 IN229 / V03 / Dag 7

27 Rectilinear Grid - Delvis regulær geometri -Regulær topologi Dårlig
Bra Lagringsplass Ytelse til visualiserings-algoritmer Lokal forfining Tilpasning til ulike former 12/3-03 IN229 / V03 / Dag 7

28 Structured Grid - Irregulær geometri (punkter angis eksplisitt)
- Regulær topologi Dårlig Bra Lagringsplass Ytelse til visualiserings-algoritmer Lokal forfining Tilpasning til ulike former 12/3-03 IN229 / V03 / Dag 7

29 Unstructured Grid - Irregulær geometri og topologi (både punkter og celler angis eksplisitt) Dårlig Bra Lagringsplass Ytelse til visualiserings-algoritmer Lokal forfining Tilpasning til ulike former 12/3-03 IN229 / V03 / Dag 7

30 Polygonal Data - Cellene har 2D topologi
- Forøvrig samme egenskaper som Unstructured Grid Dårlig Bra Lagringsplass Ytelse til visualiserings-algoritmer Lokal forfining Tilpasning til ulike former 12/3-03 IN229 / V03 / Dag 7

31 vtkDataSet vtkStructuredPoints vtkRectilinearGrid vtkPointSet vtkStructuredGrid vtkUnstructuredGrid vtkPolyData 12/3-03 IN229 / V03 / Dag 7


Laste ned ppt "Del 3 "Visualization Pipeline""

Liknende presentasjoner


Annonser fra Google