Published on June 16, 2008
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 does, visualize data (Your Program Here) e.g. talks to does, example of Application Library calc. contour VTK e.g. talks to example of does, Graphics Library draw a triangle OpenGL e.g. talks to does, OS, hardware etc. add numbers e.g.
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 Mapper Filter raw data data processing how to draw things makes actors e.g. to draw an orbital, Point cloud Construct isosurface Triangle strips
Stage 2: Graphics Model Trans- Mapper form • Rendering pipeline • Data flow between Scene Actor objects viewpoint • Implemented as C++ objects Camera Light • Wrappers for Java, Python and Tcl Props where to Renderer draw things “canvas” Render Window end user
Execution Control End user • Visualization model is 5. User demand driven happy – Data processed from 4. draws 1. “Show me graphics the money!” source only when needed to Graphics Model • Graphics model is 3. creates 2. “ok, event driven graphics now what?” – Draws only when user Visualization Model wants it
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
VisTraj.py data flow FMSTrajectory simulation parameters ModelCone instance ConicalIntersection used to calculate h vector of numpy.array ModelCone ProjectedMomenta g vector Trajectory Population vtkDoubleArray numpy.array numpy.array vtkDoubleArray Configuration Energies Coupling ProjectedTrajectory Molecule numpy.array vtkDoubleArray vtkPoints ConeActor attribute InputData GlyphActor vtkQuadric data in vtkPolyData vtkConeSource vtkSampleFunction vtkGlyph3D vtkContourFilter vtkPolyData SparkActor vtkPolyDataMapper vtkPolyDataMapper vtkActor vtkSphereSource vtkActor vtkPolyDataMapper Molecule vtkActor Axes Structure instance Main Display vtkAxesActor Outline numpy.array of vtkRenderer vtkOutlineSource Energy vtkRenderWindow props in vtkPolyDataMapper vtkRenderWindowInteractor float vtkActor vtkPNGWriter
Plot: 1 parent and 1 child no attribute data child Spawn X point ProjectedTrajectory vtkPoints GlyphActor vtkSphereSource vtkGlyph3D vtkPolyData vtkPolyDataMapper vtkActor InputData TubeActor vtkPolyData vtkPolyData vtkTubeFilter vtkPolyDataMapper vtkActor parent Origin = 2CI
VTK: The Visualization Toolkit Part II: Visualization Model March 30, 2001 VTK Visualization Models Graphics and Visualization Model Graphics objects ...
VTK: The Visualization Toolkit. Part I: Overview and object models March 28, 2001. What is VTK?. Software Hardware. Data. Volume Rendering. ...
The theory and practice of visualization using the VTK Visualization Toolkit ... Visualization Toolkit" you might ... VTK, I don't see you how ...
The Visualization ToolKit. Actually, VTK is a pretty ... you might say ? Well, the VTK OBJ Reader ... de « Making multi-texturing work with VTK ...
... you might have to get the User Guide just ... package "The Visualization Toolkit" (VTK) ... to learn VTK from this book, you will need its ...
Why is Python used for high-performance/scientific computing ... and the Visualization Toolkit (VTK) ... but you care more about .
3D Print Your Medical Scan ... the health care provider is required to give it to you ... are provided by the Visualization Toolkit (VTK), ...
... Statistical Computing with Python. ... to help you do statistical computing with Python, ... uses the amazing Visualization Toolkit (VTK) ...
CMake: Building with all your cores. ... you might want to tone ... I don’t see why you would want to enable it from the IDE when it is easy to change ...