[vtk-developers] [VTK 0013151]: Incorrect assert in volume rendering shading with dependent components

Mantis Bug Tracker mantis at public.kitware.com
Mon May 7 04:20:56 EDT 2012


The following issue has been SUBMITTED. 
====================================================================== 
http://vtk.org/Bug/view.php?id=13151 
====================================================================== 
Reported By:                Benoît Bleuzé
Assigned To:                
====================================================================== 
Project:                    VTK
Issue ID:                   13151
Category:                   (No Category)
Reproducibility:            have not tried
Severity:                   minor
Priority:                   normal
Status:                     backlog
Project:                    TBD 
Type:                       crash 
Resolution:                 open
Fixed in Version:           
====================================================================== 
Date Submitted:             2012-05-07 04:20 EDT
Last Modified:              2012-05-07 04:20 EDT
====================================================================== 
Summary:                    Incorrect assert in volume rendering shading with
dependent components
Description: 
Hi, 
I mentioned this problem on the user mailing list, but no one seemed to take any
interest in it, so I am filing this as a bug, even if I am not sure it is
desirable behaviour:

I am doing volume rendering of an rgba volume (4 channels 3d image).
To do this I set the following 2 vtkVolume properties:

     vtkVolumeProperty::IndependentComponentsOff()
and  vtkVolumeProperty::ShadeOn()

I use the GPU Rendering: vtkGPUVolumeRayCastMapper

As a result, if I compile vtk in debug mode I stumble upon this failing assert
call,
in vtkOpenGLGPUVolumeRayCastMapper.cxx, line 4159 in vtk 5.8.0 (in git at this
time it's on line 4152),
in the following method:

void vtkOpenGLGPUVolumeRayCastMapper::PreRender(vtkRenderer *ren,
                                                vtkVolume *vol,
                                                double datasetBounds[6],
                                                double scalarRange[2],
                                                int numberOfScalarComponents,
                                                unsigned int numberOfLevels)
[...]
if ( vol->GetProperty()->GetShade() )
        {
        shadeMethod=vtkOpenGLGPUVolumeRayCastMapperShadeYes;
        assert("check: only_1_component_todo" && numberOfScalarComponents==1);
        }

[...]


If I run the same code in Release mode, nothing goes wrong and there is indeed
shading performed on my rgba data.
Should this assert be removed, or is shading on dependent components not
something to do?

I reckon this is indeed a dangling assert from a tiem this was not possible. But
maybe I am just lucky that it works. In the latter case, I do apologise for the
noise, but would like to get the reasoning behind this assert.

Best wishes,
Benoit Bleuzé
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2012-05-07 04:20 Benoît Bleuzé  New Issue                                    
======================================================================




More information about the vtk-developers mailing list