[vtkusers] Volume Rendering and zbuffer
Aashish Chaudhary
aashish.chaudhary at kitware.com
Fri Oct 7 10:35:55 EDT 2016
Can you tru it without offscreen rendering turned on?
Thanks
On Thu, Oct 6, 2016 at 12:49 PM Steve Petruzza <steve.petruzza at gmail.com>
wrote:
> Thank you Aashish,
>
> I tried to use the “vtkOpenGLGPUVolumeRayCastMapper” as following:
>
> —————————————
>
> vtkSmartPointer<vtkOpenGLGPUVolumeRayCastMapper> mapper
> = vtkSmartPointer<vtkOpenGLGPUVolumeRayCastMapper>::New();
>
> mapper->RenderToImageOn();
> mapper->SetBlendModeToComposite();
>
> vtkSmartPointer<vtkVolume> volumep = vtkSmartPointer<vtkVolume>::New();
> volumep->SetMapper(mapper);
>
> renderer->AddVolume(volumep);
>
> // rendering and camera settings…
>
> renderWindow->SetOffScreenRendering( 1 );
> renderWindow->Render();
>
> vtkSmartPointer<vtkImageData> depthImage =
> vtkSmartPointer<vtkImageData>::New();
> vtkSmartPointer<vtkImageData> colorImage =
> vtkSmartPointer<vtkImageData>::New();
>
> mapper->GetDepthImage(depthImage);
> mapper->GetColorImage(colorImage);
>
> —————————————
>
> The depthImage has type unsigned char, and I noticed that it contains only
> values 255 or 0 (for the background), nothing in between.
> I was expecting a gradient of values, generally floats or even normalized
> to char.
>
> What am I missing?
>
> Thank you,
> Steve
>
>
>
>
> On 04 Oct 2016, at 19:48, Aashish Chaudhary <aashish.chaudhary at kitware.com>
> wrote:
>
> Hi Steve,
>
> If you intend to get the depth values from volume (and not just geometry),
> then not clearing the depth buffer will not help either since we don't
> write to depth buffer (the defaults won't make sense anyways). If you are
> looking for depth values from both volume and geometry, then you may want
> to look into this option RenderToImage in the base class (
> https://github.com/Kitware/VTK/blob/master/Rendering/Volume/vtkGPUVolumeRayCastMapper.h).
> Give it a try and let us know if that works for you. If you enable this
> option then you can call GetColorImage and GetDepthImage for the depth
> values.
>
> Thanks,
>
>
> On Tue, Oct 4, 2016 at 12:34 PM Aashish Chaudhary <
> aashish.chaudhary at kitware.com> wrote:
>
> That is because we make a call to clear the depth buffer bit that is:
> glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT). I have to think all of
> the use-cases but I think we don't need to clear the depth buffer. We can
> push a simple fix for it on the master branch.
>
> - Aashish
>
>
>
>
> On Tue, Oct 4, 2016 at 12:12 PM stevep <steve.petruzza at gmail.com> wrote:
>
> Hi all,
>
> I used the vtkPolyDataMapper to render a surface and then with the
> vtkRenderWindow I can get correctly the ZBuffer using GetZbufferData and
> the
> RGB data via vtkWindowToImageFilter.
>
> When I use, starting from the same vtkImageData, a volume rendering like
> the
> SmartVolumeMapper (as in the following):
> http://www.vtk.org/Wiki/VTK/Examples/Cxx/VolumeRendering/SmartVolumeMapper
>
> The RGB data are correct but the ZBuffer contains all values == 1 (checked
> dumping the float array to disk).
>
> I get the same result changing blend mode and using a
> vtkFixedPointVolumeRayCastMapper.
>
> What am I missing?
>
> Thank you
>
>
>
>
>
> --
> View this message in context:
> http://vtk.1045678.n5.nabble.com/Volume-Rendering-and-zbuffer-tp5740662.html
> Sent from the VTK - Users mailing list archive at Nabble.com
> <http://nabble.com>.
> _______________________________________________
> 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/20161007/6d6cbcd0/attachment-0001.html>
More information about the vtkusers
mailing list