[vtkusers] On-demand loading of volume data

Elvis Stansvik elvis.stansvik at orexplore.com
Thu Feb 4 03:53:50 EST 2016

2016-02-04 6:13 GMT+01:00 Aashish Chaudhary <aashish.chaudhary at kitware.com>:

> Hi Elvis,
> On Wed, Feb 3, 2016 at 4:27 AM, Elvis Stansvik <
> elvis.stansvik at orexplore.com> wrote:
>> Hi all,
>> I'm working on tool for visualizing and working with tomography and
>> spectrometry data coming from the analysis of drill cores.
>> One of the views in the program is supposed to be a vertical view of the
>> entire bore hole, with a scale showing the depth down the hole, with some
>> charts showing analysis results (mostly element concentrations) along the
>> the hole.
>> Now to my VTK-related question: At low zoom levels, the view should just
>> show a schematic view of the drill core (essentially just a rectangle), but
>> at higher zoom levels, where less than ~3 meters of core is in view, slices
>> through the volumes obtained from our tomography should be used to
>> visualize the core. The attached rough UI sketch explains the setup much
>> better than I can with just words.
>> The idea is to use VTK for the visualization of the core at higher zoom
>> levels. Since the volumetric data for the entire (~1000 m) core is huge, it
>> obviously can't be loaded into a VTK pipeline all at once. Some kind of on
>> demand loading is required. So my questions are:
>> 1) What (if any) mechanisms does VTK provide for loading volume data on
>> demand, based on what region of space is currently shown in the view
>> presented to the user?
> Let me try to answer this question but someone who has looked into the
> pipeline more recently can provide a better answer. You can look into the
> vtk pipeline mechanism in detail specifically streaming demand drive
> pipeline (
> http://www.vtk.org/doc/nightly/html/classvtkStreamingDemandDrivenPipeline.html#details).
> You can write new filters that will fetch only the relevant dataset using
> this pipeline. Also, it sounds to me that you may need to write you
> application in two threads.

I've had a look at the class docs now, but they are quite terse, and does
not really explain how the class is meant to be used. The Examples link
shows three examples which include the vtkStreamingDemandDrivenPipeline.h


But only ImageSlicing.cxx makes use of the class (and I'm not even sure
it's using any of its features, since it just calls Get() with
WHOLE_EXTENT() as key?).

I found some good information in the wiki though:


But the information is quite brief here as well. Anyone know of a fuller
example, or even code in the wild, which makes use of the streaming demand
driven pipeline to stream volume data from many volumes based on what is
currently in view?

I also noticed that the class docs says "This is the style of pipeline
update that is provided by the old-style VTK 4.x pipeline.". Does this mean
that there's a risk this will be deprecated in future version? Is there
some other (newer) mechanism I should be using?


>> 2) How would you go about tackling this visualization problem using VTK?
>> Any pointers and advise is highly welcome, as I'm completely new to VTK.
> Are you asking about What mappers to use?
>> An overall requirement is that the UI should be reasonably responsive
>> while scrolling the view at high zoom levels. Obviously there will be some
>> time required for VTK to render the new volume data when the scrolling
>> stops, but the scrolling itself should not be jerky. The program is to be
>> run on a reasonably fast laptop.
> Thanks,
>> 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/20160204/3c26b3d8/attachment.html>

More information about the vtkusers mailing list