Title: What
1Whats New in ParaView
- John Greenfield
- Under contract to
- Sandia National Laboratories
Sandia is a multiprogram laboratory operated by
Sandia Corporation, a Lockheed Martin
Company,for the United States Department of
Energy under contract DE-AC04-94AL85000.
2Background
3Deploy Research to Production
- Use the Visual ToolKit (VTK) as a framework
- Only replace small parts of the framework with
our research codes the rest is tried, tested and
supported by a whole community.
4Sandia Vis RD with ParaView / VTK
- ParaView is an open-source visualization toolkit
- Based on the VTK (Visualization ToolKit)
- Sandia Vis RD is the most significant outside
technical contributor - Core algorithms that enable vastly improved
parallel performance. - Volume rendering (synthetic x-rays of simulation
results) - Image delivery to the desktop.
- Driving 60 mega-pixel display walls.
- Able to interactively explore Sandias largest
simulation data sets (gt 70 million finite
elements). - ParaView stats
- ParaView 30 downloads / day around the world.
- VTK (Visualization ToolKit) is used by over
25,000 people worldwide.
5Sandia Production
6Sandia ParaView Production Environment
- Average 25 users per month
- 47 different users in 2QFY05
- Scripts for easy use on clusters
- Allows use of data in place without moving it.
- Allows easy parallel rendering for performance.
- Available on Linux, Windows, SGI, Mac OSX.
7Current Sandia Additions
8Performance
- New Way
- Directly Load 1900 exodus files 45 seconds
- Clip data 20 seconds
- No copying or moving the data at all
- Runtime Vis Analysts can look at data as soon
as the restart files hit the disk - Old Way
- Copy/convert data into proper format (hours)
- New way Convert using RD software (minutes)
- Load converted data 7 minutes
- Clip data 4 minutes
9D3 Load Balancing and Data Distribution
- Load balancing
- Data distribution
- Multi-file Cleanup
- Ghost cell computation!
10ICE-T Parallel Rendering
- Good load balancing characteristics
- Excellent Scalability (1.5 Billion tri/sec in
2005) - Supports both Desktop Delivery and Tiled Displays
- ICE-T is now the default for all parallel
rendering in ParaView (faster/better than
Kitwares alternatives) - 20 fps at the Desktop (reduced image res during
interaction, full at stop)
11Movie
12Performance Results
- Aggregate rate of over 1.5 billion polygons per
second. - 128 Processor Cluster running servers
- Desktop client connected at 100 Mbps
- Visualizing one of the worlds largest polygonal
datasets, a 473 million triangle isosurface
generated from a Richtmyer-Meshkov simulation run
at LLNL (LLNL UCRL-MI-151066).
13Higher Order Elements
- Rendering Higher Order Finite Element Surfaces
in Hardware, Proceedings of GRAPHITE, Melbourne
Australia, February 2003.
14Quadratic Elements
- Old Way Hex-20 (incorrect)
15VTK Chromium
16Along the Way
- Generic tetrahedral refinement algorithm
available in ParaView now for tri-quadratic
elements. - Mesh quality filter now in ParaView (for
benchmarking our refinement algorithm, but may
also be useful to meshing community).
17Unstructured Volume Rendering
18CTH AMR (Brand New!)
19Lookmarks
What? Quick and easy way to switch
between views
Why? -Time Savings -Collaboration -Comparison -
Organization
How? Bookmarking tool that Adds, Removes,
Updates, Organizes, Imports, and Saves Lookmarks
20- Why?
- Time Savings
- Collaboration
- Comparison
- Organization
21Sandia's current contributions to ParaView
- Work on the image delivery system.
- Lookmarks Visual Bookmarks
- D3 Load balancing and data distribution.
- IceT parallel rendering.
- Higher order elements Adaptive sampling of
quadratic elements - Unstructured Volume Rendering.
- Mesh Quality Measures
- Exodus Reader and Writer
- CTHAMR Reader
22Sandia's current contributions to VTK
- VTK OpenGL extension manager
- vtkPainter
- vtkParallelRenderManager
- ICE-T
- Volume rendering
- vtkMemoryCoherenceFilter
- vtkOptimizer
- vtkFixTetrahedra
- vtkGradientFilter
23Sandia's current contributions to VTK (cont.)
- vtkInteractorStyleRubberBandZoom2
- vtkItsReader/Writer Reads/writes files in its
format. - vtkTrisReader/Writer Reads/writes files in .tris
format. - vtkPerturbPoints
- A technique for subdividing tetrahedra,
triangles, and lines such that any coincident
edges or faces are always subdivided the same
way. - A filter that converts quadratic finite elements
into a collection of linear finite elements
adaptively
24Sandia's current contributions to VTK (cont.)
- Higher Order Elements
- A programming interface (developed jointly with
Kitware) to allow "read-only" access to higher
order finite elements - Code for representing higher order (quadratic and
higher) finite elements in a more generic and
extensible way - Readers and writers for storing/retrieving the
above meshes to/from disk in an XML file format. - Techniques for visualizing the above meshes using
isosurfaces and deformed, colored boundary
surfaces. - A parallel rendering infrastructure in vtk to
support Chromium. - A utility for performing automated tests of
visualization code based on VTK's techniques
25Sandia's current contributions to VTK (cont.)
- File writer that is capable of writing out
EnSight Gold files. - Added functionality to the Exodus reader that
allows it to parse a Material/Part/Assembly XML
metadata file and organize blocks within ParaView
based on that information. - Bug-fixes to a Delaunay triangulation routine to
correct invalid mesh output
26Future Sandia Additions
27Future additions
- Improved interface to plotting
- Parallel volume rendering
- Shading
- Targeted interfaces
- Side-by-side views Real and phase space.
- Oculus volume rendering application
28Parallel Volume Rendering in ParaView
- D3 (already in ParaView) can, in parallel, divide
a data set by a K-D tree. - Visibility sorting of a K-D tree is simple.
- ICE-T (already in ParaView) has the capability of
compositing images in order. - So our approach to parallel volume rendering is
to divide the data by a K-D tree and use the tree
to order the ICE-T compositing.
29Perceptual Clues (upcoming)
30Perceptual Clues (upcoming)
- Old way Some random colors
- New way Could use meta data to show realistic
material properties
31Next Directions
- Unique functionality and performance is good
- One size fits all user interface with 10000
buttons is not - Put targeted interfaces on top of all the vis
code we already have.
32Prism
- Link simulation geometry view with multiple phase
space views to promote understanding of the
physics
33Oculus
- Oculus is a volume rendering application with a
focus on generating images that are comparable to
those made in high energy density physics (HEDP)
experiments.
34VtkHardwareShader Cg, GLSL, etc.
- Materials assigned per-vtkActor through
vtkProperty - End-user (ParaView) assigns Materials to objects
in the scene - VTK-based applications coordinate vtkActors and
Materials - XML Material file
- Describes a shader and it's interface to VTK
(types, values, etc.) - Values for vtkProperty data members
- Al 2040, Brushed Al 2040,1040 Steel, etc.
- VtkPainters will access all Vertex Attributes
(VTK only sets 4!) - Extend vtkDataSetAttributes to flag attributes
for hardware - VtkDataSetAttributesSetVertexAttrib0...N(...)
35VtkHardwareShader and Decorator
36VtkHardwareShaderProperty vtkSNL Prototype
37vtkPainters
- vtkPainters are a replacement for
vtkPolyDataMapper. - vtkPolyDataMapper is monolithic.
- Obfuscated code.
- Hard to extend.
- Not ready for use with shaders.
- A vtkPainter is just a piece of the rendering
process. - Painters are chained together to form
functionality of a mapper.
38vtkPainters
vtkMapScalarsPainter
vtkOpenGLClipPlanesPainter
vtkOpenGLLightingPainter
vtkOpenGLPolyDataMapper
vtkOpenGLWireframePainter
vtkOpenGLDisplayListPainter
vtkVertexArrayPainter
39vtkPainterDeviceAdapter
- Painters do not (necessarily) make direct OpenGL
calls. - They use a vtkPainterDeviceAdapter.
- The vtkPainterDeviceAdapter provides an abstract
interface for pushing attributes (i.e. vertex
positions, colors, etc.). - Easy to swap the standard vtkPainterDeviceAdapter
with one that sends to Cg or Sh or HLSL or
whatever.
40