I am using volume rendering to view the air/non-air interface in a CT volume (only voxel values -600 to -300 HU are opaque, all others are transparent). In addition, I have segmented a tube which is in the airway, and created a closed surface representation of that segment which is visible in the 3D view. As long as the segment is fully opaque, the rendering of the 3D view appears correct, like this:
However, if the opacity of the tube segment is reduced at all, it is always rendered as if it were behind the volume rendering of the image volume data, like this:
This is clearly a rendering error. As the 3D view is rotated clearly physically impossible things happen and it is impossible to see any portion of the tube appear in front of any portion of the rendered image volume data.
Reducing the opacity of the image volume data does not mitigate the layering problem, the tube segment is eventually visible through the image volume data, but still always appears to be behind it, even when it should be in front.
The problem does not seem to be affected by changing the Rendering setting in the Volume Rendering module between the CPU and GPU choices.
I assume this comes from a bug in the rendering code when it needs to handle mixing the image volume rendering and a closed surface representation, but it is well beyond my ability to figure out how to fix this bug.
Currently, I will work around the issue by always leaving my closed surface object fully opaque, but it would be nice to be able to use a partially transparent representation as well in the future.