[vtkusers] Streaming pipeline with parts of big volume in multiple views

Aashish Chaudhary aashish.chaudhary at kitware.com
Wed Feb 10 12:12:34 EST 2016


On Sun, Feb 7, 2016 at 5:41 AM, Elvis Stansvik <elvis.stansvik at orexplore.com
> wrote:

> Hi all,
>
> As I tried to explain in a previous mail
>
>    http://markmail.org/message/mfp2npib5nqeeuux
>
> I have a large amount of volume data, and I need to render only a small
> part of it.
>
> I've been trying to find information on the streaming visualization
> pipeline that VTK supports, but it's been a bit hard to find examples
> similar what I want to do.
>
> My questions right now are:
>
> 1) Is there some file format for volume data which is supported by VTK
> with a reader that is "intelligent" enough to only read the parts of the
> file that is requested by downstream consumers into main memory? That is,
> is there something I could use so that my use case would work "out of the
> box". If there is, I'm prepared to make sure the output from our analysis
> is in this format, as it would save me from writing a custom reader.
>

AMR data structure might help (
http://www.vtk.org/doc/nightly/html/classvtkAMRVolumeMapper.html#details).

>
> 2) If there isn't, does anyone know of an example reader somewhere that
> has this intelligence? I'm prepared to write my own reader, but would
> really like a good example of how such a reader can be written.
>

I believe some of the  VTK image filter do this kind of work but I have to
look into it.

>
> 3) I assume that all parts of the pipeline I set up must be capable of
> working with partial data (extents in my case) for this to work? That is, I
> obviously can't have something in the pipeline which is a "bad citizen" and
> spoils it, causing the pipeline to request all the data. Is there a list of
> which classes that supports this? Or are all filters et.c. in VTK
> well-written in the sense that they will only request the minimal amount of
> data they need, based on downstream requirements?
>

I believe so.

>
> 4) If I set the volume of interest for a volume using a vtkExtractVOI,
> will the information about which piece of the volume is required reach the
> source (reader) at the start of the pipeline?
>


> 5) I was planning on having a pipeline that looks roughly like
>
>     Reader ----> Extract VOI ----> Do stuff ---> View1
>          \
>           +------> Extract VOI ----> Do other stuff ---> View2
>
> where each of the two views show a different part of the full volume. One
> of the views is scrollable, and the idea is that when the user scrolls that
> view, the VOI is updated and that branch of the pipeline is re-executed.
> Only the required data should be loaded from disk into main memory when
> this happens. Is this kind of setup possible? Or will I have to use two
> completely separate pipelines?
>

It depends how you write the code (are you setting data to mapper or you
are connecting it to a pipeline?).

>
> 6) If it turns out there are no built-in file formats where the reader
> supports loading parts of the data from the file on disk based on
> downstream requirements, I'm leaning towards making our own HDF5-based
> format + reader (I believe the full volume will be around 50-100 GB of
> data), since I think (but I'm not sure) that it's possible to only read
> parts of a 3D array from a HDF5 file using h5py. Does anyone else have a
> good suggestion for a file format, or have you been in a similar situation?
>
> Very grateful for any advice.
>
> Best regards,
> Elvis
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the VTK FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
>
> Search the list archives at: http://markmail.org/search/?q=vtkusers
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtkusers
>
>


-- 



*| Aashish Chaudhary | Technical Leader         | Kitware Inc.            *
*| http://www.kitware.com/company/team/chaudhary.html
<http://www.kitware.com/company/team/chaudhary.html>*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20160210/b598cf89/attachment.html>


More information about the vtkusers mailing list