[vtkusers] Volume Rendering and zbuffer
steve.petruzza at gmail.com
Thu Oct 6 12:48:57 EDT 2016
Thank you Aashish,
I tried to use the “vtkOpenGLGPUVolumeRayCastMapper” as following:
vtkSmartPointer<vtkOpenGLGPUVolumeRayCastMapper> mapper = vtkSmartPointer<vtkOpenGLGPUVolumeRayCastMapper>::New();
vtkSmartPointer<vtkVolume> volumep = vtkSmartPointer<vtkVolume>::New();
// rendering and camera settings…
renderWindow->SetOffScreenRendering( 1 );
vtkSmartPointer<vtkImageData> depthImage = vtkSmartPointer<vtkImageData>::New();
vtkSmartPointer<vtkImageData> colorImage = vtkSmartPointer<vtkImageData>::New();
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?
> 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 <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.
> On Tue, Oct 4, 2016 at 12:34 PM Aashish Chaudhary <aashish.chaudhary at kitware.com <mailto: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 <mailto: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 <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
> What am I missing?
> Thank you
> View this message in context: http://vtk.1045678.n5.nabble.com/Volume-Rendering-and-zbuffer-tp5740662.html <http://vtk.1045678.n5.nabble.com/Volume-Rendering-and-zbuffer-tp5740662.html>
> Sent from the VTK - Users mailing list archive at Nabble.com.
> Powered by www.kitware.com <http://www.kitware.com/>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html <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 <http://www.vtk.org/Wiki/VTK_FAQ>
> Search the list archives at: http://markmail.org/search/?q=vtkusers <http://markmail.org/search/?q=vtkusers>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtkusers <http://public.kitware.com/mailman/listinfo/vtkusers>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the vtkusers