what’s new in paraview
Post on 19-Mar-2016
71 Views
Preview:
DESCRIPTION
TRANSCRIPT
What’s New in What’s New in ParaViewParaView
John GreenfieldJohn GreenfieldUnder contract toUnder contract to
Sandia National LaboratoriesSandia 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.
Background…Background…
Deploy Research to ProductionDeploy 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.
Sandia Vis R&D Sandia Vis R&D withwith ParaView / VTK ParaView / VTK ParaView is an open-source visualization toolkit ParaView is an open-source visualization toolkit Based on the VTK (Visualization ToolKit)Based on the VTK (Visualization ToolKit) Sandia Vis R&D is the most significant outside Sandia Vis R&D is the most significant outside
technical contributortechnical contributor CCore algorithms that enable vastly improved ore algorithms that enable vastly improved
parallel performance.parallel performance. Volume rendering (synthetic x-rays of simulation Volume rendering (synthetic x-rays of simulation
results) results) Image delivery to the desktop.Image delivery to the desktop. Driving 60 mega-pixel display walls. Driving 60 mega-pixel display walls. Able to interactively explore Sandia’s largest Able to interactively explore Sandia’s largest
simulation data sets (> 70 million finite elements). simulation data sets (> 70 million finite elements). ParaView statsParaView stats
ParaView: 30 downloads / day around the world.ParaView: 30 downloads / day around the world. VTK (Visualization ToolKit) is used by over 25,000 VTK (Visualization ToolKit) is used by over 25,000
people worldwide.people worldwide.
Sandia Production…Sandia Production…
Sandia ParaView Production Sandia ParaView Production EnvironmentEnvironment
Average 25 users per monthAverage 25 users per month 47 different users in 2QFY0547 different users in 2QFY05 Scripts for easy use on clustersScripts for easy use on clusters
Allows use of data in place without moving it.Allows use of data in place without moving it. Allows easy parallel rendering for performance.Allows easy parallel rendering for performance.
Available on Linux, Windows, SGI, Mac OSX.Available on Linux, Windows, SGI, Mac OSX.
Current Sandia Additions…Current Sandia Additions…
PerformancePerformance New WayNew Way
Directly Load 1900 exodus files: 45 secondsDirectly Load 1900 exodus files: 45 seconds Clip data 20 seconds Clip data 20 seconds No copying or moving the data at allNo copying or moving the data at all ““Runtime Vis”: Analysts can look at data as soon Runtime Vis”: Analysts can look at data as soon
as the restart files hit the diskas the restart files hit the disk
Old WayOld Way Copy/convert data into proper format (hours)Copy/convert data into proper format (hours) New way: Convert using R&D software (minutes)New way: Convert using R&D software (minutes) Load converted data 7 minutesLoad converted data 7 minutes Clip data 4 minutesClip data 4 minutes
D3 Load Balancing and Data D3 Load Balancing and Data DistributionDistribution
Load balancingLoad balancing Data distributionData distribution Multi-file CleanupMulti-file Cleanup Ghost cell computation!Ghost cell computation!
ICE-T Parallel RenderingICE-T Parallel Rendering
Good load balancing characteristicsGood load balancing characteristics
Excellent Scalability (Excellent Scalability (1.5 Billion tri/sec in 20051.5 Billion tri/sec in 2005))
Supports both Desktop Delivery and Tiled DisplaysSupports both Desktop Delivery and Tiled Displays
ICE-T is now the default for all parallel rendering in ICE-T is now the default for all parallel rendering in ParaView (faster/better than Kitware’s alternatives)ParaView (faster/better than Kitware’s alternatives)
20 fps at the Desktop (reduced image res during 20 fps at the Desktop (reduced image res during interaction, full at stop)interaction, full at stop)
Performance ResultsPerformance Results
Aggregate rate of over 1.5 Aggregate rate of over 1.5 billion polygons per second.billion polygons per second.
128 Processor Cluster 128 Processor Cluster running serversrunning servers
Desktop client connected at Desktop client connected at 100 Mbps100 Mbps
Visualizing one of the world’s Visualizing one of the world’s largest polygonal datasets, a largest polygonal datasets, a 473 million triangle isosurface 473 million triangle isosurface generated from a Richtmyer-generated from a Richtmyer-Meshkov simulation run at Meshkov simulation run at LLNL (LLNL: UCRL-MI-LLNL (LLNL: UCRL-MI-151066). 151066).
Higher Order ElementsHigher Order Elements
Typical approximationTypical approximation CorrectCorrect
““Rendering Higher Order Finite Element Surfaces in HardwareRendering Higher Order Finite Element Surfaces in Hardware”, ”, Proceedings of GRAPHITEProceedings of GRAPHITE, Melbourne Australia, February 2003., Melbourne Australia, February 2003.
VTK & ChromiumVTK & Chromium
Along the WayAlong the Way
Generic tetrahedral Generic tetrahedral refinement algorithm refinement algorithm available in ParaView now available in ParaView now for tri-quadratic elements.for tri-quadratic elements.
Mesh quality filter now in Mesh quality filter now in ParaView (for benchmarking ParaView (for benchmarking our refinement algorithm, but our refinement algorithm, but may also be useful to may also be useful to meshing community).meshing community).
Unstructured Volume RenderingUnstructured Volume Rendering
CTH AMR CTH AMR (Brand New!)(Brand New!)
LookmarksLookmarks What?
Quick and easy way to switch between views
How?Bookmarking tool that Adds, Removes, Updates, Organizes, Imports, and Saves Lookmarks
Why?Why?-Time Savings-Time Savings-Collaboration-Collaboration-Comparison-Comparison-Organization-Organization
Why?Why? Time SavingsTime Savings CollaborationCollaboration ComparisonComparison OrganizationOrganization
Sandia's current contributions to Sandia's current contributions to ParaViewParaView
Work on the image delivery system.Work on the image delivery system. Lookmarks – Visual BookmarksLookmarks – Visual Bookmarks D3:D3: Load balancing and data distribution. Load balancing and data distribution. IceT:IceT: parallel rendering. parallel rendering. Higher order elements:Higher order elements: Adaptive sampling of Adaptive sampling of
quadratic elementsquadratic elements Unstructured Volume Rendering.Unstructured Volume Rendering. Mesh Quality MeasuresMesh Quality Measures Exodus Reader and WriterExodus Reader and Writer CTHAMR ReaderCTHAMR Reader
Sandia's current contributions to Sandia's current contributions to VTKVTK
VTK OpenGL extension managerVTK OpenGL extension manager vtkPaintervtkPainter vtkParallelRenderManagervtkParallelRenderManager ICE-TICE-T Volume renderingVolume rendering vtkMemoryCoherenceFiltervtkMemoryCoherenceFilter vtkOptimizervtkOptimizer vtkFixTetrahedravtkFixTetrahedra vtkGradientFiltervtkGradientFilter
Sandia's current contributions to Sandia's current contributions to VTK (cont.)VTK (cont.)
vtkInteractorStyleRubberBandZoom2:vtkInteractorStyleRubberBandZoom2: vtkItsReader/Writer: Reads/writes files in its format. vtkItsReader/Writer: Reads/writes files in its format. vtkTrisReader/Writer: Reads/writes files in .tris format. vtkTrisReader/Writer: Reads/writes files in .tris format. vtkPerturbPoints:vtkPerturbPoints: A technique for subdividing tetrahedra, triangles, and A technique for subdividing tetrahedra, triangles, and
lines such that any coincident edges or faces are lines such that any coincident edges or faces are always subdivided the same way.always subdivided the same way.
A filter that converts quadratic finite elements into a A filter that converts quadratic finite elements into a collection of linear finite elements adaptivelycollection of linear finite elements adaptively
Sandia's current contributions to Sandia's current contributions to VTK (cont.)VTK (cont.)
Higher Order ElementsHigher Order Elements A programming interface (developed jointly with Kitware) to allow A programming interface (developed jointly with Kitware) to allow
"read-only" access to higher order finite elements "read-only" access to higher order finite elements Code for representing higher order (quadratic and higher) finite Code for representing higher order (quadratic and higher) finite
elements in a more generic and extensible way elements in a more generic and extensible way Readers and writers for storing/retrieving the above meshes Readers and writers for storing/retrieving the above meshes
to/from disk in an XML file format.to/from disk in an XML file format. Techniques for visualizing the above meshes using isosurfaces Techniques for visualizing the above meshes using isosurfaces
and deformed, colored boundary surfaces.and deformed, colored boundary surfaces. A parallel rendering infrastructure in vtk to support Chromium. A parallel rendering infrastructure in vtk to support Chromium. A utility for performing automated tests of visualization code A utility for performing automated tests of visualization code
based on VTK's techniquesbased on VTK's techniques
Sandia's current contributions to Sandia's current contributions to VTK (cont.)VTK (cont.)
File writer that is capable of writing out EnSight Gold File writer that is capable of writing out EnSight Gold files.files.
Added functionality to the Exodus reader that allows it Added functionality to the Exodus reader that allows it to parse a Material/Part/Assembly XML metadata file to parse a Material/Part/Assembly XML metadata file and organize blocks within ParaView based on that and organize blocks within ParaView based on that information. information.
Bug-fixes to a Delaunay triangulation routine to correct Bug-fixes to a Delaunay triangulation routine to correct invalid mesh outputinvalid mesh output
Future Sandia Additions…Future Sandia Additions…
Future additionsFuture additions
Improved interface to plottingImproved interface to plotting Parallel volume renderingParallel volume rendering ShadingShading Targeted interfacesTargeted interfaces Side-by-side views – Real and phase space.Side-by-side views – Real and phase space. Oculus – volume rendering applicationOculus – volume rendering application
Parallel Volume Rendering in Parallel Volume Rendering in ParaViewParaView
D3 (already in ParaView) can, in parallel, divide a D3 (already in ParaView) can, in parallel, divide a data set by a K-D tree.data set by a K-D tree.
Visibility sorting of a K-D tree is simple.Visibility sorting of a K-D tree is simple. ICE-T (already in ParaView) has the capability of ICE-T (already in ParaView) has the capability of
compositing images in order.compositing images in order. So… our approach to parallel volume rendering is So… our approach to parallel volume rendering is
to divide the data by a K-D tree and use the tree to to divide the data by a K-D tree and use the tree to order the ICE-T compositing.order the ICE-T compositing.
Perceptual Clues (upcoming)Perceptual Clues (upcoming)
ShadowsShadows
Perceptual Clues (upcoming)Perceptual Clues (upcoming)
New way: Could use meta data New way: Could use meta data to show realistic material propertiesto show realistic material properties
Old way: Some random colorsOld way: Some random colors
Next DirectionsNext Directions Unique functionality and performance is goodUnique functionality and performance is good “ “One size fits all” user interface with 10000 buttons is notOne size fits all” user interface with 10000 buttons is not Put ‘targeted interfaces’ on top of all the vis code we Put ‘targeted interfaces’ on top of all the vis code we
already have.already have.
PrismPrism
Link simulation geometry view with multiple phase space Link simulation geometry view with multiple phase space views to promote understanding of the physicsviews to promote understanding of the physics
OculusOculus
Oculus is a volume rendering application with a focus on Oculus is a volume rendering application with a focus on generating images that are comparable to those made in generating images that are comparable to those made in high energy density physics (HEDP) experiments. high energy density physics (HEDP) experiments.
VtkHardwareShader – Cg, GLSL, etc.VtkHardwareShader – Cg, GLSL, etc. Materials assigned per-vtkActor through vtkPropertyMaterials assigned per-vtkActor through vtkProperty
End-user (ParaView) assigns Materials to objects in the sceneEnd-user (ParaView) assigns Materials to objects in the scene VTK-based applications coordinate vtkActors and MaterialsVTK-based applications coordinate vtkActors and Materials
XML Material fileXML Material file Describes a shader and it's interface to VTK (types, values, etc.)Describes a shader and it's interface to VTK (types, values, etc.) Values for vtkProperty data membersValues for vtkProperty data members Al 2040, Brushed Al 2040,1040 Steel, etc.Al 2040, Brushed Al 2040,1040 Steel, etc.
VtkPainters will access all Vertex Attributes (VtkPainters will access all Vertex Attributes (VTK only sets 4!)VTK only sets 4!) Extend vtkDataSetAttributes to flag attributes for hardwareExtend vtkDataSetAttributes to flag attributes for hardware
VtkDataSetAttributes::SetVertexAttrib{0...N}(...)VtkDataSetAttributes::SetVertexAttrib{0...N}(...)
vtkPaintersvtkPainters
vtkPainters are a replacement for vtkPolyDataMapper.vtkPainters are a replacement for vtkPolyDataMapper. vtkPolyDataMapper is monolithic.vtkPolyDataMapper is monolithic.
Obfuscated code.Obfuscated code. Hard to extend.Hard to extend. Not ready for use with shaders.Not ready for use with shaders.
A vtkPainter is just a piece of the rendering process.A vtkPainter is just a piece of the rendering process. Painters are chained together to form functionality of a Painters are chained together to form functionality of a
mapper.mapper.
vtkPainterDeviceAdaptervtkPainterDeviceAdapter
Painters do not (necessarily) make direct OpenGL Painters do not (necessarily) make direct OpenGL calls.calls.
They use a vtkPainterDeviceAdapter.They use a vtkPainterDeviceAdapter. The vtkPainterDeviceAdapter provides an abstract The vtkPainterDeviceAdapter provides an abstract
interface for pushing attributes (i.e. vertex interface for pushing attributes (i.e. vertex positions, colors, etc.).positions, colors, etc.).
Easy to swap the standard Easy to swap the standard vtkPainterDeviceAdapter with one that sends to vtkPainterDeviceAdapter with one that sends to Cg or Sh or HLSL or whatever.Cg or Sh or HLSL or whatever.
ENDEND
top related