1 / 21

pv-meshless: A Customized Particle Renderer for ParaView

pv-meshless is a customized version of ParaView for particle rendering. It provides various display options, opacity control, background color mapping, and volume animation. The renderer supports point size adjustment, point smoothing, depth peeling, and shader modes. Future work includes adding support for ellipsoids and improving parallelism.

randallb
Download Presentation

pv-meshless: A Customized Particle Renderer for ParaView

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Particle Rendering in ParaView/ pv-meshless a plugin John Biddiscombe CSCS Swiss National Supercomputing Centre

  2. Why pv-meshless? pv-meshless is a (slightly) customized version of ParaView Couldn’t add a new mapper as a plugin (resolved?) Experimental platform for development Particle renderer uses some widgets from VisIt for opacity control Will be added to ParaView main. Eventually.

  3. Representation/Display • Standard Display panel • Surface/ Wireframe/ Points • Colour editor • Point Size • (Cube Axes) • (Interpolate) • Opacity

  4. Color Editor • Change Presets • Define your own • Load Save • Scale Log/Lin • Fit to data • (See Track changes) • Change Color Space (interpolation between RGB values) • Manually edit scale

  5. 03/06/2008 Point Sprite Representation • Opacity control • Track changes (max/min) • 3 render modes • Simple point • As before, but with opacity • Sprite • A sphere, clearer contrast • Shader • Radius controls

  6. Opacity • Auto Min/Max changes with scalar • Enable disable auto change • Set min max manually • Values <min mapped to 0, • >max, to 1 • Values from 0-1 mapped to range according to opacity control setting • Can also change overall value with slider (<1)

  7. 03/06/2008 Opacity • Gaussian control • Select peaks • Drag left/right • Drag up/down • Scale/shrink • Great for volumetric datasets

  8. 03/06/2008 Background color map for opacity • When colour and opacity have • same variable and • same range • Not 100% accurate, but useful

  9. Volume render effect

  10. Volume animation

  11. PointSize Change size according to taste All particles the same No perspective (well actually yes, but not accurate) No relative scale between particles Try zooming in/out Point smoothing changes particles to rounded squares/ almost circles NB. Bug. If Point Sprite selected, then simple point selected, size clamped.

  12. Depth Sort For transparency – particles must either be sorted back to front Cout = Csrc * Asrc + (1 - Asrc) * Cdst Skip anything behind closest pixel Colour correct Alpha can get messy when compositing images in parallel – distributed overlap/sort. Depth sort shader and sphere shader don’t coexist. TURN OFF DEPTH SORT FOR FASTER DISPLAY Wrong Right

  13. Depth Peeling • Instead of sorting every object and drawing back to front • Draw everything once and save the image • Then draw it again, but only items in front of last one • Then do it again, and again in ‘peels’ • Objects are not sorted, but each pass renders stuff in front, gradually the final image is built up. • Not bad for brains/bones • Awful for lots of particles • Uses advanced shaders which mess up our renderer • Work in progress is getting depth peeling working with our renderer

  14. Sprite mode • Spheres are drawn with shaded edges • Improves contrast

  15. Shader mode • Better for smaller datasets • Where a parameter is to be highlighted • Radius can be controlled • 2 shaders possible in current implementation • FastSphere • Computes size based on radius, then shades as sphere • ExactSphere • Computes size based on radius, then shades as sphere • Also computes depth so that overlapping spheres look correct • Much slower • Only useful in small datasets or hi-zoom display

  16. Radius Control • Select scalar to use for radius • Radius input Min/Max is detected from data, or set manually. • Output is mapped to {0,1} by default • Multiplier is used to define world coordinates to make it easier to change overall size. Avoid large numbers! Blank by default – for safety • Safety limits pixels to avoid very long render times, when the wrong radius is selected.

  17. Radius Example

  18. Example Animation

  19. Large Datasets • Runs in parallel, if opacity is not used • SubProxy is vtkCellPointsFilter instead of vtkGeometryFilter, so it can be used on any datatype. • This dataset is 40 million particles, rendered on 16 GPUs. Frame speed 1-3 fps typically – should be much faster – still debugging • Very interactive – for drilling down etc. • (Beats MatLab etc)

  20. Future Work • Ellipsoids : Quadrics • New shaders can be added easily • tricky part is mapping scalars to shader parameters • Better Parallelism • Track down slowness in certain circumstances • Opacity fixes. • Need fast rendering with opacity in parallel • New modes?

  21. Ellipsoids : Quadrics : To be continued Example Animation

More Related