[vtkusers] Problems while rendering of large volumes

Aashish Chaudhary aashish.chaudhary at kitware.com
Fri Sep 15 13:20:32 EDT 2017


Hi Ian,

I am writing this as I remembered when I wrote the code a while back so I
apologize if I mis-stated something but I did look at the current code and
I think my point (below) is still valid.

The reason we had hard-coded number in there because that feature required
querying GPU capabilities  using vtkGPUInfo class which in the newer
backend did not support. There was some plan to update the vtkGPUInfo (and
I believe you have contacted the mailing list in the past on this matter)
class
in the OpenGL2 backend and once that happens, we could replace the
hard-coded values with the code that actually works.

We will see if we can discuss this internally but in the meantime if you
want to help out / look into it, we could probably provide assistance one
way or another.

Thanks,



On Tue, Sep 12, 2017 at 6:53 AM ianl <ilindsay at insigniamedical.co.uk> wrote:

> Hi all,
>
> Our software uses vtkSmartVolumeMapper to render 3D volumes. I am looking
> at
> a problem with rendering a relatively large, although not uncommon (~2000
> slice) CT set. This used to work before the OpenGL2 improvements, but now
> fails during the vtkTextureObject::Bind call, leading to a black image.
> Smaller volumes render fine.
>
> I am using VTK 8.0.1, built with Visual Studio 2017. The graphics card is
> an
> AMD R7 200 with 2GB of VRAM. The vtkSmartVolume mapper is running in its
> auto selection mode, and I can see it choosing the GPU volume mapper when I
> step into the code.
>
> What no longer seems to be happening is the reduction resampling when the
> texture is determined to be too large for the card (using GPULowResMapper,
> LowResGPUNecessary, etc). This seems to be due to the GetReductionRatio()
> function on the GPU mapper returning a hard coded scale of 1 (in
> vtkOpenGLGPUVolumeRayCastMapper.h, VolumeOpenGL2 variant).
>
> Is this expected behaviour, or am I missing something? As an aside, I have
> attempted to use the SetPartitions() function on
> vtkOpenGLGPUVolumeRayCastMapper to partition the volume so it will fit on
> the card which does seem to work, but kills performance, so I would
> probably
> prefer the original behaviour, i.e. resampling, while interacting with the
> volume. I seem to remember reading somewhere that this was an area that was
> being looked at at some point.
>
> Can anyone shed any light on how to proceed with solving this? The only way
> I can see currently is to implement our own version of smart volume mapper
> which does the reduction, and perhaps uses the partition technique when not
> interacting.
>
> Thanks in advance,
> Ian Lindsay
>
>
>
> --
> Sent from: http://vtk.1045678.n5.nabble.com/VTK-Users-f1224199.html
> _______________________________________________
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20170915/2307ba37/attachment.html>


More information about the vtkusers mailing list