The Visualization Toolkit (VTK) and why you might care about it

acidflask 1,153 views 10 slides Jun 16, 2008
Slide 1
Slide 1 of 10
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10

About This Presentation

Slides for my group meeting of Spring 2007, describing my visualization project for visualizing population transfer between trajectories on two different electronic states in the full multiple spawning (FMS) method.


Slide Content

The Visualization Toolkit (VTK)
and why you might care about it
Jiahao Chen
May 8, 2007

Why VTK?
•More control than regular application
•You don’t need to care about hardware-
and OS-specific details, e.g.
–OpenGL vs. Mesa
–X Windows vs. DirectX

VTK abstracts away details
(Your Program Here)
Application Library
Graphics Library
OS, hardware etc.
talks to
talks to
talks to
VTK
OpenGL
example of
example of
calc. contour
draw a triangle
visualize data
does,
e.g.
does,
e.g.
does,
e.g.
does,
e.g.add numbers

How VTK works
•Stage 1: Visualization Model
–What data to show?
–How to visualize?
–Converts data into 3D graphical elements
•Stage 2: Graphics Model
–What needs to be drawn?
–Where to draw it?
–Converts abstract graphical elements into a
displayed picture

Stage 1: Visualization Model
•Abstract objects handle data flow
Source Filter Mapper
raw data data processing how to draw things
makes actors
Point cloudConstruct isosurfaceTriangle strips
e.g. to draw an orbital,

Stage 2: Graphics Model
•Rendering pipeline
•Data flow between
objects
•Implemented as C++
objects
•Wrappers for Java,
Python and Tcl
Renderer
Render Window
Actor
Camera
Light
Scene
Mapper
“canvas”
where to
draw things
Trans-
form
end user
viewpoint
Props

Execution Control
•Visualization model is
demand driven
–Data processed from
source only when
needed to
•Graphics model is
event driven
–Draws only when user
wants it
End user
Graphics Model
Visualization Model
1. “Show me
the money!”
2. “ok,
now what?”
3. creates
graphics
4. draws
graphics
5. User
happy

VisTraj
•Want to see how if trajectories from FMS
dynamics ever come close to model (ideal)
cone computed from CI point parameters
•Want to visualize spawning events
•Example data: 12 trajectories around an
ethylidene intersection in ethylene

instance
of
VisTraj.py data flow
Molecule
simulation parameters
FMSTrajectory
Population
vtkDoubleArray
ConicalIntersection
ModelCone
ModelCone
Configuration
Molecule
instance
of
Trajectory
numpy.array
Energies
numpy.array
attribute
data in
g vector
numpy.array
h vector
numpy.array
Energy
float
Structure
numpy.array
ProjectedTrajectory
vtkPoints
InputData
vtkPolyData
ProjectedMomenta
vtkDoubleArray[3]
used to calculate
props in
GlyphActor
vtkConeSource
vtkGlyph3D
vtkPolyData
vtkPolyDataMapper
vtkActor
SparkActor
vtkSphereSource
vtkPolyDataMapper
vtkActor
Outline
vtkOutlineSource
vtkPolyDataMapper
vtkActor
Main Display
vtkRenderer
vtkRenderWindow
vtkRenderWindowInteractor
vtkPNGWriter
ConeActor
vtkQuadric
vtkSampleFunction
vtkContourFilter
vtkPolyDataMapper
vtkActor
Axes
vtkAxesActor
Coupling
vtkDoubleArray

Plot: 1 parent and 1 child
Spawn
point
child
parent
Origin = 2CI
GlyphActor
vtkSphereSource
vtkGlyph3D
vtkPolyData
vtkPolyDataMapper
vtkActor
TubeActor
vtkPolyData
vtkTubeFilter
vtkPolyDataMapper
vtkActor
ProjectedTrajectory
vtkPoints
InputData
vtkPolyData
no attribute data
X