<html><body>
<p><tt>Philip Winston &lt;pwinston@gmail.com&gt; wrote on 22/07/2009 01:23:01 p.m.:<br>
<br>
&gt; We have an existing VTK application which operates on a single<br>
&gt; moderate sized image. &nbsp;We want to extend it to support arbitrarily<br>
&gt; large images. &nbsp;We figure the the image needs to be broken into tiles,<br>
&gt; and only the needed tiles are loaded into memory. &nbsp;As you pan around<br>
&gt; the image, tiles are load off disk, kind of like google maps.<br>
&gt; <br>
&gt; Has anyone done something like this with VTK? We have an existing<br>
&gt; pipeline with some color mapping and blending, so it's not a simple<br>
&gt; static image. &nbsp;We were thinking of just making an N x N array of the<br>
&gt; same pipeline, having a bunch of vtkImageActors in the scene, and<br>
&gt; creating/destroying/moving them as needed. &nbsp;</tt><br>
<br>
<tt>Hi Philip,</tt><br>
<tt>&nbsp; &nbsp;Is it easier to simply create and keep an NxN array of actors and all upstream filters - ultimately to the appropriate kind of image reader. As you need to load new tiles you change the reader 'Filename' and call 'Update'. This avoid creating and destroying lots of objects repeatedly. You would presumably play with the screen positions of the actors as new tiles come in but existing ones stay for a while, rather than reloading NxN images each time, ie new tiles would require updating the pipeline from reader through to actor, but existing tiles would just be moved in the view window. </tt><br>
<br>
<tt>&gt; At first I thought of<br>
&gt; maybe extending vtkOpenGLImageActor to manage the tiling under the<br>
&gt; hood, but then I realized the other steps in the pipeline would need<br>
&gt; to be tile aware also. &nbsp;Any other ideas? &nbsp;Thanks.</tt><br>
<br>
<tt>If you keep a persistent NxN pipeline you should not have to extend any vtk objects, just write the code to manage file reads and actor positions as the user pans. If you support zoom the NxN becomes variable. I'd create an initial set, say N=3, if zoom out requires say N=5 create new pipelines when required but don't bother to delete them, just manage which are visible and thus require update on pan or zoom.</tt><br>
<br>
<tt>I've never had to implement such a paging scheme so I'm guessing, and for sure there will be plenty of knowledge out there on good strategies...</tt><br>
<br>
<tt>&nbsp; cheers, Dave P</tt><br>
<tt><br>
&gt; <br>
&gt; -Philip<br>
&gt; _______________________________________________<br>
&gt; Powered by www.kitware.com<br>
&gt; <br>
&gt; Visit other Kitware open-source projects at <a href="http://www.kitware.com/">http://www.kitware.com/</a><br>
&gt; opensource/opensource.html<br>
&gt; <br>
&gt; Please keep messages on-topic and check the VTK FAQ at: http://<br>
&gt; www.vtk.org/Wiki/VTK_FAQ<br>
&gt; <br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; <a href="http://www.vtk.org/mailman/listinfo/vtkusers">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
</tt></body></html>