Presentation is loading. Please wait.

Presentation is loading. Please wait.

Beyond the Visualization Pipeline Werner Benger 1, Marcel Ritter, Georg Ritter, Wolfram Schoor 1 Scientific Visualization Group Center for Computation.

Similar presentations


Presentation on theme: "Beyond the Visualization Pipeline Werner Benger 1, Marcel Ritter, Georg Ritter, Wolfram Schoor 1 Scientific Visualization Group Center for Computation."— Presentation transcript:

1 Beyond the Visualization Pipeline Werner Benger 1, Marcel Ritter, Georg Ritter, Wolfram Schoor 1 Scientific Visualization Group Center for Computation & Technology at Louisiana State University

2  The Concept and Limitations of the Viz Pipeline  Generalization of the Visualization Cascade  Implementation Concepts within VISH

3  A concept of how visualization works Haber & McNabb, 1990 Data Flow: Data Source  Data Filter  Data Sink

4  Example: ppmplus toolkit cat image.jpg | jpegtopnm | pnmscale -w 100 | cjpeg -quality 40 | display  Data flows from source to display  Each step is parametrized  More complex application leads to graphs  Many sources (input data)  Filters may be interconnected  Usually one sink (display)

5  Represents data flow  Allows visual programming (AVS, Amira, OpenDX, Iris Explorer, Vish) Data Parameter Filter RendererFile Storage

6  Data at the source is pushed downstream through filters to the data sink File reading, network transfer, computation, … Image Rendering

7  AVS, Amira, … Data Parameter Filter RendererFile Storage

8  Date sink requests run upstream through filters requesting data from the source source File reading, network transfer, computation, … Image Rendering

9  OpenDX, VTK, Vish, … Data Parameter Filter RendererFile Storage

10 PUSH MODELPULL MODEL  Data are made available as soon as possible  Traverses viz pipeline after loading/creation  Filter modules have information about data available at early stage  Loads data even if not used  Data are made available as late as possible  Traverses viz pipeline at rendering time  Filter modules don’t know all about data until output is requested  Loads only data when used

11  Pull model is convenient during interaction since all data information is available during setup of viz pipeline parameters  Easier in implementation since no upstream information flow (triggers)  Problematic for time-dependent large data which don’t fit into memory, because cannot load all data  Repeated operation and caching?

12 Traversing Time: Viz Pipeline needs to be traversed for each time step: Data T=0.0 Filter Renderer Data T=0.4 Filter Renderer Data T=0.8 Filter Renderer Data T=1.2 Filter Renderer

13 New time – new data – new traversal – entire pipeline re-computed Data T=0.0, 0.4, 0.8, 1.2 Filter Renderer Data Filter Renderer Data Filter Renderer Data Filter Renderer

14 New time – skip traversal if results already are available (result caching) Data T=0.0, 0.4, 0.8, 1.2 Filter Renderer Data Filter Renderer Data Filter Renderer Data Filter Renderer

15 Make the Viz Pipeline aware of Caching Data T=0.0, 0.4, 0.8, 1.2 Filter Renderer Data Filter Renderer Data Filter Renderer Data Filter Renderer

16 Enable Partial traversal of viz pipeline Data Filter Renderer Data Filter Renderer Data Filter Renderer

17 Enable Partial traversal of viz pipeline Data Filter Renderer Data Filter Renderer Data Filter Renderer

18 Which parameters full re-traversal of the viz pipeline? Data Filter Renderer Data Filter Renderer Data Filter Renderer Parameter

19  Example: Isosurface of dynamic data Data Filter Renderer Data Filter Renderer Data Filter Renderer

20  Time parameter could also be trigger parameter for new data computation  When to cache data? Will old cache data ever be reused?  Concept: Cache at data source location, not at node location.

21 Result caching at pipeline node possible, but not problematic, because parameter space is unknown Data Filter Renderer Data T=0.0, 0.4, 0.8 Isosurface T=0.0 Isosurface T=0.4 Isosurface T=0.8

22 Isosurface T=0.4Isosurface T=0.0  Cache data at location of data source  If data source vanishes, so vanishes cached results  Filter objects do not store any data, but are purely procedural Data Filter Renderer Data T=0.0, 0.4, 0.8

23  Is a generic approach to handle a wide range of data types used for scientific visualization  Basic concept: Base space maps to fibers Base Space Fiber Space at each point of Base Space

24 Covers scalar,vector,tensor fields on unispatial grids, mesh refinement, multiblocks, particle systems, surfaces, … “garbage collection” management with I/O layers for sciviz data

25  All data are stored in the “Bundle”  Viz nodes  do not store any data  pass references to data  purely procedural Data Filter Renderer

26 Data filtering is actually mapping objects within the fiber bundle Filter

27  Bundle is a hierarchical system of slices  Intrinsic support for time in the Bundle  Time as a visualization parameter  Data “flow” is reduced to bundle access parameters Data Filter Renderer

28  If time slice of source data is gone, then also all cached data is gone  Cache as much results as there are source data Data Filter Renderer

29  Consists of 6 hierarchy levels 1.Field 2.Representation 3.Topological Skeleton 4.Grid object 5.(Time) Slice 6.Bundle

30

31 Bundle B; double time; Slice S = B[ time ]; string Fieldname; Grid G = S[ Fieldname ]; // Computation of an Isosurface: // Provide 3D data volume (uniform coordinates) // Name of a field given on this volume // A floating point value specifying the isosurface level Grid Compute( Grid DataVolume, string Fieldname, double Isolevel);

32 Grid VizNode::compute(Bundle&B, double time, string Gridname, string Fieldname, double Isolevel) { // Construct a unique name for the computational result string IsosurfaceName = Gridname + Fieldname + Isolevel; // Check whether result already exists for the given time Grid IsoSurface = B[ time ][ IsosurfaceName ]; if (!IsoSurface) { // No, thus need to retrieve the data volume Grid DataVolume = B[ time ][ Gridname ]; // and perform the actual computation IsoSurface = Compute( DataVolume, Fieldname, Isolevel); // finally store the resulting data in the bundle object B[ time ][ IsosurfaceName ] = IsoSurface; } return IsoSurface; }

33 Cache Final Data at the GPU - OpenGL:vertex buffer objects, display lists, textures) Data T=0.0, 0.4, 0.8, 1.2 Filter Renderer Data Filter Renderer Data Filter Renderer Data Filter Renderer

34 RAM  GPU Memory Data T=0.0, 0.4, 0.8, 1.2 Filter Renderer Data Filter Renderer Data Filter Renderer Data Filter Renderer

35 GPU requires own Cache Data Filter Renderer

36 Data Filter Renderer

37 Data Filter Renderer

38 Data Filter Renderer T=0.0 T=0.4 T= 0.8

39  “Lives” within an OpenGL Context  Provides 3-dimensional indexing scheme to yield OpenGL ID’s:  Reference to data source (e.g. Fiber Bundle object)  Viz Node type information  Set of viz node parameters  Some parameters might require re-generation of OpenGL objects, others may allow reusage  Creates one ID per input set GLuint DisplayList = GLCache[ void* ] [ typeinfo ] [ set ];

40 void VizNode::render(GLCache Context, Grid G) { ValueSet VS; // assign cacheable variables into the value set … GLuint DisplayList = GLCache[ &G ] [ typeid(this) ] [ VS ]; if (!DisplayList) { DisplayList = glGenLists(1); glNewList(DisplayList, COMPILE_AND_EXEC); // do actual rendering of grid data G … glEndList(); GLCache[ Intercube ] [ typeid(this) ] [ VS ] = DisplayList; } else glCallList(DisplayList); }

41

42  Code development management:  http://sciviz.cct.lsu.edu/projects/vish http://sciviz.cct.lsu.edu/projects/vish  Available via SVN in source code for registered users at http://vish.origo.ethz.ch/http://vish.origo.ethz.ch/


Download ppt "Beyond the Visualization Pipeline Werner Benger 1, Marcel Ritter, Georg Ritter, Wolfram Schoor 1 Scientific Visualization Group Center for Computation."

Similar presentations


Ads by Google