Subdividing & LOD large amount of data for effective rendering and interaction

classic Classic list List threaded Threaded
2 messages Options
Zee
Reply | Threaded
Open this post in threaded view
|

Subdividing & LOD large amount of data for effective rendering and interaction

Zee
Hi there
we need to develop an application that displays a mosaic of JPEG pictures, showing aerial photographs of a strech of coast. It should allow the user to zoom or pan as they please (as they need to count seals lying on the beach). So far, the application already allows the loading of a single photo as well as zooming and panning - but the total area the user should be able to iew consists of hundreds of photos!

Obviously it will be inefficient to load all the photos at once, and one will most probably run out of memory. As an alternative we want to reduce or increase LOD as the user zooms as well as load relavent photos (or parts of photos) as the user pans.

We were thinking of using vtkRenderLargeImage or maybe vtkImageReslice to load the images as required, while vtkLODActor takes care of the LOD as the user zooms.

Are these classes the correct classes to use? or is there a better option?

Thank you in advance
Reply | Threaded
Open this post in threaded view
|

Re: Subdividing & LOD large amount of data for effective rendering and interaction

David Gobbi
Hi Zee,

If you are using the devel version of VTK, and if you stick with image
sizes that fit in memory, you can use the new vtkImageResliceMapper
class.  It is an image mapper that has vtkImageReslice built in for doing
resize operations, I use it regularly for RGB images that are up to
10000x10000 and it should work fine even for images that are much larger.

But displaying image sets that are too large to fit in memory is a
whole different ball game.  Right now there is no good way of doing
this with the imaging pipeline.  It can be done with streaming, but it
would be far too slow for your application.

What would be needed in VTK would be a new class that could act as a
multi-resolution image cache, loading images from disk as needed, and
generating a contiguous output array for display at the desired
resolution and covering the correct area.  This wouldn't be an easy
class to write, given the complexity of the VTK pipeline mechanism.

 - David


On Wed, Aug 31, 2011 at 2:12 PM, Zee <[hidden email]> wrote:

> Hi there
> we need to develop an application that displays a mosaic of JPEG pictures,
> showing aerial photographs of a strech of coast. It should allow the user to
> zoom or pan as they please (as they need to count seals lying on the beach).
> So far, the application already allows the loading of a single photo as well
> as zooming and panning - but the total area the user should be able to iew
> consists of hundreds of photos!
>
> Obviously it will be inefficient to load all the photos at once, and one
> will most probably run out of memory. As an alternative we want to reduce or
> increase LOD as the user zooms as well as load relavent photos (or parts of
> photos) as the user pans.
>
> We were thinking of using vtkRenderLargeImage or maybe vtkImageReslice to
> load the images as required, while vtkLODActor takes care of the LOD as the
> user zooms.
>
> Are these classes the correct classes to use? or is there a better option?
>
> Thank you in advance
_______________________________________________
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

Follow this link to subscribe/unsubscribe:
http://www.vtk.org/mailman/listinfo/vtkusers