VTK: The Visualization Toolkit Part II: Visualization Model March 30, 2001
VTK Visualization Models Graphics and Visualization Model Graphics objects: rendering Visualization objects: generating geometry Data Flow System: Pipeline execution Data source Visualizatoin Graphics
What is visualization anyway? Converting data from its original form into graphics Deal with the issues of transformation and representation Transformation: data to graphics Representation: internal data structures Example: stock price display
Representations Computational representation: An array of stock prices. Price[i] = 9085, 9080, 9075, 9060, 9068, …. Time[i] = 10(am), 10:30, 11, 11:30, 12, … Graphical Representation: x-y plot X(time) Y (price) Computational Graphics Transformation (visualization)
A 3D example Quadric function: f(x,y,z) = a0 x + a1 y + a2 z + a3 xy + a4 yz + a5 xz + a6 x + a7 y + a8 z 2 2 2 Visualization process: Sample the function f(x,y,z) -> a 3D array on a regular grid: F[x][y][z] = f ; (-1 <= x,y,z <= 1) Generate a 3D surface corresponding to f(x,y,z) = c Display the surface Sample the function
Visualization Process f(x,y,z) sample Transformation (visualization) Computational representation Graphical representation
Object-oriented viewpoint VTK Visualization Model Representation: Object model internal data structures Transformation: Functional model the steps to create visualization (how data flow through the system)
VTK Functional Model Sample F(x,y,z) Extract Surface Display Point Array Polygon Illustrate the steps to create visualization, also called Visualization Pipeline (visualization networks) : process : data : data flow direction
VTK Object Model Describe which objects operate on the functional model (visualization pipeline) Data Object: Represent information and methods to create, access, and delete the information example: the 3D point array F(x,y,z) Process Object: operates on (transform) the data objects example: generating surfaces from F(x,y,z)
Process Objects Source: Interface to external data sources or generate data procedurally Filter: Transform the data input Mapper: The sink of the functional model, interface with the graphics model
Process Objects (cont’d) Sample F(x,y,z) Extract Surface Display Point Array Polygon Source Filter Mapper (and Graphics)
Data Objects Data Object: dataset (representation of information) Structures: how the information is organized - Topology - Geometry Attributes: store the information we want to visualize. e.g. function values
Data Objects: structures Topology: Invariant under geometric transformation (rotation, translation, scaling etc) - Topological structures: Cells Geometry: The instantiation of the topology Geometric structures: cells with positions in 3D space
VTK Cell Types And more (I am too tired drawing now …) (a) vertex (b) Polyvertex (c) line (d) polyline (e) triangle (e) Quadrilateral (e) Polygon (f) Tetrahedron (f) Hexahedron And more (I am too tired drawing now …)
VTK Data Attributes The information stored at each corner of the cell Scalars: temperature, pressure, etc Vector: velocitys Normals: surface directions Texture coordinates: graphics specific Tensors: matrices
Where are we now ... Remember: Data Object: dataset (representation of information) Structures: how the information is organized - Topology - Geometry Attributes: store the information we want to visualize. e.g. function values
VTK Datasets A Collection of structures and attributes Structured Grid Rectilinear Grid Unstructured Points Structured Grid Polygonal Grid Unstructured Grid
Examples vol.cxx Ugrid.cxx
Pipeline Execution Direction of ‘update’ Source Filter Mapper Actor Render Visualization model Graphics model Source Filter Mapper Actor Direction of data flow