350 likes | 610 Views
What’s 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. Background….
E N D
What’s 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.
Deploy 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 with ParaView / VTK • ParaView is an open-source visualization toolkit • Based on the VTK (Visualization ToolKit) • Sandia Vis R&D 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 Sandia’s largest simulation data sets (> 70 million finite elements). • ParaView stats • ParaView: 30 downloads / day around the world. • VTK (Visualization ToolKit) is used by over 25,000 people worldwide.
Sandia 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.
Performance • 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 R&D software (minutes) • Load converted data 7 minutes • Clip data 4 minutes
D3 Load Balancing and Data Distribution • Load balancing • Data distribution • Multi-file Cleanup • Ghost cell computation!
ICE-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 Kitware’s alternatives) • 20 fps at the Desktop (reduced image res during interaction, full at stop)
Performance 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 world’s largest polygonal datasets, a 473 million triangle isosurface generated from a Richtmyer-Meshkov simulation run at LLNL (LLNL: UCRL-MI-151066).
Higher Order Elements • Correct • Typical approximation • “Rendering Higher Order Finite Element Surfaces in Hardware”, Proceedings of GRAPHITE, Melbourne Australia, February 2003.
Along 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).
Lookmarks • 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
Why? • Time Savings • Collaboration • Comparison • Organization
Sandia'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
Sandia's current contributions to VTK • VTK OpenGL extension manager • vtkPainter • vtkParallelRenderManager • ICE-T • Volume rendering • vtkMemoryCoherenceFilter • vtkOptimizer • vtkFixTetrahedra • vtkGradientFilter
Sandia'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
Sandia'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
Sandia'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
Future additions • Improved interface to plotting • Parallel volume rendering • Shading • Targeted interfaces • Side-by-side views – Real and phase space. • Oculus – volume rendering application
Parallel 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.
Perceptual Clues (upcoming) • Shadows
Perceptual Clues (upcoming) • Old way: Some random colors • New way: Could use meta data to show realistic material properties
Next 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.
Prism • Link simulation geometry view with multiple phase space views to promote understanding of the physics
Oculus • 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.
VtkHardwareShader – 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 • VtkDataSetAttributes::SetVertexAttrib{0...N}(...)
vtkPainters • 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.
vtkPainterDeviceAdapter • 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.